summaryrefslogtreecommitdiffstats
path: root/testing/gcc/gcc-libgcc-x86.get_pc_thunk.bx.patch
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2011-08-18 13:47:07 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2011-08-18 13:48:29 +0000
commitde7b37cbad5d595786fa1b78bed8dac552de1b27 (patch)
treef3d4018950c3bc36a87295c8e73449b6779a11eb /testing/gcc/gcc-libgcc-x86.get_pc_thunk.bx.patch
parent65270d710ceaa587b576c9d745628fb75d6b11aa (diff)
downloadaports-de7b37cbad5d595786fa1b78bed8dac552de1b27.tar.bz2
aports-de7b37cbad5d595786fa1b78bed8dac552de1b27.tar.xz
testing/gcc: enable gccgo. fix -fsplit-stack
Diffstat (limited to 'testing/gcc/gcc-libgcc-x86.get_pc_thunk.bx.patch')
-rw-r--r--testing/gcc/gcc-libgcc-x86.get_pc_thunk.bx.patch38
1 files changed, 38 insertions, 0 deletions
diff --git a/testing/gcc/gcc-libgcc-x86.get_pc_thunk.bx.patch b/testing/gcc/gcc-libgcc-x86.get_pc_thunk.bx.patch
new file mode 100644
index 000000000..551e6150a
--- /dev/null
+++ b/testing/gcc/gcc-libgcc-x86.get_pc_thunk.bx.patch
@@ -0,0 +1,38 @@
+Index: libgcc/config/i386/morestack.S
+===================================================================
+--- ./libgcc/config/i386/morestack.S (revision 173993)
++++ ./libgcc/config/i386/morestack.S (revision 173994)
+@@ -278,8 +278,7 @@
+ movl 4(%esp),%eax # Function argument.
+ movl %eax,(%esp)
+ #ifdef __PIC__
+-#undef __i686
+- call __i686.get_pc_thunk.bx # %ebx may not be set up for us.
++ call __x86.get_pc_thunk.bx # %ebx may not be set up for us.
+ addl $_GLOBAL_OFFSET_TABLE_, %ebx
+ call _Unwind_Resume@PLT # Resume unwinding.
+ #else
+@@ -449,6 +448,23 @@
+ .size __morestack, . - __morestack
+ #endif
+
++#if !defined(__x86_64__) && defined(__PIC__)
++# Output the thunk to get PC into bx, since we use it above.
++ .section .text.__x86.get_pc_thunk.bx,"axG",@progbits,__x86.get_pc_thunk.bx,comdat
++ .globl __x86.get_pc_thunk.bx
++ .hidden __x86.get_pc_thunk.bx
++#ifdef __ELF__
++ .type __x86.get_pc_thunk.bx, @function
++#endif
++__x86.get_pc_thunk.bx:
++ .cfi_startproc
++ movl (%esp), %ebx
++ ret
++ .cfi_endproc
++#ifdef __ELF__
++ .size __x86.get_pc_thunk.bx, . - __x86.get_pc_thunk.bx
++#endif
++#endif
+
+ # The exception table. This tells the personality routine to execute
+ # the exception handler.