]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
i64: fix missing exp2f, log2f and powf symbols in libm.a [BZ #23822]
authorSzabolcs Nagy <szabolcs.nagy@arm.com>
Fri, 26 Oct 2018 13:39:42 +0000 (14:39 +0100)
committerSzabolcs Nagy <szabolcs.nagy@arm.com>
Fri, 26 Oct 2018 14:49:30 +0000 (15:49 +0100)
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)

ChangeLog
NEWS
sysdeps/ia64/fpu/e_exp2f.S
sysdeps/ia64/fpu/e_log2f.S
sysdeps/ia64/fpu/e_powf.S

index 6debca5f83edc9e891d5bfd33c88e714537191a9..73d5c57f0da4a576c3258a67de9255db724487b0 100644 (file)
--- 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 fda6788519f23d8a2b662d702289353918d2a85a..f4d9885819ba74aa1eb3c918b0e5ef624b375f26 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -20,6 +20,7 @@ The following bugs are resolved with this release:
   [23679] gethostid: Missing NULL check for gethostbyname_r result
   [23717] Fix stack overflow in stdlib/tst-setcontext9
   [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
 
 \f
 Version 2.28
index 77bc6ea68646bcd19102a3968075c5078cfcd70f..3010a95a2d9e9dc08bbaab373dafed48c979ec35 100644 (file)
@@ -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
index 5ca3bd61ea472f4a31b56851a29d522957f229b2..e4ea0943448d574c9327e7a2bd3c06613893407c 100644 (file)
@@ -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
index 7449f8c7d56853938714d55a40a5a4c714024467..945d5cdf281a6f4c722b5369e53926420a6eb620 100644 (file)
@@ -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