-
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
Can't compile "morestack.S" for iOS #11312
Comments
llvm-mc might work |
No dice with LLVM sadly:
|
Hm, the errors persist:
The strange thing is, when you grep for |
Ah ok, we use the system clang:
Can we build and use our own Clang? |
Bundling our own snapshot of clang would fix various other problems, but it's a significant undertaking that would make package managers even more unhappy with us than they already are. It does seem that we're moving in that direction though, it probably just won't happen overnight. I think a good solution to this would be to use |
They are described in one of the links above: https://sourceware.org/binutils/docs/as/ARM-Directives.html I neither do know much about ARM assembler nor about morestack. |
The full story: The segmented stack prolog calls In our world, morestack ignores the two arguments and calls Given that
|
That sounds like a correct summary to me, but I don't think that defining |
Are you sure it still does that on ARM? I know it's an issue on x86, but
|
I know for certain that the arm prelude causes an unaligned stack because the upstream LLVM folks are worried about it (I'm trying to upstream it) |
Likely fixed by #14715 |
…th-the-lints!!, r=giraffate Make `multiple_unsafe_ops_per_block` ignore await desugaring The await desugaring contains two calls (`Poll::new_unchecked` and `get_context`) inside a single unsafe block. That violates the lint. fixes rust-lang#11312 changelog: [`multiple_unsafe_ops_per_block`]: fix false positives in `.await`
The iOS/ARM toolchain does not know about the following Assembler directives:
.fnend
: marks the end of a function with an unwind table entry..fnstart
: marks the start of a function with an unwind table entry..hidden
: hides the symbol from other components..movsp
: tells the unwinder that reg contains an offset from the current stack pointer. (see compnerd/llvm@8da1908).save
: generates unwinder annotations to restore the registers..setfp
: makes all unwinder annotations relative to a frame pointer..type
: records the given type as the type attribute of a symbol table entry.See https://sourceware.org/binutils/docs/as/ARM-Directives.html and http://www.informatik.uni-hamburg.de/RZ/software/gnu/gcc/as_7.html
Some directives are not implemented upstream yet: http://llvm.org/bugs/show_bug.cgi?id=18199
The text was updated successfully, but these errors were encountered: