aboutsummaryrefslogtreecommitdiff
path: root/sysdeps
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2018-11-12 23:59:05 +0000
committerJoseph Myers <joseph@codesourcery.com>2018-11-12 23:59:29 +0000
commitf578f97b97c8b46ec85a81a186c55db9c5a3c8cf (patch)
tree859c69ab6e1a457a8eb893bf3410518c79b143d7 /sysdeps
parent9a7c643ac2c21e44d78f98ad9a974ea579bd2003 (diff)
downloadglibc-f578f97b97c8b46ec85a81a186c55db9c5a3c8cf.zip
glibc-f578f97b97c8b46ec85a81a186c55db9c5a3c8cf.tar.gz
glibc-f578f97b97c8b46ec85a81a186c55db9c5a3c8cf.tar.bz2
Fix armv7 build with GCC 9.
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.
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/arm/arm-ifunc.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/sysdeps/arm/arm-ifunc.h b/sysdeps/arm/arm-ifunc.h
index 80f4f0e..71fb172 100644
--- a/sysdeps/arm/arm-ifunc.h
+++ b/sysdeps/arm/arm-ifunc.h
@@ -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