diff options
author | Joseph Myers <joseph@codesourcery.com> | 2018-11-13 00:27:06 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2018-11-13 00:27:06 +0000 |
commit | 53f5c65914b7601b652cd7a38714885a8492e562 (patch) | |
tree | a82ff1908254061f83a2a905215c59c6ea1b748c | |
parent | f578f97b97c8b46ec85a81a186c55db9c5a3c8cf (diff) | |
download | glibc-53f5c65914b7601b652cd7a38714885a8492e562.tar.gz glibc-53f5c65914b7601b652cd7a38714885a8492e562.tar.xz glibc-53f5c65914b7601b652cd7a38714885a8492e562.zip |
Fix sparc64 build with GCC 9.
Similar to the x86_64 and armv7 build issues, glibc fails to build for sparc64 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. This patch fixes the issue similarly to the fixes for those other architectures. Tested with build-many-glibcs.py compilers build for sparc64-linux-gnu. * sysdeps/sparc/sparc-ifunc.h [SHARED] (sparc_ifunc_redirected_hidden_def): Use __attribute_copy__ to copy attributes from name.
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | sysdeps/sparc/sparc-ifunc.h | 3 |
2 files changed, 8 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog index 6372ec74df..8b82d3eccf 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2018-11-13 Joseph Myers <joseph@codesourcery.com> + + * sysdeps/sparc/sparc-ifunc.h [SHARED] + (sparc_ifunc_redirected_hidden_def): Use __attribute_copy__ to + copy attributes from name. + 2018-11-12 Joseph Myers <joseph@codesourcery.com> * sysdeps/arm/arm-ifunc.h [SHARED] (arm_libc_ifunc_hidden_def): diff --git a/sysdeps/sparc/sparc-ifunc.h b/sysdeps/sparc/sparc-ifunc.h index 561aeea2f8..10552e93c3 100644 --- a/sysdeps/sparc/sparc-ifunc.h +++ b/sysdeps/sparc/sparc-ifunc.h @@ -35,7 +35,8 @@ #if defined SHARED # define sparc_ifunc_redirected_hidden_def(redirect_name, name) \ __hidden_ver1 (name, __GI_##name, redirect_name) \ - __attribute__ ((visibility ("hidden"))); + __attribute__ ((visibility ("hidden"))) \ + __attribute_copy__ (name); #else # define sparc_ifunc_redirected_hidden_def(redirect_name, name) #endif |