-
Notifications
You must be signed in to change notification settings - Fork 12.9k
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
fmodf symbol missing on i686-unknown-uefi since nightly-2024-07-30 #128533
Comments
Could you run |
|
Does it show up on the working version? |
No, I guess.
|
But it seems to be there, somehow:
|
(edited the above comments to remove output noise) |
Thanks for looking into it. |
It's still available on
|
@YtvwlD I'm visiting this issue again. On current stable I cannot reproduce (unless I'm doing it wrong)
can you confirm if it's fixed for you or you can still reproduce? thanks |
You're right: It compiles on current stable.
It's still broken on nightly, though:
Weird. |
We changed compiler_builtins to provide these math symbols weakly on all platforms (including platforms that actually provide them) but wound up changing it back before it hit stable. It wasn’t an exact revert though, the config changed slightly - so my guess is uefi just isn’t getting them enabled still. I can’t look at this right now but if anyone wants to take a peek, check the config in the |
Could you point me to the changed configuration? I've tried |
This is where we control whether math symbols are available https://github.com/Amjad50/compiler-builtins/blob/0fab77e8d72cf232af4977642b52544f0e4ab521/src/lib.rs#L50-L61, I think something around https://github.com/Amjad50/compiler-builtins/blob/127bbc53b5a8986abff28b3af1524342427bf38f/src/lib.rs#L48-L56 would have been the state before the mentioned nightly (2024-07-30). Does our |
Ah, no sse2 is indeed the case
Were you using I think maybe what we should do here is provide fallback math symbols on non-unix x86 platforms that don't have SSE and just call |
The math symbols should work fine on |
I haven't actually used the float functions, no. As far as I'm aware they're being pulled in because I'm reading a configuration file and it could contain floats, but it doesn't. |
I think the |
In 9ba77d1, this was disabled for x86 without sse2. It should be fine to re-enable it for UEFI, as explained at <rust-lang/rust#128533 (comment)>.
In 9ba77d1, this was disabled for x86 without sse2. It should be fine to re-enable it for UEFI, as explained at <rust-lang/rust#128533 (comment)>.
In 9ba77d1, this was disabled for x86 without sse2. It should be fine to re-enable it for UEFI, as explained at <rust-lang/rust#128533 (comment)>.
@YtvwlD when the next nigtly releases, would you be able to verify this is fixed? |
Update compiler-builtins to 0.1.136 This includes: * The license change rust-lang/compiler-builtins#717 * The `libm` submodule update, which also has a license change rust-lang/libm#317 * Re-enabling `math` on i686 UEFI rust-lang/compiler-builtins#715 Fixes: rust-lang/rust#128533
Update compiler-builtins to 0.1.136 This includes: * The license change rust-lang/compiler-builtins#717 * The `libm` submodule update, which also has a license change rust-lang/libm#317 * Re-enabling `math` on i686 UEFI rust-lang/compiler-builtins#715 Fixes: rust-lang/rust#128533
On, |
I'm using (a library that uses) floating point math on UEFI targets. For quite some time,
fmodf
was missing oni686-unknown-uefi
(but available onx86_64-unknown-uefi
). Since rust-lang/compiler-builtins#490, rust-lang/compiler-builtins#553, #119019, this was available, but it's gone missing a few days ago. I suspect it's due to this update to compiler-builtins, but I have not confirmed it.Code
This is a minimal (but nonsensical) example code that compiles:
I expected to see this happen: The code should should compile.
Instead, this happened:
Version it worked on
It most recently worked on:
Version with regression
Backtrace
There's no crash.
The text was updated successfully, but these errors were encountered: