-
Notifications
You must be signed in to change notification settings - Fork 13.5k
[AArch64] - cannot build from release/18.x #101358
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
[AArch64] - cannot build from release/18.x #101358
Conversation
Thank you for submitting a Pull Request (PR) to the LLVM Project! This PR will be automatically labeled and the relevant teams will be If you wish to, you can add reviewers by using the "Reviewers" section on this page. If this is not working for you, it is probably because you do not have write If you have received no comments on your PR for a week, you can request a review If you have further questions, they may be answered by the LLVM GitHub User Guide. You can also ask questions in a comment on this PR, on the LLVM Discord or on the forums. |
@llvm/pr-subscribers-libc Author: catull (catull) ChangesRan into the same problem reported in the mailing list at https://www.mail-archive.com/llvm-bugs@lists.llvm.org/msg73342.html. The PR fixes the build. Full diff: https://github.com/llvm/llvm-project/pull/101358.diff 1 Files Affected:
diff --git a/libc/src/__support/FPUtil/aarch64/fenv_darwin_impl.h b/libc/src/__support/FPUtil/aarch64/fenv_darwin_impl.h
index ea1fd68a5fcdf..efd956f14a8a2 100644
--- a/libc/src/__support/FPUtil/aarch64/fenv_darwin_impl.h
+++ b/libc/src/__support/FPUtil/aarch64/fenv_darwin_impl.h
@@ -161,8 +161,8 @@ LIBC_INLINE int set_except(int excepts) {
LIBC_INLINE int raise_except(int excepts) {
float zero = 0.0f;
float one = 1.0f;
- float large_value = FPBits<float>::max_normal();
- float small_value = FPBits<float>::min_normal();
+ float large_value = FPBits<float>::max_normal().get_val();
+ float small_value = FPBits<float>::min_normal().get_val();
auto divfunc = [](float a, float b) {
__asm__ __volatile__("ldr s0, %0\n\t"
"ldr s1, %1\n\t"
@@ -277,8 +277,10 @@ LIBC_INLINE int set_env(const fenv_t *envp) {
return 0;
}
const FEnv::FPState *state = reinterpret_cast<const FEnv::FPState *>(envp);
- FEnv::set_control_word(state->ControlWord);
- FEnv::set_status_word(state->StatusWord);
+ uint32_t control_word = static_cast<uint32_t>(state->ControlWord);
+ uint32_t status_word = static_cast<uint32_t>(state->StatusWord);
+ FEnv::set_control_word(control_word);
+ FEnv::set_status_word(status_word);
return 0;
}
|
We could just cherry-pick commit be8b2d1 instead. |
I'm not familiar with backporting fixes to release branches. I think LLVM has some special infrastructure for this where we can make a bot account open a PR for us. |
@overmighty I am not so sure @MosheBerman's fix does it. You need both values for As for the other change, don't you need to preserve the control and status words, in line 280 / 281 ? |
The only difference I see between your PR and be8b2d1 is that you moved the |
I misinterpreted the diff; you are right. |
Hi! 18.x release is done and we don't accept any additional patches for that branch. Please test if this works as expected on LLVM 19.x |
Ran into the same problem reported in the mailing list at https://www.mail-archive.com/[email protected]/msg73342.html.
The PR fixes the build.