From dcb133b7a4fdc701009b344c286b6cc9bda67a0c Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Wed, 20 Jan 2016 19:04:43 +0000 Subject: Fix __finitel libm compat symbol version. The changes to restrict implementation-namespace symbol aliases such as __finitel to compat symbols used code for __finitel in libm analogous to that for __finitel in libc. However, the versions for the two symbols are actually different, GLIBC_2.0 in libc and GLIBC_2.1 in libm. This patch fixes the handling of the libm compat symbol. Tested for mips (o32), where it fixes an ABI test failure. * sysdeps/ieee754/dbl-64/s_finite.c [NO_LONG_DOUBLE && LDBL_CLASSIFY_COMPAT] (__finitel): Define compat symbol at version GLIBC_2_1 and use GLIBC_2_1 in SHLIB_COMPAT condition for libm, not GLIBC_2_0. * sysdeps/ieee754/dbl-64/wordsize-64/s_finite.c [NO_LONG_DOUBLE && LDBL_CLASSIFY_COMPAT] (__finitel): Likewise. --- ChangeLog | 7 +++++++ sysdeps/ieee754/dbl-64/s_finite.c | 4 ++-- sysdeps/ieee754/dbl-64/wordsize-64/s_finite.c | 4 ++-- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 1e9264d1ed..ace36b5ee4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,12 @@ 2016-01-20 Joseph Myers + * sysdeps/ieee754/dbl-64/s_finite.c + [NO_LONG_DOUBLE && LDBL_CLASSIFY_COMPAT] (__finitel): Define + compat symbol at version GLIBC_2_1 and use GLIBC_2_1 in + SHLIB_COMPAT condition for libm, not GLIBC_2_0. + * sysdeps/ieee754/dbl-64/wordsize-64/s_finite.c + [NO_LONG_DOUBLE && LDBL_CLASSIFY_COMPAT] (__finitel): Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/localplt.data (__gtsf2): Add as optional for libc.so. (__unordsf2): Likewise. diff --git a/sysdeps/ieee754/dbl-64/s_finite.c b/sysdeps/ieee754/dbl-64/s_finite.c index b71ae12ea4..69141db75d 100644 --- a/sysdeps/ieee754/dbl-64/s_finite.c +++ b/sysdeps/ieee754/dbl-64/s_finite.c @@ -42,8 +42,8 @@ weak_alias (__finite, finite) # if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_23) compat_symbol (libc, __finite, __finitel, GLIBC_2_0); # endif -# if SHLIB_COMPAT (libm, GLIBC_2_0, GLIBC_2_23) -compat_symbol (libm, __finite, __finitel, GLIBC_2_0); +# if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_23) +compat_symbol (libm, __finite, __finitel, GLIBC_2_1); # endif # endif weak_alias (__finite, finitel) diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/s_finite.c b/sysdeps/ieee754/dbl-64/wordsize-64/s_finite.c index c8e2a7c421..ef51608f6e 100644 --- a/sysdeps/ieee754/dbl-64/wordsize-64/s_finite.c +++ b/sysdeps/ieee754/dbl-64/wordsize-64/s_finite.c @@ -34,8 +34,8 @@ weak_alias (__finite, finite) # if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_23) compat_symbol (libc, __finite, __finitel, GLIBC_2_0); # endif -# if SHLIB_COMPAT (libm, GLIBC_2_0, GLIBC_2_23) -compat_symbol (libm, __finite, __finitel, GLIBC_2_0); +# if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_23) +compat_symbol (libm, __finite, __finitel, GLIBC_2_1); # endif # endif weak_alias (__finite, finitel) -- cgit v1.2.3