Upstream commit: dd45734e322a03287d34d8af9b7da7b35cfddb8e - nptl: Add glibc.pthread.stack_cache_size tunable - nptl: Export libthread_db-used symbols under GLIBC_PRIVATE - nptl: Rename nptl_version to __nptl_version - nptl_db: Clean up main/rtld variable handling - arm: align stack in clone [BZ 28020] - Linux: Cleanups after librt move - Linux: Move timer_settime, __timer_settime64 from librt to libc - Linux: Move timer_gettime, __timer_gettime64 from librt to libc - Linux: Move timer_getoverrun from librt to libc - Linux: Move timer_create, timer_delete from librt to libc - Linux: Define TIMER_T_WAS_INT_COMPAT in kernel-posix-timers.h - Install shared objects under their ABI names - elf: Generalize name-based DSO recognition in ldconfig - Makerules: Remove lib-version, $(subdir-version) - nptl_db: Install libthread_db under a regular implementation name - iconvconfig: Fix multiple issues - wordexp: handle overflow in positional parameter number (bug 28011) - Update math: redirect roundeven function - Use GCC builtins for roundeven functions if desired. - x86_64: roundeven with sse4.1 support - math: redirect roundeven function
75 lines
2.3 KiB
Diff
75 lines
2.3 KiB
Diff
Emergency backport of a submitted upstream patch.
|
|
|
|
From: Stefan Liebler via Libc-alpha <libc-alpha@sourceware.org>
|
|
Subject: [PATCH] s390x: Update math: redirect roundeven function
|
|
To: libc-alpha@sourceware.org
|
|
Cc: Stefan Liebler <stli@linux.ibm.com>
|
|
Date: Mon, 28 Jun 2021 13:01:07 +0200 (4 hours, 41 minutes, 28 seconds ago)
|
|
Message-Id: <20210628110107.4039211-1-stli@linux.ibm.com>
|
|
Reply-To: Stefan Liebler <stli@linux.ibm.com>
|
|
|
|
After recent commit
|
|
447954a206837b5f153869cfeeeab44631c3fac9
|
|
"math: redirect roundeven function", building on
|
|
s390x fails with:
|
|
Error: symbol `__roundevenl' is already defined
|
|
|
|
Similar to aarch64/riscv fix, this patch redirects target
|
|
specific functions for s390x:
|
|
commit 3213ed770cbc5821920d16caa93c85e92dd7b9f6
|
|
"Update math: redirect roundeven function"
|
|
---
|
|
sysdeps/s390/fpu/s_roundeven.c | 2 +-
|
|
sysdeps/s390/fpu/s_roundevenf.c | 1 +
|
|
sysdeps/s390/fpu/s_roundevenl.c | 1 +
|
|
3 files changed, 3 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/sysdeps/s390/fpu/s_roundeven.c b/sysdeps/s390/fpu/s_roundeven.c
|
|
index 40b07e054b..0773adfed0 100644
|
|
--- a/sysdeps/s390/fpu/s_roundeven.c
|
|
+++ b/sysdeps/s390/fpu/s_roundeven.c
|
|
@@ -18,6 +18,7 @@
|
|
<https://www.gnu.org/licenses/>. */
|
|
|
|
#ifdef HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT
|
|
+# define NO_MATH_REDIRECT
|
|
# include <math.h>
|
|
# include <libm-alias-double.h>
|
|
|
|
@@ -31,7 +32,6 @@ __roundeven (double x)
|
|
__asm__ ("fidbra %0,4,%1,4" : "=f" (y) : "f" (x));
|
|
return y;
|
|
}
|
|
-hidden_def (__roundeven)
|
|
libm_alias_double (__roundeven, roundeven)
|
|
|
|
#else
|
|
diff --git a/sysdeps/s390/fpu/s_roundevenf.c b/sysdeps/s390/fpu/s_roundevenf.c
|
|
index d2fbf3d2b6..289785bc4a 100644
|
|
--- a/sysdeps/s390/fpu/s_roundevenf.c
|
|
+++ b/sysdeps/s390/fpu/s_roundevenf.c
|
|
@@ -18,6 +18,7 @@
|
|
<https://www.gnu.org/licenses/>. */
|
|
|
|
#ifdef HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT
|
|
+# define NO_MATH_REDIRECT
|
|
# include <math.h>
|
|
# include <libm-alias-float.h>
|
|
|
|
diff --git a/sysdeps/s390/fpu/s_roundevenl.c b/sysdeps/s390/fpu/s_roundevenl.c
|
|
index 29ab7a8616..94b6459ab4 100644
|
|
--- a/sysdeps/s390/fpu/s_roundevenl.c
|
|
+++ b/sysdeps/s390/fpu/s_roundevenl.c
|
|
@@ -18,6 +18,7 @@
|
|
<https://www.gnu.org/licenses/>. */
|
|
|
|
#ifdef HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT
|
|
+# define NO_MATH_REDIRECT
|
|
# include <math.h>
|
|
# include <math_private.h>
|
|
# include <libm-alias-ldouble.h>
|
|
--
|
|
|
|
2.31.1
|
|
|