21 lines
882 B
Diff
21 lines
882 B
Diff
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
|