]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
arm: fix PIC vs SHARED typos
authorDavid Lamparter <equinox-gentoo@diac24.net>
Fri, 16 Aug 2013 19:06:34 +0000 (15:06 -0400)
committerMike Frysinger <vapier@gentoo.org>
Sat, 8 Feb 2014 14:21:24 +0000 (09:21 -0500)
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  <equinox-gentoo@diac24.net>

* sysdeps/arm/eabi/setjmp.S: Change PIC to SHARED.
* sysdeps/arm/eabi/__longjmp.S: Likewise

ports/sysdeps/arm/__longjmp.S
ports/sysdeps/arm/setjmp.S

index 27c57a12df49686e9481de4852a98c5d6c5d00a7..c2efe12ca9629ff5aba3dbcf8b9a4db0560a98df 100644 (file)
@@ -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)
index b0b45ed8da1e6f5215209fa4b2f971d947a0956e..54e5de42687f11fc0284c8823192612d2c5e9ef3 100644 (file)
@@ -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)