Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(806)

Side by Side Diff: lss/linux_syscall_support.h

Issue 300923005: Fix literal-suffix warning when using GCC 4.8 (Closed) Base URL: https://linux-syscall-support.googlecode.com/svn/trunk
Patch Set: Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* Copyright (c) 2005-2011, Google Inc. 1 /* Copyright (c) 2005-2011, Google Inc.
2 * All rights reserved. 2 * All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 1595 matching lines...) Expand 10 before | Expand all | Expand 10 after
1606 * clobbered. This causes problems with compilers, that do a better job 1606 * clobbered. This causes problems with compilers, that do a better job
1607 * at optimizing across __asm__ calls. 1607 * at optimizing across __asm__ calls.
1608 * So, we just have to redefine all of the _syscallX() macros. 1608 * So, we just have to redefine all of the _syscallX() macros.
1609 */ 1609 */
1610 #undef LSS_ENTRYPOINT 1610 #undef LSS_ENTRYPOINT
1611 #ifdef SYS_SYSCALL_ENTRYPOINT 1611 #ifdef SYS_SYSCALL_ENTRYPOINT
1612 static inline void (**LSS_NAME(get_syscall_entrypoint)(void))(void) { 1612 static inline void (**LSS_NAME(get_syscall_entrypoint)(void))(void) {
1613 void (**entrypoint)(void); 1613 void (**entrypoint)(void);
1614 asm volatile(".bss\n" 1614 asm volatile(".bss\n"
1615 ".align 8\n" 1615 ".align 8\n"
1616 ".globl "SYS_SYSCALL_ENTRYPOINT"\n" 1616 ".globl " SYS_SYSCALL_ENTRYPOINT "\n"
1617 ".common "SYS_SYSCALL_ENTRYPOINT",8,8\n" 1617 ".common " SYS_SYSCALL_ENTRYPOINT ",8,8\n"
1618 ".previous\n" 1618 ".previous\n"
1619 /* This logically does 'lea "SYS_SYSCALL_ENTRYPOINT", %0' */ 1619 /* This logically does 'lea "SYS_SYSCALL_ENTRYPOINT", %0' */
1620 "call 0f\n" 1620 "call 0f\n"
1621 "0:pop %0\n" 1621 "0:pop %0\n"
1622 "add $_GLOBAL_OFFSET_TABLE_+[.-0b], %0\n" 1622 "add $_GLOBAL_OFFSET_TABLE_+[.-0b], %0\n"
1623 "mov "SYS_SYSCALL_ENTRYPOINT"@GOT(%0), %0\n" 1623 "mov " SYS_SYSCALL_ENTRYPOINT "@GOT(%0), %0\n"
1624 : "=r"(entrypoint)); 1624 : "=r"(entrypoint));
1625 return entrypoint; 1625 return entrypoint;
1626 } 1626 }
1627 1627
1628 #define LSS_ENTRYPOINT ".bss\n" \ 1628 #define LSS_ENTRYPOINT ".bss\n" \
1629 ".align 8\n" \ 1629 ".align 8\n" \
1630 ".globl "SYS_SYSCALL_ENTRYPOINT"\n" \ 1630 ".globl " SYS_SYSCALL_ENTRYPOINT "\n" \
1631 ".common "SYS_SYSCALL_ENTRYPOINT",8,8\n" \ 1631 ".common " SYS_SYSCALL_ENTRYPOINT ",8,8\n" \
1632 ".previous\n" \ 1632 ".previous\n" \
1633 /* Check the SYS_SYSCALL_ENTRYPOINT vector */ \ 1633 /* Check the SYS_SYSCALL_ENTRYPOINT vector */ \
1634 "push %%eax\n" \ 1634 "push %%eax\n" \
1635 "call 10000f\n" \ 1635 "call 10000f\n" \
1636 "10000:pop %%eax\n" \ 1636 "10000:pop %%eax\n" \
1637 "add $_GLOBAL_OFFSET_TABLE_+[.-10000b], %%eax\n" \ 1637 "add $_GLOBAL_OFFSET_TABLE_+[.-10000b], %%eax\n" \
1638 "mov "SYS_SYSCALL_ENTRYPOINT"@GOT(%%eax), %%eax\n"\ 1638 "mov " SYS_SYSCALL_ENTRYPOINT \
1639 "@GOT(%%eax), %%eax\n" \
1639 "mov 0(%%eax), %%eax\n" \ 1640 "mov 0(%%eax), %%eax\n" \
1640 "test %%eax, %%eax\n" \ 1641 "test %%eax, %%eax\n" \
1641 "jz 10002f\n" \ 1642 "jz 10002f\n" \
1642 "push %%eax\n" \ 1643 "push %%eax\n" \
1643 "call 10001f\n" \ 1644 "call 10001f\n" \
1644 "10001:pop %%eax\n" \ 1645 "10001:pop %%eax\n" \
1645 "add $(10003f-10001b), %%eax\n" \ 1646 "add $(10003f-10001b), %%eax\n" \
1646 "xchg 4(%%esp), %%eax\n" \ 1647 "xchg 4(%%esp), %%eax\n" \
1647 "ret\n" \ 1648 "ret\n" \
1648 "10002:pop %%eax\n" \ 1649 "10002:pop %%eax\n" \
(...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after
1900 * our own version so that we can override the location of the errno 1901 * our own version so that we can override the location of the errno
1901 * location (e.g. when using the clone() system call with the CLONE_VM 1902 * location (e.g. when using the clone() system call with the CLONE_VM
1902 * option). 1903 * option).
1903 */ 1904 */
1904 #undef LSS_ENTRYPOINT 1905 #undef LSS_ENTRYPOINT
1905 #ifdef SYS_SYSCALL_ENTRYPOINT 1906 #ifdef SYS_SYSCALL_ENTRYPOINT
1906 static inline void (**LSS_NAME(get_syscall_entrypoint)(void))(void) { 1907 static inline void (**LSS_NAME(get_syscall_entrypoint)(void))(void) {
1907 void (**entrypoint)(void); 1908 void (**entrypoint)(void);
1908 asm volatile(".bss\n" 1909 asm volatile(".bss\n"
1909 ".align 8\n" 1910 ".align 8\n"
1910 ".globl "SYS_SYSCALL_ENTRYPOINT"\n" 1911 ".globl " SYS_SYSCALL_ENTRYPOINT "\n"
1911 ".common "SYS_SYSCALL_ENTRYPOINT",8,8\n" 1912 ".common " SYS_SYSCALL_ENTRYPOINT ",8,8\n"
1912 ".previous\n" 1913 ".previous\n"
1913 "mov "SYS_SYSCALL_ENTRYPOINT"@GOTPCREL(%%rip), %0\n" 1914 "mov " SYS_SYSCALL_ENTRYPOINT "@GOTPCREL(%%rip), %0\n"
1914 : "=r"(entrypoint)); 1915 : "=r"(entrypoint));
1915 return entrypoint; 1916 return entrypoint;
1916 } 1917 }
1917 1918
1918 #define LSS_ENTRYPOINT \ 1919 #define LSS_ENTRYPOINT \
1919 ".bss\n" \ 1920 ".bss\n" \
1920 ".align 8\n" \ 1921 ".align 8\n" \
1921 ".globl "SYS_SYSCALL_ENTRYPOINT"\n" \ 1922 ".globl " SYS_SYSCALL_ENTRYPOINT "\n" \
1922 ".common "SYS_SYSCALL_ENTRYPOINT",8,8\n" \ 1923 ".common " SYS_SYSCALL_ENTRYPOINT ",8,8\n" \
1923 ".previous\n" \ 1924 ".previous\n" \
1924 "mov "SYS_SYSCALL_ENTRYPOINT"@GOTPCREL(%%rip), %%rcx\n" \ 1925 "mov " SYS_SYSCALL_ENTRYPOINT "@GOTPCREL(%%rip), %%rcx\n" \
1925 "mov 0(%%rcx), %%rcx\n" \ 1926 "mov 0(%%rcx), %%rcx\n" \
1926 "test %%rcx, %%rcx\n" \ 1927 "test %%rcx, %%rcx\n" \
1927 "jz 10001f\n" \ 1928 "jz 10001f\n" \
1928 "call *%%rcx\n" \ 1929 "call *%%rcx\n" \
1929 "jmp 10002f\n" \ 1930 "jmp 10002f\n" \
1930 "10001:syscall\n" \ 1931 "10001:syscall\n" \
1931 "10002:\n" 1932 "10002:\n"
1932 1933
1933 #else 1934 #else
1934 #define LSS_ENTRYPOINT "syscall\n" 1935 #define LSS_ENTRYPOINT "syscall\n"
(...skipping 2076 matching lines...) Expand 10 before | Expand all | Expand 10 after
4011 # pragma pop_macro("fstat64") 4012 # pragma pop_macro("fstat64")
4012 # pragma pop_macro("lstat64") 4013 # pragma pop_macro("lstat64")
4013 #endif 4014 #endif
4014 4015
4015 #if defined(__cplusplus) && !defined(SYS_CPLUSPLUS) 4016 #if defined(__cplusplus) && !defined(SYS_CPLUSPLUS)
4016 } 4017 }
4017 #endif 4018 #endif
4018 4019
4019 #endif 4020 #endif
4020 #endif 4021 #endif
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698