From: David Lamparter Date: Fri, 16 Aug 2013 19:06:34 +0000 (-0400) Subject: arm: fix PIC vs SHARED typos X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b76e856d84e14d5ece6988fee589aff26d6ac2f2;p=thirdparty%2Fglibc.git arm: fix PIC vs SHARED typos the logic in setjmp/__longjmp incorrectly tie to "PIC" to figure out whether the code is going into a shared library when it should be using "SHARED". otherwise, building static PIC code goes wrong. https://bugs.gentoo.org/336914 http://sourceware.org/ml/libc-ports/2011-09/msg00018.html 2011-09-19 David Lamparter * sysdeps/arm/eabi/setjmp.S: Change PIC to SHARED. * sysdeps/arm/eabi/__longjmp.S: Likewise --- diff --git a/ports/sysdeps/arm/__longjmp.S b/ports/sysdeps/arm/__longjmp.S index 27c57a12df4..c2efe12ca96 100644 --- a/ports/sysdeps/arm/__longjmp.S +++ b/ports/sysdeps/arm/__longjmp.S @@ -73,7 +73,7 @@ ENTRY (__longjmp) add a2, a2, a3 ldr a2, [a2, #RTLD_GLOBAL_RO_DL_HWCAP_OFFSET] # else -# ifdef PIC +# ifdef SHARED ldr a2, 1f ldr a3, .Lrtld_global_ro 0: add a2, pc, a2 @@ -126,7 +126,7 @@ ENTRY (__longjmp) .Lrtld_local_ro: .long C_SYMBOL_NAME(_rtld_local_ro)(GOTOFF) # else -# ifdef PIC +# ifdef SHARED 1: .long _GLOBAL_OFFSET_TABLE_ - 0b - PC_OFS .Lrtld_global_ro: .long C_SYMBOL_NAME(_rtld_global_ro)(GOT) diff --git a/ports/sysdeps/arm/setjmp.S b/ports/sysdeps/arm/setjmp.S index b0b45ed8da1..54e5de42687 100644 --- a/ports/sysdeps/arm/setjmp.S +++ b/ports/sysdeps/arm/setjmp.S @@ -54,7 +54,7 @@ ENTRY (__sigsetjmp) add a3, a3, a4 ldr a3, [a3, #RTLD_GLOBAL_RO_DL_HWCAP_OFFSET] # else -# ifdef PIC +# ifdef SHARED ldr a3, 1f ldr a4, .Lrtld_global_ro 0: add a3, pc, a3 @@ -110,7 +110,7 @@ ENTRY (__sigsetjmp) .Lrtld_local_ro: .long C_SYMBOL_NAME(_rtld_local_ro)(GOTOFF) # else -# ifdef PIC +# ifdef SHARED 1: .long _GLOBAL_OFFSET_TABLE_ - 0b - PC_OFS .Lrtld_global_ro: .long C_SYMBOL_NAME(_rtld_global_ro)(GOT)