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-362-g6d9b0b5
- From: jsm28 at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 18 Sep 2017 23:26:56 -0000
- Subject: GNU C Library master sources branch master updated. glibc-2.26-362-g6d9b0b5
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 6d9b0b5a22738e100b57bdd593d799abac4949d7 (commit)
from 92892fdbfa5e4d9f3cc25601767da064d0a8818a (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=6d9b0b5a22738e100b57bdd593d799abac4949d7
commit 6d9b0b5a22738e100b57bdd593d799abac4949d7
Author: Joseph Myers <joseph@codesourcery.com>
Date: Mon Sep 18 23:26:35 2017 +0000
Fix powerpc64le problem from last ldbl-opt patch.
This patch fixes a problem on powerpc64le that I missed in initial
testing of my last patch to ldbl-opt. In the specific case of
powerpc64le, the weak aliases for exp10l and remainderl do not get
defined in the generic wrappers because of how those wrappers
undefine and redefine weak_alias. This patch restores those aliases
in the ldbl-opt code.
Tested (compilation only) for powerpc64le with build-many-glibcs.py.
* sysdeps/ieee754/ldbl-opt/w_exp10l_compat.c [LIBM_SVID_COMPAT &&
!LONG_DOUBLE_COMPAT (libm, GLIBC_2_1)] (weak_alias): Undefine and
redefine.
[LIBM_SVID_COMPAT && !LONG_DOUBLE_COMPAT (libm, GLIBC_2_1)]
(exp10l): Define as weak alias.
* sysdeps/ieee754/ldbl-opt/w_remainderl_compat.c [LIBM_SVID_COMPAT
&& !LONG_DOUBLE_COMPAT (libm, GLIBC_2_0)] (weak_alias): Undefine
and redefine.
[LIBM_SVID_COMPAT && !LONG_DOUBLE_COMPAT (libm, GLIBC_2_0)]
(remainderl): Define as weak alias.
diff --git a/ChangeLog b/ChangeLog
index a7bcaa6..757462f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,16 @@
2017-09-18 Joseph Myers <joseph@codesourcery.com>
+ * sysdeps/ieee754/ldbl-opt/w_exp10l_compat.c [LIBM_SVID_COMPAT &&
+ !LONG_DOUBLE_COMPAT (libm, GLIBC_2_1)] (weak_alias): Undefine and
+ redefine.
+ [LIBM_SVID_COMPAT && !LONG_DOUBLE_COMPAT (libm, GLIBC_2_1)]
+ (exp10l): Define as weak alias.
+ * sysdeps/ieee754/ldbl-opt/w_remainderl_compat.c [LIBM_SVID_COMPAT
+ && !LONG_DOUBLE_COMPAT (libm, GLIBC_2_0)] (weak_alias): Undefine
+ and redefine.
+ [LIBM_SVID_COMPAT && !LONG_DOUBLE_COMPAT (libm, GLIBC_2_0)]
+ (remainderl): Define as weak alias.
+
* math/s_fmal.c: Include <libm-alias-ldouble.h>.
(fmal): Define using libm_alias_ldouble.
* math/w_acoshl_compat.c: Include <libm-alias-ldouble.h>.
diff --git a/sysdeps/ieee754/ldbl-opt/w_exp10l_compat.c b/sysdeps/ieee754/ldbl-opt/w_exp10l_compat.c
index 1c0e875..dd5915e 100644
--- a/sysdeps/ieee754/ldbl-opt/w_exp10l_compat.c
+++ b/sysdeps/ieee754/ldbl-opt/w_exp10l_compat.c
@@ -5,6 +5,14 @@
#define compat_symbol(l,n,a,v)
#include <math/w_exp10l_compat.c>
#if LIBM_SVID_COMPAT
+# if !LONG_DOUBLE_COMPAT (libm, GLIBC_2_1)
+/* If ldbl-opt is used without special versioning for exp10l being
+ required, the generic code does not define exp10l because of the
+ undefine and redefine of weak_alias above. */
+# undef weak_alias
+# define weak_alias(name, aliasname) _weak_alias (name, aliasname)
+weak_alias (__exp10l, exp10l)
+# endif
# if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_27)
/* compat_symbol was undefined and redefined above to avoid the
default pow10l compat symbol at version GLIBC_2_1 (as for ldbl-opt
diff --git a/sysdeps/ieee754/ldbl-opt/w_remainderl_compat.c b/sysdeps/ieee754/ldbl-opt/w_remainderl_compat.c
index 9314117..bb9bac0 100644
--- a/sysdeps/ieee754/ldbl-opt/w_remainderl_compat.c
+++ b/sysdeps/ieee754/ldbl-opt/w_remainderl_compat.c
@@ -3,6 +3,14 @@
#define weak_alias(n,a)
#include <math/w_remainderl_compat.c>
#if LIBM_SVID_COMPAT
+# if !LONG_DOUBLE_COMPAT (libm, GLIBC_2_0)
+/* If ldbl-opt is used without special versioning for remainderl being
+ required, the generic code does not define remainderl because of
+ the undefine and redefine of weak_alias above. */
+# undef weak_alias
+# define weak_alias(name, aliasname) _weak_alias (name, aliasname)
+weak_alias (__remainderl, remainderl)
+# endif
strong_alias (__remainderl, __dreml)
long_double_symbol (libm, __dreml, dreml);
#endif
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 11 +++++++++++
sysdeps/ieee754/ldbl-opt/w_exp10l_compat.c | 8 ++++++++
sysdeps/ieee754/ldbl-opt/w_remainderl_compat.c | 8 ++++++++
3 files changed, 27 insertions(+), 0 deletions(-)
hooks/post-receive
--
GNU C Library master sources