diff options
author | Szabolcs Nagy <szabolcs.nagy@arm.com> | 2018-10-26 14:39:42 +0100 |
---|---|---|
committer | Szabolcs Nagy <szabolcs.nagy@arm.com> | 2018-10-26 15:50:54 +0100 |
commit | 5cd5309d910b0fcdeb5d7e734afb535d0231ba2c (patch) | |
tree | 93801145808519af4f914c813d4330c2e53b6007 | |
parent | 1759ea197bf38f0b87c5d059bc64944fefa96c2c (diff) | |
download | glibc-5cd5309d910b0fcdeb5d7e734afb535d0231ba2c.tar.gz glibc-5cd5309d910b0fcdeb5d7e734afb535d0231ba2c.tar.xz glibc-5cd5309d910b0fcdeb5d7e734afb535d0231ba2c.zip |
i64: fix missing exp2f, log2f and powf symbols in libm.a [BZ #23822]
When new symbol versions were introduced without SVID compatible error handling the exp2f, log2f and powf symbols were accidentally removed from the ia64 lim.a. The regression was introduced by the commits f5f0f5265162fe6f4f238abcd3086985f7c38d6d New expf and exp2f version without SVID compat wrapper 72d3d281080be9f674982067d72874fd6cdb4b64 New symbol version for logf, log2f and powf without SVID compat With WEAK_LIBM_ENTRY(foo), there is a hidden __foo and weak foo symbol definition in both SHARED and !SHARED build. [BZ #23822] * sysdeps/ia64/fpu/e_exp2f.S (exp2f): Use WEAK_LIBM_ENTRY. * sysdeps/ia64/fpu/e_log2f.S (log2f): Likewise. * sysdeps/ia64/fpu/e_exp2f.S (powf): Likewise. (cherry picked from commit ba5b14c7613980dfefcad6b6e88f913e5f596c59)
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | NEWS | 1 | ||||
-rw-r--r-- | sysdeps/ia64/fpu/e_exp2f.S | 6 | ||||
-rw-r--r-- | sysdeps/ia64/fpu/e_log2f.S | 6 | ||||
-rw-r--r-- | sysdeps/ia64/fpu/e_powf.S | 6 |
5 files changed, 17 insertions, 9 deletions
diff --git a/ChangeLog b/ChangeLog index 8bf37f0a7e..c1e742e563 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2018-10-26 Szabolcs Nagy <szabolcs.nagy@arm.com> + + [BZ #23822] + * sysdeps/ia64/fpu/e_exp2f.S (exp2f): Use WEAK_LIBM_ENTRY. + * sysdeps/ia64/fpu/e_log2f.S (log2f): Likewise. + * sysdeps/ia64/fpu/e_exp2f.S (powf): Likewise. + 2018-10-25 Florian Weimer <fweimer@redhat.com> [BZ #23562] diff --git a/NEWS b/NEWS index 012e665601..1030b3db4c 100644 --- a/NEWS +++ b/NEWS @@ -94,6 +94,7 @@ The following bugs are resolved with this release: [23562] signal: Use correct type for si_band in siginfo_t [23579] libc: Errors misreported in preadv2 [23821] si_band in siginfo_t has wrong type long int on sparc64 + [23822] ia64 static libm.a is missing exp2f, log2f and powf symbols Version 2.27 diff --git a/sysdeps/ia64/fpu/e_exp2f.S b/sysdeps/ia64/fpu/e_exp2f.S index 77bc6ea686..3010a95a2d 100644 --- a/sysdeps/ia64/fpu/e_exp2f.S +++ b/sysdeps/ia64/fpu/e_exp2f.S @@ -221,7 +221,7 @@ LOCAL_OBJECT_END(T_table) .section .text -GLOBAL_LIBM_ENTRY(__exp2f) +WEAK_LIBM_ENTRY(exp2f) {.mfi @@ -468,10 +468,10 @@ OUT_RANGE_exp2: } ;; -GLOBAL_LIBM_END(__exp2f) +WEAK_LIBM_END(exp2f) libm_alias_float_other (__exp2, exp2) #ifdef SHARED -.symver __exp2f,exp2f@@GLIBC_2.27 +.symver exp2f,exp2f@@GLIBC_2.27 .weak __exp2f_compat .set __exp2f_compat,__exp2f .symver __exp2f_compat,exp2f@GLIBC_2.2 diff --git a/sysdeps/ia64/fpu/e_log2f.S b/sysdeps/ia64/fpu/e_log2f.S index 5ca3bd61ea..e4ea094344 100644 --- a/sysdeps/ia64/fpu/e_log2f.S +++ b/sysdeps/ia64/fpu/e_log2f.S @@ -252,7 +252,7 @@ LOCAL_OBJECT_END(T_table) .section .text -GLOBAL_LIBM_ENTRY(__log2f) +WEAK_LIBM_ENTRY(log2f) { .mfi alloc r32=ar.pfs,1,4,4,0 @@ -491,10 +491,10 @@ SPECIAL_log2f: br.ret.sptk b0;; } -GLOBAL_LIBM_END(__log2f) +WEAK_LIBM_END(log2f) libm_alias_float_other (__log2, log2) #ifdef SHARED -.symver __log2f,log2f@@GLIBC_2.27 +.symver log2f,log2f@@GLIBC_2.27 .weak __log2f_compat .set __log2f_compat,__log2f .symver __log2f_compat,log2f@GLIBC_2.2 diff --git a/sysdeps/ia64/fpu/e_powf.S b/sysdeps/ia64/fpu/e_powf.S index 7449f8c7d5..945d5cdf28 100644 --- a/sysdeps/ia64/fpu/e_powf.S +++ b/sysdeps/ia64/fpu/e_powf.S @@ -868,7 +868,7 @@ data8 0xEAC0C6E7DD24392F , 0x00003FFF LOCAL_OBJECT_END(pow_tbl2) .section .text -GLOBAL_LIBM_ENTRY(__powf) +WEAK_LIBM_ENTRY(powf) // Get exponent of x. Will be used to calculate K. { .mfi @@ -2002,10 +2002,10 @@ POW_OVER_UNDER_ERROR: } ;; -GLOBAL_LIBM_END(__powf) +WEAK_LIBM_END(powf) libm_alias_float_other (__pow, pow) #ifdef SHARED -.symver __powf,powf@@GLIBC_2.27 +.symver powf,powf@@GLIBC_2.27 .weak __powf_compat .set __powf_compat,__powf .symver __powf_compat,powf@GLIBC_2.2 |