diff options
Diffstat (limited to 'sysdeps/ieee754/ldbl-128/s_totalorderl.c')
-rw-r--r-- | sysdeps/ieee754/ldbl-128/s_totalorderl.c | 33 |
1 files changed, 30 insertions, 3 deletions
diff --git a/sysdeps/ieee754/ldbl-128/s_totalorderl.c b/sysdeps/ieee754/ldbl-128/s_totalorderl.c index c4ece246fd..357b917195 100644 --- a/sysdeps/ieee754/ldbl-128/s_totalorderl.c +++ b/sysdeps/ieee754/ldbl-128/s_totalorderl.c @@ -21,14 +21,16 @@ #include <libm-alias-ldouble.h> #include <nan-high-order-bit.h> #include <stdint.h> +#include <shlib-compat.h> +#include <first-versions.h> int -__totalorderl (_Float128 x, _Float128 y) +__totalorderl (const _Float128 *x, const _Float128 *y) { int64_t hx, hy; uint64_t lx, ly; - GET_LDOUBLE_WORDS64 (hx, lx, x); - GET_LDOUBLE_WORDS64 (hy, ly, y); + GET_LDOUBLE_WORDS64 (hx, lx, *x); + GET_LDOUBLE_WORDS64 (hy, ly, *y); #if HIGH_ORDER_BIT_IS_SET_FOR_SNAN uint64_t uhx = hx & 0x7fffffffffffffffULL; uint64_t uhy = hy & 0x7fffffffffffffffULL; @@ -53,4 +55,29 @@ __totalorderl (_Float128 x, _Float128 y) ly ^= hy_sign; return hx < hy || (hx == hy && lx <= ly); } +#ifdef SHARED +# define CONCATX(x, y) x ## y +# define CONCAT(x, y) CONCATX (x, y) +# define UNIQUE_ALIAS(name) CONCAT (name, __COUNTER__) +# define do_symbol(orig_name, name, aliasname) \ + strong_alias (orig_name, name) \ + versioned_symbol (libm, name, aliasname, GLIBC_2_31) +# undef weak_alias +# define weak_alias(name, aliasname) \ + do_symbol (name, UNIQUE_ALIAS (name), aliasname); +#endif libm_alias_ldouble (__totalorder, totalorder) +#if SHLIB_COMPAT (libm, GLIBC_2_25, GLIBC_2_31) +int +attribute_compat_text_section +__totalorder_compatl (_Float128 x, _Float128 y) +{ + return __totalorderl (&x, &y); +} +#undef do_symbol +#define do_symbol(orig_name, name, aliasname) \ + strong_alias (orig_name, name) \ + compat_symbol (libm, name, aliasname, \ + CONCAT (FIRST_VERSION_libm_, aliasname)) +libm_alias_ldouble (__totalorder_compat, totalorder) +#endif |