math: add LDBL_CLASSIFY_COMPAT support
authorChris Metcalf <cmetcalf@ezchip.com>
Tue, 1 Dec 2015 19:59:38 +0000 (14:59 -0500)
committerChris Metcalf <cmetcalf@ezchip.com>
Thu, 3 Dec 2015 18:00:46 +0000 (13:00 -0500)
commite59c94fa0e2871bdfcc363899e3be376c0def770
tree4073066d0031614fe8947c997354d0d3758f6602
parentb3f6040781f78af648fc90f67cec3e49a338b3e9
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.
19 files changed:
ChangeLog
sysdeps/arm/math_private.h
sysdeps/ieee754/dbl-64/s_finite.c
sysdeps/ieee754/dbl-64/s_isinf.c
sysdeps/ieee754/dbl-64/s_isnan.c
sysdeps/ieee754/dbl-64/wordsize-64/s_finite.c
sysdeps/ieee754/dbl-64/wordsize-64/s_isinf.c
sysdeps/ieee754/dbl-64/wordsize-64/s_isnan.c
sysdeps/m68k/coldfire/fpu/math_private.h [new file with mode: 0644]
sysdeps/microblaze/math_private.h
sysdeps/mips/math_private.h
sysdeps/nios2/math_private.h
sysdeps/sh/math_private.h [new file with mode: 0644]
sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist
sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist
sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist
sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist
sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist
sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist