GNU C Library master sources branch master updated. glibc-2.28.9000-286-gf578f97
Mon Nov 12 23:59:00 GMT 2018

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  f578f97b97c8b46ec85a81a186c55db9c5a3c8cf (commit)
      from  9a7c643ac2c21e44d78f98ad9a974ea579bd2003 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------;a=commitdiff;h=f578f97b97c8b46ec85a81a186c55db9c5a3c8cf

commit f578f97b97c8b46ec85a81a186c55db9c5a3c8cf
Author: Joseph Myers <>
Date:   Mon Nov 12 23:59:05 2018 +0000

    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 for armeb-linux-gnueabi-be8.
    	* sysdeps/arm/arm-ifunc.h [SHARED] (arm_libc_ifunc_hidden_def):
    	Use __attribute_copy__ to copy attributes from name.

diff --git a/ChangeLog b/ChangeLog
index fd9ba11..6372ec7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2018-11-12  Joseph Myers  <>
+	* 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.
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)
 # define arm_libc_ifunc_hidden_def(redirect_name, name)


Summary of changes:
 ChangeLog               |    3 +++
 sysdeps/arm/arm-ifunc.h |    3 ++-
 2 files changed, 5 insertions(+), 1 deletions(-)

GNU C Library master sources

More information about the Glibc-cvs mailing list