-
Notifications
You must be signed in to change notification settings - Fork 234
Issues linking __rust_probestack when cross compiling for UEFI on 0.1.23 #333
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
Comments
I wonder if this is because, for UEFI,
(notice that I'm not sure if this is a typo, or if Mach-O requires a cc @tmandry who seemed to introduce the three-underscore version? |
Nice catch! Changing it to two underscores seems to fix the issue on UEFI. I'll hold off on making a PR though as I'm not sure about Mach-O. |
Ah nice catch indeed. Yes, Mach-O does require an extra underscore, so we'll need to leave it as-is for apple targets. You can simply make a copy of this definition with two underscores for uefi targets. (And other non-ELF non-Mach-O targets that might get introduced in the future.) It would also be good to add a comment somewhere pointing out the difference in underscores 😅 |
Don't deny warnings when checking MSRV
Cross compiling a simple example crate (containing a function with sufficiently large stack allocation) with compiler_builtins v0.1.23 produces the following error:
Produced using this crate with
cargo +nightly xbuild --target x86_64-unknown-uefi
on the current nightly.Reverting to 0.1.21 resolves the issue (0.1.22 produces the expected issue with invalid assembly). Looking at the object files it seems the the symbol is present and defined but maybe not in a way the linker expects? I tried a bit to fix this but I don't know enough about COFF/UEFI linkage. I can only speculate it is not sufficient to just use
.globl ___rust_probestack
.The text was updated successfully, but these errors were encountered: