aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Metcalf <cmetcalf@ezchip.com>2015-12-01 14:59:38 -0500
committerChris Metcalf <cmetcalf@ezchip.com>2015-12-03 13:00:46 -0500
commite59c94fa0e2871bdfcc363899e3be376c0def770 (patch)
tree4073066d0031614fe8947c997354d0d3758f6602 /sysdeps/microblaze
parentCorrected path to installed libmvec_nonshared.a (diff)
downloadglibc-e59c94fa0e2871bdfcc363899e3be376c0def770.tar.gz
glibc-e59c94fa0e2871bdfcc363899e3be376c0def770.tar.bz2
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 'sysdeps/microblaze')
-rw-r--r--sysdeps/microblaze/math_private.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/sysdeps/microblaze/math_private.h b/sysdeps/microblaze/math_private.h
index 73e59df5b9..d82e8bf820 100644
--- a/sysdeps/microblaze/math_private.h
+++ b/sysdeps/microblaze/math_private.h
@@ -26,6 +26,10 @@
#define libc_feholdexcept_setround(env, exc) ({ (void) (env); 0; })
#define libc_feupdateenv_test(env, exc) ({ (void) (env); 0; })
+/* Enable __finitel, __isinfl, and __isnanl for binary compatibility
+ when built without long double support. */
+#define LDBL_CLASSIFY_COMPAT 1
+
#include_next <math_private.h>
#define feraiseexcept(excepts) ({ 0; })