diff options
author | Chris Metcalf <cmetcalf@ezchip.com> | 2015-12-01 14:59:38 -0500 |
---|---|---|
committer | Chris Metcalf <cmetcalf@ezchip.com> | 2015-12-03 13:00:46 -0500 |
commit | e59c94fa0e2871bdfcc363899e3be376c0def770 (patch) | |
tree | 4073066d0031614fe8947c997354d0d3758f6602 /ChangeLog | |
parent | b3f6040781f78af648fc90f67cec3e49a338b3e9 (diff) | |
download | glibc-e59c94fa0e2871bdfcc363899e3be376c0def770.tar.gz glibc-e59c94fa0e2871bdfcc363899e3be376c0def770.tar.xz glibc-e59c94fa0e2871bdfcc363899e3be376c0def770.zip |
math: add LDBL_CLASSIFY_COMPAT support
If a platform does not define "long-double-fcts = yes" in its Makefiles and it does define __NO_LONG_DOUBLE_MATH in its installed headers, it will currently create exported symbols for __finitel, __isinfl, and __isnanl that can't be reached from userspace by correct use of the finite(), isinf(), or isnan() macros in <math.h>. To avoid this situation, by default for such platforms we now no longer export these symbols, thus causing appropriate link-time errors. However, for platforms that previously exported these symbols, we continue to do so as compat symbols; this is enabled by adding LDBL_CLASSIFY_COMPAT to math_private.h for the platform. For tile, remove the now-unnecessary exports of those functions from libc and libm.
Diffstat (limited to 'ChangeLog')
-rw-r--r-- | ChangeLog | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog index 7654fa422e..292c495163 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,31 @@ +2015-12-03 Chris Metcalf <cmetcalf@ezchip.com> + + * sysdeps/arm/math_private.h (LDBL_CLASSIFY_COMPAT): New symbol. + * sysdeps/microblaze/math_private.h (LDBL_CLASSIFY_COMPAT): + Likewise. + * sysdeps/mips/math_private.h (LDBL_CLASSIFY_COMPAT): Likewise. + * sysdeps/nios2/math_private.h (LDBL_CLASSIFY_COMPAT): Likewise. + * sysdeps/sh/math_private.h: New file. + * sysdeps/m68k/coldfire/fpu/math_private.h: Likewise. + * sysdeps/ieee754/dbl-64/s_finite.c [defined NO_LONG_DOUBLE && + defined LDBL_CLASSIFY_COMPAT]: Create compat symbol for internal + long double function name. + * sysdeps/ieee754/dbl-64/s_isinf.c: Likewise. + * sysdeps/ieee754/dbl-64/s_isnan.c: Likewise. + * sysdeps/ieee754/dbl-64/wordsize-64/s_finite.c: Likewise. + * sysdeps/ieee754/dbl-64/wordsize-64/s_isinf.c: Likewise. + * sysdeps/ieee754/dbl-64/wordsize-64/s_isnan.c: Likewise. + * sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist: + Remove __finitel, __isinfl, and __isnanl. + * sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist: + Likewise. + * sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist: + Remove __finitel. + * sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist: + Likewise. + * sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist: Likewise. + 2015-12-03 Andrew Senkevich <andrew.senkevich@intel.com> * math/Makefile ($(inst_libdir)/libm.so): Corrected path to |