]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Remove the error handling wrapper from log
authorSzabolcs Nagy <szabolcs.nagy@arm.com>
Fri, 20 Apr 2018 17:06:44 +0000 (18:06 +0100)
committerSzabolcs Nagy <szabolcs.nagy@arm.com>
Wed, 21 Nov 2018 09:56:27 +0000 (09:56 +0000)
Introduce new log symbol version that doesn't do SVID compatible error
handling.  The standard errno and fp exception based error handling is
inline in the new code and does not have significant overhead.

The wrapper is disabled for sysdeps/ieee754/dbl-64 by using empty
w_log.c and enabled for targets with their own log implementation by
including math/w_log.c.

The compatibility symbol version still uses the wrapper with SVID error
handling around the new code.  There is no new symbol version nor
compatibility code on !LIBM_SVID_COMPAT targets (e.g. riscv).

On targets where previously logl was an alias of log, now it points to
the compatibility symbol with the wrapper, because it still need the
SVID compatible error handling.  This affects NO_LONG_DOUBLE (e.g. arm)
and LONG_DOUBLE_COMPAT (e.g. alpha) targets as well.

The __log_finite symbol is now an alias of log.  Both __log_finite and
log set errno and thus not const functions.

The ia64 asm is changed so the compat and new symbol versions map to the
same address.

On x86_64 #include <math.h> was added before macro definitions that may
affect that header.

Tested with build-many-glibcs.py.

* 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.

38 files changed:
ChangeLog
math/Versions
math/w_log.c [new file with mode: 0644]
math/w_log_compat.c
sysdeps/i386/fpu/w_log.c [new file with mode: 0644]
sysdeps/ia64/fpu/e_log.S
sysdeps/ieee754/dbl-64/e_log.c
sysdeps/ieee754/dbl-64/w_log.c [new file with mode: 0644]
sysdeps/m68k/m680x0/fpu/w_log.c [new file with mode: 0644]
sysdeps/mach/hurd/i386/libm.abilist
sysdeps/unix/sysv/linux/aarch64/libm.abilist
sysdeps/unix/sysv/linux/alpha/libm.abilist
sysdeps/unix/sysv/linux/arm/libm.abilist
sysdeps/unix/sysv/linux/hppa/libm.abilist
sysdeps/unix/sysv/linux/i386/libm.abilist
sysdeps/unix/sysv/linux/ia64/libm.abilist
sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist
sysdeps/unix/sysv/linux/microblaze/libm.abilist
sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
sysdeps/unix/sysv/linux/nios2/libm.abilist
sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist
sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist
sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
sysdeps/unix/sysv/linux/sh/libm.abilist
sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
sysdeps/x86_64/fpu/multiarch/e_log-avx.c
sysdeps/x86_64/fpu/multiarch/e_log-fma.c
sysdeps/x86_64/fpu/multiarch/e_log-fma4.c
sysdeps/x86_64/fpu/multiarch/e_log.c
sysdeps/x86_64/fpu/multiarch/w_log.c [new file with mode: 0644]

index 5968aa4ee0eecb490e96f6e382ea8bd567d0f9d6..206d216bcac1f372768dae3359c5b6094aa95f7d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,46 @@
+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.
index 29e02d66547efe0850913c066143b78b08ca21f1..87aa6590ededfb04aa861557afef845e2a81f4f6 100644 (file)
@@ -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 (file)
index 0000000..50065e3
--- /dev/null
@@ -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)
index 5413b8e8dfd9d184b3ea7ae07627a9fbb94b9893..d99dd4f689f8689608f1cd58b2bcab6315c3e394 100644 (file)
 #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 (file)
index 0000000..9b2b018
--- /dev/null
@@ -0,0 +1 @@
+#include <sysdeps/../math/w_log.c>
index 0b63ec43c5c0c3700b40e9b787d892d9d5a6390b..7ee2392acd09b2b77dcae9d17d23ee12d46d443e 100644 (file)
@@ -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)
index a56b714fb7d7a3d92111051c53e58974ceb67ab9..648fe141dfe8ce7ac98d995d704584f8f013a01e 100644 (file)
@@ -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 (file)
index 0000000..1cc8931
--- /dev/null
@@ -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 (file)
index 0000000..9b2b018
--- /dev/null
@@ -0,0 +1 @@
+#include <sysdeps/../math/w_log.c>
index ff0a06fdb83916ac12033beb0c5ad2fc68643d81..144bdb9cac56443fe12c11ef4a806221ab56c04d 100644 (file)
@@ -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
index cfb8f7d72992eb401e2d0e2fc17615616bafec35..6785ac6aa212628f556c4726170834db2883f458 100644 (file)
@@ -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
index 8a7f92f5483c456485e1c9063e42a3fe4f358822..132ea0028851acdd74bcdda2fcaa6f60a526dcda 100644 (file)
@@ -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
index a4a2c9b5e044f90160e998635d7e0ee516d5b817..45a233785dbd00878ffb8022b2649ebfdd4e16be 100644 (file)
@@ -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
index c665d65ef1f4dffb664080997d733297a2f1fc46..b0689ff6c5cbceb567d3c331a5c40005a6a51b62 100644 (file)
@@ -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
index 6728695daa3af588ff84f023019caa9bdd2a96b0..3afd3048818dc9976d1438009c569bff87f832e6 100644 (file)
@@ -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
index 3a5d2fb84d725e06f37a3515d650431f693da4b3..637fd150c2a52b89be8cd4ebe519346f66190992 100644 (file)
@@ -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
index a4a2c9b5e044f90160e998635d7e0ee516d5b817..45a233785dbd00878ffb8022b2649ebfdd4e16be 100644 (file)
@@ -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
index 84a580a3a0ffa1fe75390ff7f290d6ca9b1cd1c2..b1689c2e65c92a57958da284aa0f438bc34c3153 100644 (file)
@@ -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
index f2c3143b70623cc31d51ed95a447bc5971fe4d3a..ae59dfbd6639ebc964036e36e8f07579a6f177a5 100644 (file)
@@ -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
index 7ecaeea9d55741eff2166eb1f969a3f2c0dcc2ab..38c665147a6b0d61deb3696cf609550c04b78c90 100644 (file)
@@ -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
index c3679e812cb2116d7d11f7f27084943341a2c44c..09777c71c776db03600d37c332f22f5978419968 100644 (file)
@@ -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
index 2964682f198e5d9d3b78cb0cb2d731099ab7b340..59fc049b860ede150347f6a267ce88f283fee6b0 100644 (file)
@@ -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
index f7ceb788cee6da7f2fda0dc648d2f94bf45cd575..7788f76e81177eb88405c824b225ad4b1bd728c6 100644 (file)
@@ -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
index 7e1c1b559ad56d3ddeca9235211042d825520a60..cae3604a001f51522ab16a599ac1bd381f4fff62 100644 (file)
@@ -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
index de18417d4653bf61e8ef2693b9dc127bd02e96ea..732825e015e6f7ac3d578dbb95167fc56fe33f34 100644 (file)
@@ -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
index 6dd35dbb28de552a475ab43f4fbc6a4b8fa65d73..59f083dda73aecb668b7b49d0bcea012c4efc190 100644 (file)
@@ -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
index b33b21431f441a1090a46ae08183849ef6950a4b..5a68b2701bcf6a461860fc2d253172a96f16e293 100644 (file)
@@ -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
index 567059b0540c43ad5126cf23d1b1b596a56d6818..364f7e63d4b4aefac0262994df0de5097cccd50b 100644 (file)
@@ -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
index baea13116d0e9d2b396836946d028879ea78116d..489f34db579ada438e8fd23c14105a91496ba26a 100644 (file)
@@ -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
index 7249346330554ebd027f7c88e9d8c19f60cf5ebc..288986f22835e8c37f44128cb1db08076612a632 100644 (file)
@@ -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
index 629fb08f544e83eba3e1d1dde1a7c0ba29e41cab..11fb7e4597456f2f89ee938bd3142346bae9cb72 100644 (file)
@@ -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
index ac703100df89e6a15834732bb30c349ef6a19f33..9fd399d31a11861618df3683531af7360c7c9e34 100644 (file)
@@ -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
index 55098e04c81512471c22f5a191e70f6e3afc0dbf..bbea57551da5d07492f4c46488995d4e227a41c0 100644 (file)
@@ -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
index b22a5767be5eebb66aa6c5b573a8db105878a432..b9f5be55fbfac8b3f469f52eaa08229fc4f9ca6f 100644 (file)
@@ -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>
index bce0ee03c24018baa9cc6eb82e92fd3da3f507dc..13b0a2ae4f4298f503887bc61c0c2ddda9545b63 100644 (file)
@@ -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>
index f458f9c23c3f7ee4da2bae314e2b7e1e6141e03a..16ef3ab8376fdfcb4e0518ee225113504bd8b309 100644 (file)
@@ -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>
index e0a1b02faecc19e4546cc66afe2b0d29d2c0addd..0cd2072325929cdf15e896ff2d1c5d4618cc9d03 100644 (file)
@@ -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 (file)
index 0000000..9b2b018
--- /dev/null
@@ -0,0 +1 @@
+#include <sysdeps/../math/w_log.c>