-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Build broken in glibc-2.39.9000-359-g5aa2f79691.tar.xz #2
Comments
This is related to the recent addition of C23 functionality with: ...specifically the last one I believe. Replaying the changes to Trying to drop the architecture specific implementations by deleting them like Adhemerval did in for example:
...didn't help either. But I also haven't understood the systematic yet. E.g. sometimes it's enough to just drop the architecture specific implementation, but sometimes it also requires additional changes to generic code, like for the second fabs change. But maybe the latter is needed because there was no generic fabs implementation beforehand, but then the earlier fabs removal for ia64 would have lead to what? :-/ |
math/s_exp2m1_template.c refers to
...they're all missing an
I'm unsure what to do here. Just changing https://github.com/linux-ia64/glibc-ia64/blob/master-epic/sysdeps/ia64/fpu/e_exp2.S#L496 to |
Another point is, that the commit message of Implement C23 exp2m1, exp10m1 actually shows that powerpc64le has a similar issue like ia64 with those Not sure how to replicate something like that for ia64. |
As a first measure I have now reverted: ...in the |
So got this down to:
...with the following patch (EDIT: corrected on 2024-07-09!) on top of master-epic w/o cf2ff34 and e0d8fba: diff --git a/sysdeps/ia64/fpu/e_exp2.S b/sysdeps/ia64/fpu/e_exp2.S
index 76e26f298c..d09cd8e279 100644
--- a/sysdeps/ia64/fpu/e_exp2.S
+++ b/sysdeps/ia64/fpu/e_exp2.S
@@ -226,7 +225,7 @@ LOCAL_OBJECT_END(T_table)
.section .text
-WEAK_LIBM_ENTRY(exp2)
+GLOBAL_IEEE754_ENTRY(exp2)
{.mfi
@@ -492,7 +491,7 @@ OUT_RANGE_exp2:
}
;;
-WEAK_LIBM_END(exp2)
+GLOBAL_IEEE754_END(exp2)
libm_alias_double_other (__exp2, exp2)
#ifdef SHARED
.symver exp2,exp2@@GLIBC_2.29
diff --git a/sysdeps/ia64/fpu/e_exp2f.S b/sysdeps/ia64/fpu/e_exp2f.S
index b304885cc6..f7e0acfbf6 100644
--- a/sysdeps/ia64/fpu/e_exp2f.S
+++ b/sysdeps/ia64/fpu/e_exp2f.S
@@ -220,7 +220,7 @@ LOCAL_OBJECT_END(T_table)
.section .text
-WEAK_LIBM_ENTRY(exp2f)
+GLOBAL_IEEE754_ENTRY(exp2f)
{.mfi
@@ -467,8 +467,8 @@ OUT_RANGE_exp2:
}
;;
-WEAK_LIBM_END(exp2f)
-libm_alias_float_other (__exp2, exp2)
+GLOBAL_IEEE754_END(exp2f)
+libm_alias_float_other (__exp2, exp2)
#ifdef SHARED
.symver exp2f,exp2f@@GLIBC_2.27
.weak __exp2f_compat
diff --git a/sysdeps/ia64/fpu/e_exp2l.S b/sysdeps/ia64/fpu/e_exp2l.S
index 70cbcf06da..81bc10a1d4 100644
--- a/sysdeps/ia64/fpu/e_exp2l.S
+++ b/sysdeps/ia64/fpu/e_exp2l.S
@@ -375,7 +373,7 @@ LOCAL_OBJECT_END(D_table)
.section .text
-GLOBAL_LIBM_ENTRY(exp2l)
+GLOBAL_IEEE754_ENTRY(exp2l)
{.mii
// get exponent
@@ -744,8 +742,8 @@ OUT_RANGE_exp2l:
}
-GLOBAL_LIBM_END(exp2l)
-libm_alias_ldouble_other (exp2, exp2)
+GLOBAL_IEEE754_END(exp2l)
+libm_alias_ldouble_other (__exp2, exp2)
LOCAL_LIBM_ENTRY(__libm_error_region)
See https://github.com/linux-ia64/glibc-ia64/blob/master-epic/sysdeps/ia64/fpu/libm-symbols.h for details about those defines. Not sure if this is fully correct, because when looking into https://github.com/linux-ia64/glibc-ia64/blob/master-epic/sysdeps/ia64/fpu/import_file.awk#L83, |
Ok, another patch fixes/works around the remaining issue: diff --git a/sysdeps/ia64/fpu/s_expm1l.S b/sysdeps/ia64/fpu/s_expm1l.S
index e772c44871..769d0ff15e 100644
--- a/sysdeps/ia64/fpu/s_expm1l.S
+++ b/sysdeps/ia64/fpu/s_expm1l.S
@@ -676,6 +676,7 @@ GLOBAL_IEEE754_ENTRY(expm1l)
;;
GLOBAL_IEEE754_END(expm1l)
+libm_hidden_def (__expm1l)
libm_alias_ldouble_other (__expm1, expm1)
...and makes the cross-build complete successfully again (on top of master-epic and the patch from #2 (comment) but still w/o cf2ff34 and e0d8fba):
Got the idea from grepping the glibc source code for the
...and looking into its use for i386. As the ia64 version misses a I'll adapt the master branches accordingly. |
@matoro, @lenticularis39, @rxrbln :
Trying to (cross-)build https://snapshots.sourceware.org/glibc/trunk/2024-06-21_14-20_1718979601/src/glibc-2.39.9000-359-g5aa2f79691.tar.xz in T2 with master...master-epic on top fails and yields:
The text was updated successfully, but these errors were encountered: