140 lines
4.0 KiB
Diff
140 lines
4.0 KiB
Diff
From 5256ffc51e4188a70fa0173cb6b6c94adde03fcb Mon Sep 17 00:00:00 2001
|
||
From: Szabolcs Nagy <szabolcs.nagy@arm.com>
|
||
Date: Fri, 26 Oct 2018 14:39:42 +0100
|
||
Subject: [PATCH 26] 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)
|
||
---
|
||
ChangeLog | 7 +++++++
|
||
NEWS | 1 +
|
||
sysdeps/ia64/fpu/e_exp2f.S | 6 +++---
|
||
sysdeps/ia64/fpu/e_log2f.S | 6 +++---
|
||
sysdeps/ia64/fpu/e_powf.S | 6 +++---
|
||
5 files changed, 17 insertions(+), 9 deletions(-)
|
||
|
||
diff --git a/ChangeLog b/ChangeLog
|
||
index 6debca5f83..73d5c57f0d 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 fda6788519..f4d9885819 100644
|
||
--- 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
|
||
|
||
|
||
Version 2.28
|
||
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
|