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

Unified Diff: gcc/config/i386/nacl.h

Issue 6685112: Teach sandboxed GCC not to rely on inode numbers. (Closed) Base URL: http://git.chromium.org/git/nacl-gcc@master
Patch Set: rebased on top of master Created 9 years, 9 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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*/ \
« 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