This is the mail archive of the
glibc-cvs@sourceware.org
mailing list for the glibc project.
GNU C Library master sources branch master updated. glibc-2.26-402-g2d9193f
- From: jsm28 at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 26 Sep 2017 19:50:00 -0000
- Subject: GNU C Library master sources branch master updated. glibc-2.26-402-g2d9193f
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 2d9193f2f55767c71333d425e140e22c3e15dc3d (commit)
from 4c5a7a02b66af196ee17026f64b2e78fbfc0776a (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 -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=2d9193f2f55767c71333d425e140e22c3e15dc3d
commit 2d9193f2f55767c71333d425e140e22c3e15dc3d
Author: Joseph Myers <joseph@codesourcery.com>
Date: Tue Sep 26 19:49:33 2017 +0000
Use generic __ifunc for SPARC.
glibc fails to build with GCC mainline for SPARC because of the use of
manually-created IFUNCs, which fail the tests of compatibility of
function alias types. This patch changes sparc-ifunc.h to use the
generic __ifunc in defining sparc_libm_ifunc. The generic __ifunc can
use the GCC ifunc attribute when available, so ensuring
type-correctness as well as better debug info than when setting symbol
types in asm statements.
Note that for this to fix the build with GCC mainline the GCC patch
<https://gcc.gnu.org/ml/gcc-patches/2017-09/msg01779.html>, or
building GCC with --enable-gnu-indirect-function, is also needed.
Tested (compilation only) with build-many-glibcs.py (sparc64-linux-gnu
and sparcv9-linux-gnu, with GCC 8 with the above patch, and also with
GCC 7).
* sysdeps/sparc/sparc-ifunc.h [!__ASSEMBLER__] (sparc_libm_ifunc):
Define using __ifunc.
diff --git a/ChangeLog b/ChangeLog
index 87e4067..f8e097e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2017-09-26 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/sparc/sparc-ifunc.h [!__ASSEMBLER__] (sparc_libm_ifunc):
+ Define using __ifunc.
+
2017-09-26 Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>
* sysdeps/powerpc/fpu/libm-test-ulps: Regenerate expf() and
diff --git a/sysdeps/sparc/sparc-ifunc.h b/sysdeps/sparc/sparc-ifunc.h
index 8cc86ff..4b1ea00 100644
--- a/sysdeps/sparc/sparc-ifunc.h
+++ b/sysdeps/sparc/sparc-ifunc.h
@@ -162,14 +162,8 @@ END (__##name)
#else /* __ASSEMBLER__ */
-# define sparc_libm_ifunc(name, expr) \
- extern void *name##_ifunc (int) __asm__ (#name); \
- void *name##_ifunc (int hwcap) \
- { \
- __typeof (name) *res = expr; \
- return res; \
- } \
- __asm__ (".type " #name ", %gnu_indirect_function");
+# define sparc_libm_ifunc(name, expr) \
+ __ifunc (name, name, expr, int hwcap, libm_ifunc_init)
# define sparc_libc_ifunc(name, expr) sparc_libm_ifunc (name, expr)
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 5 +++++
sysdeps/sparc/sparc-ifunc.h | 10 ++--------
2 files changed, 7 insertions(+), 8 deletions(-)
hooks/post-receive
--
GNU C Library master sources