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
Integrated arm assembler doesn't understand -mimplicit-it=always #20836
Comments
Implicit IT block checking is not supported by the integrated assembler and it's a GNU extension. I guess we could at least parse "-mimplicit-it=always", since that's what we do anyway, and warn that any other value will be ignored and defaulted to "always", at least until/if we implement this feature. |
Sounds good. Do you want to prepare a patch for that? :-) |
Yeah, I can do that. |
So, it seems I was wrong. Like GCC, LLVM defaults to -mimplicit-it=arm. To disable the check, we'd have to implicitly add the IT instruction, which is not trivial but can be done. What's the extent of your needs for the implicit IT to be there? Is this used in too many assembly files to be needed overall, or is it just an isolated case? |
It's used in a bunch of our build files: https://code.google.com/p/chromium/codesearch#search/&q=mimplicit-it&sq=package:chromium&type=cs Some of that is probably copypasta, but in some places it was added intentionally (Examples: https://code.google.com/p/skia/issues/detail?id=297 , https://code.google.com/p/chromium/codesearch#chromium/src/breakpad/src/build/common.gypi&l=758 ). |
Ok I'll have a go at adding the IT instructions before Thumb conditionals, but that could take a while. If you could have a look at the copypasta issues, we should be able to trim the issues as much as possible until the feature is added. |
(I suppose a good first step would be to accept -mimplicit-it=arm) |
I've removed all uses of -mimplicit-it= from the chromium build. We'll see if someone comes shouting at me, but at the moment it looks like this isn't blocking issue 20422. |
Hi Nico, I have a patch for imlicit-it=arm, but I wanted to have some progress on the IT block detection before I put myself on the line. Do you have the =arm case in Chromium? If you have removed all implicit-it uses and it still compiled, it means that there weren't any Thumb conditionals outside of an IT block, which kind of make sense, since the default inline asm is ARM. But it also may mean that you haven't compiled with -mthumb or something similar, which could break. Lets keep this open for a while more, just to make sure we're not rushing on our decision. |
Hi Nico, Since I haven't heard back from you, I'm assuming this is really not blocking Chromium builds, so this goes from a bug to an enhancement. Let me know if that's ok. cheers, |
*** This bug has been marked as a duplicate of bug #20713 *** |
Extended Description
$ clang -target arm-linux-androideabi -Wa,-mimplicit-it=always clang-3.5: error: unsupported argument '-mimplicit-it=always' to option 'Wa,' Documented here: https://sourceware.org/binutils/docs/as/ARM-Options.html
The text was updated successfully, but these errors were encountered: