| Index: gcc/config/i386/nacl.h
|
| diff --git a/gcc/config/i386/nacl.h b/gcc/config/i386/nacl.h
|
| index 7c28adcadadc15366173627fe7a11f8100bbcae8..85eae68d24cbe225bfbb40b456b187c284e65273 100644
|
| --- a/gcc/config/i386/nacl.h
|
| +++ b/gcc/config/i386/nacl.h
|
| @@ -57,8 +57,7 @@ Boston, MA 02111-1307, USA. */
|
| the GNU/Linux magical crtend.o file (see crtstuff.c) which provides part of
|
| the support for getting C++ file-scope static object constructed before
|
| entering `main', followed by a normal GNU/Linux "finalizer" file, `crtn.o'.
|
| - TODO(pasko): add -ffast-math support to ENDFILE_SPEC.
|
| - */
|
| + TODO(pasko): add -ffast-math support to ENDFILE_SPEC. */
|
|
|
| #undef ENDFILE_SPEC
|
| #define ENDFILE_SPEC \
|
| @@ -79,7 +78,7 @@ Boston, MA 02111-1307, USA. */
|
| %{shared:-lc} \
|
| %{!shared:%{mieee-fp:-lieee} %{profile:-lc_p}%{!profile:-lc}}"
|
|
|
| -/* Pass the NativeClient specific options to the assembler */
|
| +/* Pass the NativeClient specific options to the assembler. */
|
| #undef ASM_SPEC
|
| #define ASM_SPEC \
|
| "%{v:-V} %{Qy:} %{!Qn:-Qy} %{n} %{T} " \
|
| @@ -89,7 +88,7 @@ Boston, MA 02111-1307, USA. */
|
| "%{Ym,*} %{Yd,*} %{Wa,*:%*} %{m32:--32} %{m64:--64} " \
|
| "%{!mno-sse2avx:%{mavx:-msse2avx}} %{msse2avx:%{!mavx:-msse2avx}}"
|
|
|
| -/* `crt_platform' contains low-level platform-specific intrinsics in C. */
|
| +/* `crt_platform' contains low-level platform-specific intrinsics in C. */
|
| #undef LIB_SPEC
|
| #define LIB_SPEC \
|
| "%{pthread:-lpthread} \
|
| @@ -113,8 +112,7 @@ Boston, MA 02111-1307, USA. */
|
| #endif
|
|
|
| /* TODO(pasko): replace LINUX_DYNAMIC_LINKER with NACL_DYNAMIC_LINKER when we
|
| - * implement dynamic linking.
|
| - */
|
| + implement dynamic linking. */
|
|
|
| /* Determine which dynamic linker to use depending on whether GLIBC or
|
| uClibc is the default C library and whether -muclibc or -mglibc has
|
| @@ -193,24 +191,22 @@ Boston, MA 02111-1307, USA. */
|
| #define TARGET_THREAD_SSP_OFFSET (TARGET_64BIT ? 0x28 : 0x14)
|
| #endif
|
|
|
| -/*
|
| - * Because of NaCl's use of segment registers, negative offsets from gs: will
|
| - * not work. Hence we need to make TLS references explicitly compute the
|
| - * tls base pointer and then indirect relative to it using the default
|
| - * segment descriptor (DS). That is, instead of
|
| - * movl gs:i@NTPOFF, %ecx
|
| - * we use
|
| - * movl %gs:0, %eax
|
| - * movl i@NTPOFF(%eax), %ecx
|
| - * There is a slight performance penalty for TLS accesses, but there does not
|
| - * seem a way around it.
|
| - */
|
| +/* Because of NaCl's use of segment registers, negative offsets from gs: will
|
| + not work. Hence we need to make TLS references explicitly compute the
|
| + tls base pointer and then indirect relative to it using the default
|
| + segment descriptor (DS). That is, instead of
|
| + movl gs:i@NTPOFF, %ecx
|
| + we use
|
| + movl %gs:0, %eax
|
| + movl i@NTPOFF(%eax), %ecx
|
| + There is a slight performance penalty for TLS accesses, but there does not
|
| + seem a way around it. */
|
| #undef TARGET_TLS_DIRECT_SEG_REFS_DEFAULT
|
| #define TARGET_TLS_DIRECT_SEG_REFS_DEFAULT 0
|
|
|
| /* TODO(pasko): eliminate the need to define linux-specific macros. Currently
|
| - * Chromium build/build_config.h prevents us from eliminating these defines by
|
| - * not recognizing __native_client__ as a platform. */
|
| + Chromium build/build_config.h prevents us from eliminating these defines by
|
| + not recognizing __native_client__ as a platform. */
|
| #define LINUX_TARGET_OS_CPP_BUILTINS() \
|
| do { \
|
| builtin_define_std ("unix"); \
|
| @@ -218,6 +214,13 @@ Boston, MA 02111-1307, USA. */
|
| builtin_assert ("system=posix"); \
|
| } while (0)
|
|
|
| +/* When running in Native Client all inode numbers are identical.
|
| + TODO(pasko): re-enable inode numbers once the relevant bug is fixed:
|
| + http://code.google.com/p/nativeclient/issues/detail?id=1555 */
|
| +#ifdef __native_client__
|
| +#define HOST_LACKS_INODE_NUMBERS 1
|
| +#endif
|
| +
|
| #undef TARGET_OS_CPP_BUILTINS
|
| #define TARGET_OS_CPP_BUILTINS() \
|
| do \
|
| @@ -227,7 +230,7 @@ Boston, MA 02111-1307, USA. */
|
| } \
|
| while (0)
|
|
|
| -/* NaCl uses are using ILP32 model even on x86-84. */
|
| +/* NaCl uses are using ILP32 model even on x86-84. */
|
| #undef LONG_TYPE_SIZE
|
| #define LONG_TYPE_SIZE 32
|
| #define POINTER_SIZE 32
|
| @@ -245,16 +248,16 @@ Boston, MA 02111-1307, USA. */
|
| #define TARGET_SUBTARGET64_DEFAULT 0
|
|
|
| /* Configure script incorrectly detects this GAS capability on x86-64 and hence
|
| - * forces JUMP_TABLES_IN_TEXT_SECTION which cannot validate in NaCl. */
|
| + forces JUMP_TABLES_IN_TEXT_SECTION which cannot validate in NaCl. */
|
| #undef HAVE_AS_GOTOFF_IN_DATA
|
| #define HAVE_AS_GOTOFF_IN_DATA 1
|
|
|
| /* Configure script incorrectly detects HAVE_GAS_CFI_DIRECTIVE when readelf is
|
| - * not found in PATH. */
|
| + not found in PATH. */
|
| #undef HAVE_GAS_CFI_DIRECTIVE
|
| #define HAVE_GAS_CFI_DIRECTIVE 1
|
|
|
| -/* NaCl reserves R15 and makes RBP special in x86-64 mode */
|
| +/* NaCl reserves R15 and makes RBP special in x86-64 mode. */
|
| #undef FIXED_REGISTERS
|
| #define FIXED_REGISTERS \
|
| /*ax,dx,cx,bx,si,di,bp,sp,st,st1,st2,st3,st4,st5,st6,st7*/ \
|
|
|