Signed-off-by: Khem Raj <[email protected]>
---
 ...e-__HAVE_FLOAT128-for-Clang-and-use-.patch | 87 +++++++++++++++++++
 meta/recipes-core/glibc/glibc_2.41.bb         |  1 +
 2 files changed, 88 insertions(+)
 create mode 100644 
meta/recipes-core/glibc/glibc/0001-Revert-x86-Define-__HAVE_FLOAT128-for-Clang-and-use-.patch

diff --git 
a/meta/recipes-core/glibc/glibc/0001-Revert-x86-Define-__HAVE_FLOAT128-for-Clang-and-use-.patch
 
b/meta/recipes-core/glibc/glibc/0001-Revert-x86-Define-__HAVE_FLOAT128-for-Clang-and-use-.patch
new file mode 100644
index 00000000000..88823cb95bc
--- /dev/null
+++ 
b/meta/recipes-core/glibc/glibc/0001-Revert-x86-Define-__HAVE_FLOAT128-for-Clang-and-use-.patch
@@ -0,0 +1,87 @@
+From b662179d7c679e423b8595e0509253688544a4fd Mon Sep 17 00:00:00 2001
+From: Khem Raj <[email protected]>
+Date: Thu, 26 Dec 2024 18:59:26 -0800
+Subject: [PATCH] Revert "x86: Define __HAVE_FLOAT128 for Clang and use
+ __builtin_*f128 code path"
+
+This reverts commit d773aff467840f5ed305e40c180466e90bd88183.
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <[email protected]>
+---
+ sysdeps/x86/bits/floatn.h | 24 ++++++++----------------
+ 1 file changed, 8 insertions(+), 16 deletions(-)
+
+diff --git a/sysdeps/x86/bits/floatn.h b/sysdeps/x86/bits/floatn.h
+index ba030d270a..e661abaea4 100644
+--- a/sysdeps/x86/bits/floatn.h
++++ b/sysdeps/x86/bits/floatn.h
+@@ -28,8 +28,7 @@
+    support, for x86_64 and x86.  */
+ #if (defined __x86_64__                                                       
\
+      ? __GNUC_PREREQ (4, 3)                                           \
+-     : (defined __GNU__ ? __GNUC_PREREQ (4, 5) : __GNUC_PREREQ (4, 4))) \
+-    || __glibc_clang_prereq (3, 4)
++     : (defined __GNU__ ? __GNUC_PREREQ (4, 5) : __GNUC_PREREQ (4, 4)))
+ # define __HAVE_FLOAT128 1
+ #else
+ # define __HAVE_FLOAT128 0
+@@ -59,9 +58,7 @@
+ /* Defined to concatenate the literal suffix to be used with _Float128
+    types, if __HAVE_FLOAT128 is 1. */
+ # if __HAVE_FLOAT128
+-#  if !__GNUC_PREREQ (7, 0) \
+-      || (defined __cplusplus && !__GNUC_PREREQ (13, 0)) \
+-      || defined __clang__
++#  if !__GNUC_PREREQ (7, 0) || (defined __cplusplus && !__GNUC_PREREQ (13, 0))
+ /* The literal suffix f128 exists only since GCC 7.0.  */
+ #   define __f128(x) x##q
+ #  else
+@@ -71,9 +68,7 @@
+ 
+ /* Defined to a complex binary128 type if __HAVE_FLOAT128 is 1.  */
+ # if __HAVE_FLOAT128
+-#  if !__GNUC_PREREQ (7, 0) \
+-      || (defined __cplusplus && !__GNUC_PREREQ (13, 0)) \
+-      || defined __clang__
++#  if !__GNUC_PREREQ (7, 0) || (defined __cplusplus && !__GNUC_PREREQ (13, 0))
+ /* Add a typedef for older GCC compilers which don't natively support
+    _Complex _Float128.  */
+ typedef _Complex float __cfloat128 __attribute__ ((__mode__ (__TC__)));
+@@ -87,14 +82,12 @@ typedef _Complex float __cfloat128 __attribute__ 
((__mode__ (__TC__)));
+ # if __HAVE_FLOAT128
+ 
+ /* The type _Float128 exists only since GCC 7.0.  */
+-#  if !__GNUC_PREREQ (7, 0) \
+-      || (defined __cplusplus && !__GNUC_PREREQ (13, 0)) \
+-      || __glibc_clang_prereq (3, 4)
++#  if !__GNUC_PREREQ (7, 0) || (defined __cplusplus && !__GNUC_PREREQ (13, 0))
+ typedef __float128 _Float128;
+ #  endif
+ 
+-/* __builtin_huge_valf128 doesn't exist before GCC 7.0 nor Clang 7.0.  */
+-#  if !__GNUC_PREREQ (7, 0) && !__glibc_clang_prereq (7, 0)
++/* __builtin_huge_valf128 doesn't exist before GCC 7.0.  */
++#  if !__GNUC_PREREQ (7, 0)
+ #   define __builtin_huge_valf128() ((_Float128) __builtin_huge_val ())
+ #  endif
+ 
+@@ -103,7 +96,7 @@ typedef __float128 _Float128;
+    Converting a narrower sNaN to _Float128 produces a quiet NaN, so
+    attempts to use _Float128 sNaNs will not work properly with older
+    compilers.  */
+-#  if !__GNUC_PREREQ (7, 0) && !defined __clang__
++#  if !__GNUC_PREREQ (7, 0)
+ #   define __builtin_copysignf128 __builtin_copysignq
+ #   define __builtin_fabsf128 __builtin_fabsq
+ #   define __builtin_inff128() ((_Float128) __builtin_inf ())
+@@ -114,8 +107,7 @@ typedef __float128 _Float128;
+ /* In math/math.h, __MATH_TG will expand signbit to __builtin_signbit*,
+    e.g.: __builtin_signbitf128, before GCC 6.  However, there has never
+    been a __builtin_signbitf128 in GCC and the type-generic builtin is
+-   only available since GCC 6.  signbit is expanded to __builtin_signbit
+-   after Clang 3.3.  */
++   only available since GCC 6.  */
+ #  if !__GNUC_PREREQ (6, 0)
+ #   define __builtin_signbitf128 __signbitf128
+ #  endif
diff --git a/meta/recipes-core/glibc/glibc_2.41.bb 
b/meta/recipes-core/glibc/glibc_2.41.bb
index 7f2576692d6..70afc78a55c 100644
--- a/meta/recipes-core/glibc/glibc_2.41.bb
+++ b/meta/recipes-core/glibc/glibc_2.41.bb
@@ -54,6 +54,7 @@ SRC_URI =  "${GLIBC_GIT_URI};branch=${SRCBRANCH};name=glibc \
            
file://0022-Avoid-hardcoded-build-time-paths-in-the-output-binar.patch \
            
file://0023-tests-Skip-2-qemu-tests-that-can-hang-in-oe-selftest.patch \
            
file://0024-features.h-Bump-__GLIBC_MINOR__-to-next-release-on-m.patch \
+           
file://0001-Revert-x86-Define-__HAVE_FLOAT128-for-Clang-and-use-.patch \
 "
 S = "${WORKDIR}/git"
 B = "${WORKDIR}/build-${TARGET_SYS}"
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#209508): 
https://lists.openembedded.org/g/openembedded-core/message/209508
Mute This Topic: https://lists.openembedded.org/mt/110491482/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to