X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=math%2Fw_exp_compat.c;h=de1625540a720e1d0b6ae4b2978c54ab1c81b82f;hb=2b778ceb4010c28d70de9b8eab20e8d88eed586b;hp=98aa5b76a01dd8f9d8c7e38c8ff82694608a6f3e;hpb=bcea7ad608466a886767ddc743dce0df11980b5f;p=thirdparty%2Fglibc.git diff --git a/math/w_exp_compat.c b/math/w_exp_compat.c index 98aa5b76a01..de1625540a7 100644 --- a/math/w_exp_compat.c +++ b/math/w_exp_compat.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2011-2017 Free Software Foundation, Inc. +/* Copyright (C) 2011-2021 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2011. @@ -14,16 +14,19 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include #include +#include -#if LIBM_SVID_COMPAT +#if LIBM_SVID_COMPAT && (SHLIB_COMPAT (libm, GLIBC_2_0, GLIBC_2_29) \ + || defined NO_LONG_DOUBLE \ + || defined LONG_DOUBLE_COMPAT) /* wrapper exp */ double -__exp (double x) +__exp_compat (double x) { double z = __ieee754_exp (x); if (__builtin_expect (!isfinite (z) || z == 0, 0) @@ -32,10 +35,17 @@ __exp (double x) return z; } -hidden_def (__exp) -weak_alias (__exp, exp) +# if SHLIB_COMPAT (libm, GLIBC_2_0, GLIBC_2_29) +compat_symbol (libm, __exp_compat, exp, GLIBC_2_0); +# endif # ifdef NO_LONG_DOUBLE -strong_alias (__exp, __expl) -weak_alias (__exp, expl) +weak_alias (__exp_compat, expl) +# endif +# ifdef LONG_DOUBLE_COMPAT +/* Work around gas bug "multiple versions for symbol". */ +weak_alias (__exp_compat, __exp_compat_alias) + +LONG_DOUBLE_COMPAT_CHOOSE_libm_expl ( + compat_symbol (libm, __exp_compat_alias, expl, FIRST_VERSION_libm_expl), ); # endif #endif