diff options
author | Szabolcs Nagy <szabolcs.nagy@arm.com> | 2017-09-13 18:14:26 +0100 |
---|---|---|
committer | Szabolcs Nagy <szabolcs.nagy@arm.com> | 2017-09-29 11:51:12 +0100 |
commit | dc230e23df20ac3ab13e2cc2e858083c0550bb31 (patch) | |
tree | 54f38bd9d66b5276fbc8d659fca2497a3409548d | |
parent | 7dc9a7c1aa60966df497d6405aab3bdfab5c6083 (diff) | |
download | glibc-dc230e23df20ac3ab13e2cc2e858083c0550bb31.tar.gz glibc-dc230e23df20ac3ab13e2cc2e858083c0550bb31.tar.xz glibc-dc230e23df20ac3ab13e2cc2e858083c0550bb31.zip |
Do not wrap logf, log2f and powf nsz/math
The new generic logf, log2f and powf code don't need wrappers any more, they set errno inline so only use the wrappers on targets that need it. 2017-09-19 Szabolcs Nagy <szabolcs.nagy@arm.com> * sysdeps/ieee754/flt-32/e_log2f.c (__log2f): Define without wrapper. * sysdeps/ieee754/flt-32/e_logf.c (__logf): Likewise * sysdeps/ieee754/flt-32/e_powf.c (__powf): Likewise * sysdeps/ieee754/flt-32/w_log2f.c: New file. * sysdeps/ieee754/flt-32/w_logf.c: New file. * sysdeps/ieee754/flt-32/w_powf.c: New file. * sysdeps/i386/fpu/w_log2f.c: New file. * sysdeps/i386/fpu/w_logf.c: New file. * sysdeps/i386/fpu/w_powf.c: New file. * sysdeps/m68k/m680x0/fpu/w_log2f.c: New file. * sysdeps/m68k/m680x0/fpu/w_logf.c: New file. * sysdeps/m68k/m680x0/fpu/w_powf.c: New file.
-rw-r--r-- | sysdeps/i386/fpu/w_log2f.c | 1 | ||||
-rw-r--r-- | sysdeps/i386/fpu/w_logf.c | 1 | ||||
-rw-r--r-- | sysdeps/i386/fpu/w_powf.c | 1 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/e_log2f.c | 9 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/e_logf.c | 9 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/e_powf.c | 9 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/w_log2f.c | 1 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/w_logf.c | 1 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/w_powf.c | 1 | ||||
-rw-r--r-- | sysdeps/m68k/m680x0/fpu/w_log2f.c | 1 | ||||
-rw-r--r-- | sysdeps/m68k/m680x0/fpu/w_logf.c | 1 | ||||
-rw-r--r-- | sysdeps/m68k/m680x0/fpu/w_powf.c | 1 |
12 files changed, 30 insertions, 6 deletions
diff --git a/sysdeps/i386/fpu/w_log2f.c b/sysdeps/i386/fpu/w_log2f.c new file mode 100644 index 0000000000..3f5c71cec2 --- /dev/null +++ b/sysdeps/i386/fpu/w_log2f.c @@ -0,0 +1 @@ +#include <sysdeps/../math/w_log2f.c> diff --git a/sysdeps/i386/fpu/w_logf.c b/sysdeps/i386/fpu/w_logf.c new file mode 100644 index 0000000000..ea48d1356e --- /dev/null +++ b/sysdeps/i386/fpu/w_logf.c @@ -0,0 +1 @@ +#include <sysdeps/../math/w_logf.c> diff --git a/sysdeps/i386/fpu/w_powf.c b/sysdeps/i386/fpu/w_powf.c new file mode 100644 index 0000000000..d133216f5b --- /dev/null +++ b/sysdeps/i386/fpu/w_powf.c @@ -0,0 +1 @@ +#include <sysdeps/../math/w_powf.c> diff --git a/sysdeps/ieee754/flt-32/e_log2f.c b/sysdeps/ieee754/flt-32/e_log2f.c index 6c42f27843..ef13b372cb 100644 --- a/sysdeps/ieee754/flt-32/e_log2f.c +++ b/sysdeps/ieee754/flt-32/e_log2f.c @@ -18,6 +18,7 @@ #include <math.h> #include <stdint.h> +#include <shlib-compat.h> #include "math_config.h" /* @@ -34,7 +35,7 @@ Relative error: 1.9 * 2^-26 (before rounding.) #define OFF 0x3f330000 float -__ieee754_log2f (float x) +__log2f (float x) { /* double_t for better performance on targets with FLT_EVAL_METHOD==2. */ double_t z, r, r2, p, y, y0, invc, logc; @@ -85,4 +86,8 @@ __ieee754_log2f (float x) y = y * r2 + p; return (float) y; } -strong_alias (__ieee754_log2f, __log2f_finite) +#ifndef __log2f +strong_alias (__log2f, __ieee754_log2f) +strong_alias (__log2f, __log2f_finite) +versioned_symbol (libm, __log2f, log2f, GLIBC_2_27); +#endif diff --git a/sysdeps/ieee754/flt-32/e_logf.c b/sysdeps/ieee754/flt-32/e_logf.c index b8d262441f..ea847b57ec 100644 --- a/sysdeps/ieee754/flt-32/e_logf.c +++ b/sysdeps/ieee754/flt-32/e_logf.c @@ -18,6 +18,7 @@ #include <math.h> #include <stdint.h> +#include <shlib-compat.h> #include "math_config.h" /* @@ -35,7 +36,7 @@ Relative error: 1.957 * 2^-26 (before rounding.) #define OFF 0x3f330000 float -__ieee754_logf (float x) +__logf (float x) { /* double_t for better performance on targets with FLT_EVAL_METHOD==2. */ double_t z, r, r2, y, y0, invc, logc; @@ -84,4 +85,8 @@ __ieee754_logf (float x) y = y * r2 + (y0 + r); return (float) y; } -strong_alias (__ieee754_logf, __logf_finite) +#ifndef __logf +strong_alias (__logf, __ieee754_logf) +strong_alias (__logf, __logf_finite) +versioned_symbol (libm, __logf, logf, GLIBC_2_27); +#endif diff --git a/sysdeps/ieee754/flt-32/e_powf.c b/sysdeps/ieee754/flt-32/e_powf.c index 644a18d05e..08d2c6d058 100644 --- a/sysdeps/ieee754/flt-32/e_powf.c +++ b/sysdeps/ieee754/flt-32/e_powf.c @@ -18,6 +18,7 @@ #include <math.h> #include <stdint.h> +#include <shlib-compat.h> #include "math_config.h" /* @@ -139,7 +140,7 @@ zeroinfnan (uint32_t ix) } float -__ieee754_powf (float x, float y) +__powf (float x, float y) { unsigned long sign_bias = 0; uint32_t ix, iy; @@ -214,4 +215,8 @@ __ieee754_powf (float x, float y) } return (float) exp2_inline (ylogx, sign_bias); } -strong_alias (__ieee754_powf, __powf_finite) +#ifndef __powf +strong_alias (__powf, __ieee754_powf) +strong_alias (__powf, __powf_finite) +versioned_symbol (libm, __powf, powf, GLIBC_2_27); +#endif diff --git a/sysdeps/ieee754/flt-32/w_log2f.c b/sysdeps/ieee754/flt-32/w_log2f.c new file mode 100644 index 0000000000..1cc8931700 --- /dev/null +++ b/sysdeps/ieee754/flt-32/w_log2f.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ieee754/flt-32/w_logf.c b/sysdeps/ieee754/flt-32/w_logf.c new file mode 100644 index 0000000000..1cc8931700 --- /dev/null +++ b/sysdeps/ieee754/flt-32/w_logf.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ieee754/flt-32/w_powf.c b/sysdeps/ieee754/flt-32/w_powf.c new file mode 100644 index 0000000000..1cc8931700 --- /dev/null +++ b/sysdeps/ieee754/flt-32/w_powf.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/m68k/m680x0/fpu/w_log2f.c b/sysdeps/m68k/m680x0/fpu/w_log2f.c new file mode 100644 index 0000000000..3f5c71cec2 --- /dev/null +++ b/sysdeps/m68k/m680x0/fpu/w_log2f.c @@ -0,0 +1 @@ +#include <sysdeps/../math/w_log2f.c> diff --git a/sysdeps/m68k/m680x0/fpu/w_logf.c b/sysdeps/m68k/m680x0/fpu/w_logf.c new file mode 100644 index 0000000000..ea48d1356e --- /dev/null +++ b/sysdeps/m68k/m680x0/fpu/w_logf.c @@ -0,0 +1 @@ +#include <sysdeps/../math/w_logf.c> diff --git a/sysdeps/m68k/m680x0/fpu/w_powf.c b/sysdeps/m68k/m680x0/fpu/w_powf.c new file mode 100644 index 0000000000..d133216f5b --- /dev/null +++ b/sysdeps/m68k/m680x0/fpu/w_powf.c @@ -0,0 +1 @@ +#include <sysdeps/../math/w_powf.c> |