diff options
Diffstat (limited to 'sysdeps/ieee754/dbl-64/s_totalordermag.c')
-rw-r--r-- | sysdeps/ieee754/dbl-64/s_totalordermag.c | 33 |
1 files changed, 30 insertions, 3 deletions
diff --git a/sysdeps/ieee754/dbl-64/s_totalordermag.c b/sysdeps/ieee754/dbl-64/s_totalordermag.c index fadb20bf1d..c75536ce73 100644 --- a/sysdeps/ieee754/dbl-64/s_totalordermag.c +++ b/sysdeps/ieee754/dbl-64/s_totalordermag.c @@ -21,14 +21,16 @@ #include <libm-alias-double.h> #include <nan-high-order-bit.h> #include <stdint.h> +#include <shlib-compat.h> +#include <first-versions.h> int -__totalordermag (double x, double y) +__totalordermag (const double *x, const double *y) { uint32_t hx, hy; uint32_t lx, ly; - EXTRACT_WORDS (hx, lx, x); - EXTRACT_WORDS (hy, ly, y); + EXTRACT_WORDS (hx, lx, *x); + EXTRACT_WORDS (hy, ly, *y); hx &= 0x7fffffff; hy &= 0x7fffffff; #if HIGH_ORDER_BIT_IS_SET_FOR_SNAN @@ -45,4 +47,29 @@ __totalordermag (double x, double y) #endif 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_double (__totalordermag, totalordermag) +#if SHLIB_COMPAT (libm, GLIBC_2_25, GLIBC_2_31) +int +attribute_compat_text_section +__totalordermag_compat (double x, double y) +{ + return __totalordermag (&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_double (__totalordermag_compat, totalordermag) +#endif |