diff options
38 files changed, 125 insertions, 11 deletions
@@ -1,5 +1,48 @@ 2018-11-21 Szabolcs Nagy <szabolcs.nagy@arm.com> + * math/Versions (GLIBC_2.29): Add log. + * math/w_log_compat.c (__log_compat): Change to versioned compat + symbol. + * math/w_log.c: New file. + * sysdeps/i386/fpu/w_log.c: New file. + * sysdeps/ia64/fpu/e_log.S: Update. + * sysdeps/ieee754/dbl-64/e_log.c (__ieee754_log): Rename to __log + and add necessary aliases. + * sysdeps/ieee754/dbl-64/w_log.c: New file. + * sysdeps/m68k/m680x0/fpu/w_log.c: New file. + * sysdeps/mach/hurd/i386/libm.abilist: Update. + * sysdeps/unix/sysv/linux/aarch64/libm.abilist: Update. + * sysdeps/unix/sysv/linux/alpha/libm.abilist: Update. + * sysdeps/unix/sysv/linux/arm/libm.abilist: Update. + * sysdeps/unix/sysv/linux/hppa/libm.abilist: Update. + * sysdeps/unix/sysv/linux/i386/libm.abilist: Update. + * sysdeps/unix/sysv/linux/ia64/libm.abilist: Update. + * sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Update. + * sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Update. + * sysdeps/unix/sysv/linux/microblaze/libm.abilist: Update. + * sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Update. + * sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Update. + * sysdeps/unix/sysv/linux/nios2/libm.abilist: Update. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist: Update. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist: Update. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist: Update. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist: Update. + * sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Update. + * sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Update. + * sysdeps/unix/sysv/linux/sh/libm.abilist: Update. + * sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Update. + * sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Update. + * sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Update. + * sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Update. + * sysdeps/x86_64/fpu/multiarch/e_log-avx.c (__ieee754_log): Rename to + __log. + * sysdeps/x86_64/fpu/multiarch/e_log-fma.c (__ieee754_log): Likewise. + * sysdeps/x86_64/fpu/multiarch/e_log-fma4.c (__ieee754_log): Likewise. + * sysdeps/x86_64/fpu/multiarch/e_log.c (__ieee754_log): Likewise. + * sysdeps/x86_64/fpu/multiarch/w_log.c: New file. + +2018-11-21 Szabolcs Nagy <szabolcs.nagy@arm.com> + * math/Versions (GLIBC_2.29): Add exp and exp2. * math/w_exp2_compat.c (__exp2_compat): Change to versioned compat symbol, handle NO_LONG_DOUBLE and LONG_DOUBLE_COMPAT explicitly. diff --git a/math/Versions b/math/Versions index 29e02d6..87aa659 100644 --- a/math/Versions +++ b/math/Versions @@ -577,6 +577,6 @@ libm { } GLIBC_2.29 { # No SVID compatible error handling. - exp; exp2; + exp; exp2; log; } } diff --git a/math/w_log.c b/math/w_log.c new file mode 100644 index 0000000..50065e3 --- /dev/null +++ b/math/w_log.c @@ -0,0 +1,8 @@ +#include <math-type-macros-double.h> +#undef __USE_WRAPPER_TEMPLATE +#define __USE_WRAPPER_TEMPLATE 1 +#undef declare_mgen_alias +#define declare_mgen_alias(a, b) +#include <w_log_template.c> +versioned_symbol (libm, __log, log, GLIBC_2_29); +libm_alias_double_other (__log, log) diff --git a/math/w_log_compat.c b/math/w_log_compat.c index 5413b8e..d99dd4f 100644 --- a/math/w_log_compat.c +++ b/math/w_log_compat.c @@ -23,10 +23,12 @@ #include <libm-alias-double.h> -#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 log(x) */ double -__log (double x) +__log_compat (double x) { if (__builtin_expect (islessequal (x, 0.0), 0) && _LIB_VERSION != _IEEE_) { @@ -44,5 +46,17 @@ __log (double x) return __ieee754_log (x); } -libm_alias_double (__log, log) +# if SHLIB_COMPAT (libm, GLIBC_2_0, GLIBC_2_29) +compat_symbol (libm, __log_compat, log, GLIBC_2_0); +# endif +# ifdef NO_LONG_DOUBLE +weak_alias (__log_compat, logl) +# endif +# ifdef LONG_DOUBLE_COMPAT +/* Work around gas bug "multiple versions for symbol". */ +weak_alias (__log_compat, __log_compat_alias) + +LONG_DOUBLE_COMPAT_CHOOSE_libm_logl ( + compat_symbol (libm, __log_compat_alias, logl, FIRST_VERSION_libm_logl), ); +# endif #endif diff --git a/sysdeps/i386/fpu/w_log.c b/sysdeps/i386/fpu/w_log.c new file mode 100644 index 0000000..9b2b018 --- /dev/null +++ b/sysdeps/i386/fpu/w_log.c @@ -0,0 +1 @@ +#include <sysdeps/../math/w_log.c> diff --git a/sysdeps/ia64/fpu/e_log.S b/sysdeps/ia64/fpu/e_log.S index 0b63ec4..7ee2392 100644 --- a/sysdeps/ia64/fpu/e_log.S +++ b/sysdeps/ia64/fpu/e_log.S @@ -1670,6 +1670,12 @@ log_libm_err: };; GLOBAL_IEEE754_END(log) libm_alias_double_other (__log, log) +#ifdef SHARED +.symver log,log@@GLIBC_2.29 +.weak __log_compat +.set __log_compat,__log +.symver __log_compat,log@GLIBC_2.2 +#endif LOCAL_LIBM_ENTRY(__libm_error_region) diff --git a/sysdeps/ieee754/dbl-64/e_log.c b/sysdeps/ieee754/dbl-64/e_log.c index a56b714..648fe14 100644 --- a/sysdeps/ieee754/dbl-64/e_log.c +++ b/sysdeps/ieee754/dbl-64/e_log.c @@ -18,6 +18,9 @@ #include <math.h> #include <stdint.h> +#include <math-svid-compat.h> +#include <shlib-compat.h> +#include <libm-alias-double.h> #include "math_config.h" #define T __log_data.tab @@ -42,7 +45,7 @@ top16 (double x) double SECTION -__ieee754_log (double x) +__log (double x) { /* double_t for better performance on targets with FLT_EVAL_METHOD==2. */ double_t w, z, r, r2, r3, y, invc, logc, kd, hi, lo; @@ -127,6 +130,13 @@ __ieee754_log (double x) y = lo + r2 * A[0] + r * r2 * (A[1] + r * A[2] + r2 * (A[3] + r * A[4])) + hi; return y; } -#ifndef __ieee754_log -strong_alias (__ieee754_log, __log_finite) +#ifndef __log +strong_alias (__log, __ieee754_log) +strong_alias (__log, __log_finite) +# if LIBM_SVID_COMPAT +versioned_symbol (libm, __log, log, GLIBC_2_29); +libm_alias_double_other (__log, log) +# else +libm_alias_double (__log, log) +# endif #endif diff --git a/sysdeps/ieee754/dbl-64/w_log.c b/sysdeps/ieee754/dbl-64/w_log.c new file mode 100644 index 0000000..1cc8931 --- /dev/null +++ b/sysdeps/ieee754/dbl-64/w_log.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/m68k/m680x0/fpu/w_log.c b/sysdeps/m68k/m680x0/fpu/w_log.c new file mode 100644 index 0000000..9b2b018 --- /dev/null +++ b/sysdeps/m68k/m680x0/fpu/w_log.c @@ -0,0 +1 @@ +#include <sysdeps/../math/w_log.c> diff --git a/sysdeps/mach/hurd/i386/libm.abilist b/sysdeps/mach/hurd/i386/libm.abilist index ff0a06f..144bdb9 100644 --- a/sysdeps/mach/hurd/i386/libm.abilist +++ b/sysdeps/mach/hurd/i386/libm.abilist @@ -1070,3 +1070,4 @@ GLIBC_2.28 fsub F GLIBC_2.28 fsubl F GLIBC_2.29 exp F GLIBC_2.29 exp2 F +GLIBC_2.29 log F diff --git a/sysdeps/unix/sysv/linux/aarch64/libm.abilist b/sysdeps/unix/sysv/linux/aarch64/libm.abilist index cfb8f7d..6785ac6 100644 --- a/sysdeps/unix/sysv/linux/aarch64/libm.abilist +++ b/sysdeps/unix/sysv/linux/aarch64/libm.abilist @@ -1034,3 +1034,4 @@ GLIBC_2.28 fsub F GLIBC_2.28 fsubl F GLIBC_2.29 exp F GLIBC_2.29 exp2 F +GLIBC_2.29 log F diff --git a/sysdeps/unix/sysv/linux/alpha/libm.abilist b/sysdeps/unix/sysv/linux/alpha/libm.abilist index 8a7f92f..132ea00 100644 --- a/sysdeps/unix/sysv/linux/alpha/libm.abilist +++ b/sysdeps/unix/sysv/linux/alpha/libm.abilist @@ -1045,6 +1045,7 @@ GLIBC_2.28 fsub F GLIBC_2.28 fsubl F GLIBC_2.29 exp F GLIBC_2.29 exp2 F +GLIBC_2.29 log F GLIBC_2.3.4 __c1_cabsf F GLIBC_2.3.4 __c1_cacosf F GLIBC_2.3.4 __c1_cacoshf F diff --git a/sysdeps/unix/sysv/linux/arm/libm.abilist b/sysdeps/unix/sysv/linux/arm/libm.abilist index a4a2c9b..45a2337 100644 --- a/sysdeps/unix/sysv/linux/arm/libm.abilist +++ b/sysdeps/unix/sysv/linux/arm/libm.abilist @@ -455,6 +455,7 @@ GLIBC_2.28 fsub F GLIBC_2.28 fsubl F GLIBC_2.29 exp F GLIBC_2.29 exp2 F +GLIBC_2.29 log F GLIBC_2.4 _LIB_VERSION D 0x4 GLIBC_2.4 __clog10 F GLIBC_2.4 __clog10f F diff --git a/sysdeps/unix/sysv/linux/hppa/libm.abilist b/sysdeps/unix/sysv/linux/hppa/libm.abilist index c665d65..b0689ff 100644 --- a/sysdeps/unix/sysv/linux/hppa/libm.abilist +++ b/sysdeps/unix/sysv/linux/hppa/libm.abilist @@ -766,4 +766,5 @@ GLIBC_2.28 fsub F GLIBC_2.28 fsubl F GLIBC_2.29 exp F GLIBC_2.29 exp2 F +GLIBC_2.29 log F GLIBC_2.4 exp2l F diff --git a/sysdeps/unix/sysv/linux/i386/libm.abilist b/sysdeps/unix/sysv/linux/i386/libm.abilist index 6728695..3afd304 100644 --- a/sysdeps/unix/sysv/linux/i386/libm.abilist +++ b/sysdeps/unix/sysv/linux/i386/libm.abilist @@ -1077,3 +1077,4 @@ GLIBC_2.28 fsub F GLIBC_2.28 fsubl F GLIBC_2.29 exp F GLIBC_2.29 exp2 F +GLIBC_2.29 log F diff --git a/sysdeps/unix/sysv/linux/ia64/libm.abilist b/sysdeps/unix/sysv/linux/ia64/libm.abilist index 3a5d2fb..637fd15 100644 --- a/sysdeps/unix/sysv/linux/ia64/libm.abilist +++ b/sysdeps/unix/sysv/linux/ia64/libm.abilist @@ -1007,3 +1007,4 @@ GLIBC_2.28 fsub F GLIBC_2.28 fsubl F GLIBC_2.29 exp F GLIBC_2.29 exp2 F +GLIBC_2.29 log F diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist index a4a2c9b..45a2337 100644 --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist @@ -455,6 +455,7 @@ GLIBC_2.28 fsub F GLIBC_2.28 fsubl F GLIBC_2.29 exp F GLIBC_2.29 exp2 F +GLIBC_2.29 log F GLIBC_2.4 _LIB_VERSION D 0x4 GLIBC_2.4 __clog10 F GLIBC_2.4 __clog10f F diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist index 84a580a..b1689c2 100644 --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist @@ -806,3 +806,4 @@ GLIBC_2.28 fsub F GLIBC_2.28 fsubl F GLIBC_2.29 exp F GLIBC_2.29 exp2 F +GLIBC_2.29 log F diff --git a/sysdeps/unix/sysv/linux/microblaze/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/libm.abilist index f2c3143..ae59dfb 100644 --- a/sysdeps/unix/sysv/linux/microblaze/libm.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/libm.abilist @@ -767,3 +767,4 @@ GLIBC_2.28 fsub F GLIBC_2.28 fsubl F GLIBC_2.29 exp F GLIBC_2.29 exp2 F +GLIBC_2.29 log F diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist index 7ecaeea..38c6651 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist @@ -766,4 +766,5 @@ GLIBC_2.28 fsub F GLIBC_2.28 fsubl F GLIBC_2.29 exp F GLIBC_2.29 exp2 F +GLIBC_2.29 log F GLIBC_2.4 exp2l F diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist index c3679e8..09777c7 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist @@ -1034,3 +1034,4 @@ GLIBC_2.28 fsub F GLIBC_2.28 fsubl F GLIBC_2.29 exp F GLIBC_2.29 exp2 F +GLIBC_2.29 log F diff --git a/sysdeps/unix/sysv/linux/nios2/libm.abilist b/sysdeps/unix/sysv/linux/nios2/libm.abilist index 2964682..59fc049 100644 --- a/sysdeps/unix/sysv/linux/nios2/libm.abilist +++ b/sysdeps/unix/sysv/linux/nios2/libm.abilist @@ -767,3 +767,4 @@ GLIBC_2.28 fsub F GLIBC_2.28 fsubl F GLIBC_2.29 exp F GLIBC_2.29 exp2 F +GLIBC_2.29 log F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist index f7ceb78..7788f76 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist @@ -812,6 +812,7 @@ GLIBC_2.28 fsub F GLIBC_2.28 fsubl F GLIBC_2.29 exp F GLIBC_2.29 exp2 F +GLIBC_2.29 log F GLIBC_2.4 __clog10l F GLIBC_2.4 __finitel F GLIBC_2.4 __fpclassifyl F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist index 7e1c1b5..cae3604 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist @@ -811,6 +811,7 @@ GLIBC_2.28 fsub F GLIBC_2.28 fsubl F GLIBC_2.29 exp F GLIBC_2.29 exp2 F +GLIBC_2.29 log F GLIBC_2.4 __clog10l F GLIBC_2.4 __finitel F GLIBC_2.4 __fpclassifyl F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist index de18417..732825e 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist @@ -1078,3 +1078,4 @@ GLIBC_2.28 fsub F GLIBC_2.28 fsubl F GLIBC_2.29 exp F GLIBC_2.29 exp2 F +GLIBC_2.29 log F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist index 6dd35db..59f083d 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist @@ -490,6 +490,7 @@ GLIBC_2.28 fsub F GLIBC_2.28 fsubl F GLIBC_2.29 exp F GLIBC_2.29 exp2 F +GLIBC_2.29 log F GLIBC_2.3 _LIB_VERSION D 0x4 GLIBC_2.3 __clog10 F GLIBC_2.3 __clog10f F diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist index b33b214..5a68b27 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist @@ -1035,6 +1035,7 @@ GLIBC_2.28 fsub F GLIBC_2.28 fsubl F GLIBC_2.29 exp F GLIBC_2.29 exp2 F +GLIBC_2.29 log F GLIBC_2.4 __clog10l F GLIBC_2.4 __finitel F GLIBC_2.4 __fpclassifyl F diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist index 567059b..364f7e6 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist @@ -1035,6 +1035,7 @@ GLIBC_2.28 fsub F GLIBC_2.28 fsubl F GLIBC_2.29 exp F GLIBC_2.29 exp2 F +GLIBC_2.29 log F GLIBC_2.4 __clog10l F GLIBC_2.4 __finitel F GLIBC_2.4 __fpclassifyl F diff --git a/sysdeps/unix/sysv/linux/sh/libm.abilist b/sysdeps/unix/sysv/linux/sh/libm.abilist index baea131..489f34d 100644 --- a/sysdeps/unix/sysv/linux/sh/libm.abilist +++ b/sysdeps/unix/sysv/linux/sh/libm.abilist @@ -766,4 +766,5 @@ GLIBC_2.28 fsub F GLIBC_2.28 fsubl F GLIBC_2.29 exp F GLIBC_2.29 exp2 F +GLIBC_2.29 log F GLIBC_2.4 exp2l F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist index 7249346..288986f 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist @@ -1042,6 +1042,7 @@ GLIBC_2.28 fsub F GLIBC_2.28 fsubl F GLIBC_2.29 exp F GLIBC_2.29 exp2 F +GLIBC_2.29 log F GLIBC_2.4 __clog10l F GLIBC_2.4 __finitel F GLIBC_2.4 __fpclassifyl F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist index 629fb08..11fb7e4 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist @@ -1034,3 +1034,4 @@ GLIBC_2.28 fsub F GLIBC_2.28 fsubl F GLIBC_2.29 exp F GLIBC_2.29 exp2 F +GLIBC_2.29 log F diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist index ac70310..9fd399d 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist @@ -1068,3 +1068,4 @@ GLIBC_2.28 fsub F GLIBC_2.28 fsubl F GLIBC_2.29 exp F GLIBC_2.29 exp2 F +GLIBC_2.29 log F diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist index 55098e0..bbea575 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist @@ -1068,3 +1068,4 @@ GLIBC_2.28 fsub F GLIBC_2.28 fsubl F GLIBC_2.29 exp F GLIBC_2.29 exp2 F +GLIBC_2.29 log F diff --git a/sysdeps/x86_64/fpu/multiarch/e_log-avx.c b/sysdeps/x86_64/fpu/multiarch/e_log-avx.c index b22a576..b9f5be5 100644 --- a/sysdeps/x86_64/fpu/multiarch/e_log-avx.c +++ b/sysdeps/x86_64/fpu/multiarch/e_log-avx.c @@ -1,4 +1,5 @@ -#define __ieee754_log __ieee754_log_avx +#include <math.h> +#define __log __ieee754_log_avx #define SECTION __attribute__ ((section (".text.avx"))) #include <sysdeps/ieee754/dbl-64/e_log.c> diff --git a/sysdeps/x86_64/fpu/multiarch/e_log-fma.c b/sysdeps/x86_64/fpu/multiarch/e_log-fma.c index bce0ee0..13b0a2a 100644 --- a/sysdeps/x86_64/fpu/multiarch/e_log-fma.c +++ b/sysdeps/x86_64/fpu/multiarch/e_log-fma.c @@ -1,4 +1,5 @@ -#define __ieee754_log __ieee754_log_fma +#include <math.h> +#define __log __ieee754_log_fma #define SECTION __attribute__ ((section (".text.fma"))) #include <sysdeps/ieee754/dbl-64/e_log.c> diff --git a/sysdeps/x86_64/fpu/multiarch/e_log-fma4.c b/sysdeps/x86_64/fpu/multiarch/e_log-fma4.c index f458f9c..16ef3ab 100644 --- a/sysdeps/x86_64/fpu/multiarch/e_log-fma4.c +++ b/sysdeps/x86_64/fpu/multiarch/e_log-fma4.c @@ -1,4 +1,5 @@ -#define __ieee754_log __ieee754_log_fma4 +#include <math.h> +#define __log __ieee754_log_fma4 #define SECTION __attribute__ ((section (".text.fma4"))) #include <sysdeps/ieee754/dbl-64/e_log.c> diff --git a/sysdeps/x86_64/fpu/multiarch/e_log.c b/sysdeps/x86_64/fpu/multiarch/e_log.c index e0a1b02..0cd2072 100644 --- a/sysdeps/x86_64/fpu/multiarch/e_log.c +++ b/sysdeps/x86_64/fpu/multiarch/e_log.c @@ -16,6 +16,8 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ +#include <math.h> + extern double __redirect_ieee754_log (double); #define SYMBOL_NAME ieee754_log @@ -25,5 +27,5 @@ libc_ifunc_redirected (__redirect_ieee754_log, __ieee754_log, IFUNC_SELECTOR ()); strong_alias (__ieee754_log, __log_finite) -#define __ieee754_log __ieee754_log_sse2 +#define __log __ieee754_log_sse2 #include <sysdeps/ieee754/dbl-64/e_log.c> diff --git a/sysdeps/x86_64/fpu/multiarch/w_log.c b/sysdeps/x86_64/fpu/multiarch/w_log.c new file mode 100644 index 0000000..9b2b018 --- /dev/null +++ b/sysdeps/x86_64/fpu/multiarch/w_log.c @@ -0,0 +1 @@ +#include <sysdeps/../math/w_log.c> |