LogoopenSUSE Build Service > Projects
Sign Up | Log In

View File tls-no-direct.diff of Package gcc48 (Project devel:gcc)

For i?86 negative offsets to %fs segment accesses cause a hypervisor
trap for Xen.  Avoid this by making accesses indirect.

???  Note that similar to the behavior on SLE11 this only affects
the compiler built on %ix86, not that on x86_64, even with -m32.

Index: gcc/config/i386/linux.h
===================================================================
--- gcc/config/i386/linux.h	(revision 209175)
+++ gcc/config/i386/linux.h	(working copy)
@@ -21,3 +21,9 @@ along with GCC; see the file COPYING3.
 
 #define GNU_USER_LINK_EMULATION "elf_i386"
 #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
+
+/* This slows down Xen, so take a very small general performance hit
+   for not accessing the %fs segment with negative offsets by making
+   GCC not emit direct accesses to %fs at all.  */
+#undef TARGET_TLS_DIRECT_SEG_REFS_DEFAULT
+#define TARGET_TLS_DIRECT_SEG_REFS_DEFAULT 0