]> sourceware.org Git - glibc.git/commitdiff
Fix armv7 build with GCC 9.
authorJoseph Myers <joseph@codesourcery.com>
Mon, 12 Nov 2018 23:59:05 +0000 (23:59 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Mon, 12 Nov 2018 23:59:29 +0000 (23:59 +0000)
Similar to the x86_64 build issues, glibc fails to build for armv7
with current mainline GCC because of aliases declared in the course of
defining IFUNCs, which copy their attributes from a header
declaration, ending up with fewer attributes than the (built-in)
string function they alias: the relevant attributes (nonnull, leaf)
are present on the header declaration, but elided therefrom when glibc
itself if being built (whatever the reasons are for disabling the
nonnull and leaf attributes in that case, and whether or not those
reasons are actually still valid).  This patch fixes the issue
similarly to the x86_64 fix, by adding an addition __attribute_copy__
use (in this case, on the definition of arm_libc_ifunc_hidden_def).

Tested with build-many-glibcs.py build for armeb-linux-gnueabi-be8.

* sysdeps/arm/arm-ifunc.h [SHARED] (arm_libc_ifunc_hidden_def):
Use __attribute_copy__ to copy attributes from name.

ChangeLog
sysdeps/arm/arm-ifunc.h

index fd9ba11e6f18f50f6926bad356b476810d8e40b1..6372ec74dfa3b7010e8ea78f88de1d3bf9b33d0d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2018-11-12  Joseph Myers  <joseph@codesourcery.com>
 
+       * sysdeps/arm/arm-ifunc.h [SHARED] (arm_libc_ifunc_hidden_def):
+       Use __attribute_copy__ to copy attributes from name.
+
        * sysdeps/i386/i686/fpu/multiarch/e_expf.c [SHARED]: Use __THROW
        with __hidden_ver1 call.
        * sysdeps/i386/i686/fpu/multiarch/e_log2f.c [SHARED]: Likewise.
index 80f4f0e3a360ce996ba026720a37fd77e3b6d584..71fb172b3b72ec12f39d9a9d0710e5c77aab6d5e 100644 (file)
@@ -27,7 +27,8 @@
 #if defined SHARED
 # define arm_libc_ifunc_hidden_def(redirect_name, name) \
   __hidden_ver1 (name, __GI_##name, redirect_name) \
-    __attribute__ ((visibility ("hidden")))
+    __attribute__ ((visibility ("hidden"))) \
+    __attribute_copy__ (name)
 #else
 # define arm_libc_ifunc_hidden_def(redirect_name, name)
 #endif
This page took 0.065574 seconds and 5 git commands to generate.