This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]