-
Notifications
You must be signed in to change notification settings - Fork 12.7k
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
Add support for vanilla linux on arm. #8220
Conversation
@@ -1,6 +1,6 @@ | |||
[submodule "src/llvm"] | |||
path = src/llvm | |||
url = https://github.com/brson/llvm.git | |||
url = https://github.com/luqmana/llvm.git |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've almost landed #7115, is there just one commit that I could cherry pick into those changes as well?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yep, luqmana/llvm@c42c684
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It will probably conflict with alexcrichton/llvm@eb05ff3 though I'm fairly sure you can just replace that commit with mine.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@brson would probably know better...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No, I'm fairly sure. Since that was the patch from #6249 which added some initial support for linux/arm but restricted to just gnueabihf. My patch is more general.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
OK, currently diagnosing another problem in the meantime, after which I'll do some patch shuffling.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yep, I tried building for android as well and tested both with the android emulator and a Samsung Galaxy S II.
\o/ |
Update the arm linux support some more. We had a previous patch for the RasberryPi. This adds a new target `arm-unknown-linux-gnueabi` for more general arm linux support. Build/Host machine: x86_64 Debian testing (jessie) with the `gcc-4.4-arm-linux-gnueabi` package Tested on targets: - TS-7800 Feroceon (ARMv5TEJ) running Debian 7.0 wheezy - Beaglebone black (ARMv7) running Angstrom GNU/Linux v2012.12 - rustc flags: `--target=arm-unknown-linux-gnueabi --linker=arm-linux-gnueabi-gcc` - Samsung Galaxy S II (to make sure android still works) - rustc flags: `--target=arm-linux-androideabi --android-cross-path=[path to standalone toolchain]` Since not all arm devices (i.e. afaik anything older than armv6 like the ts-7800 i tested on) supported getting the tls address via the `mrc` instruction, I made it also try via the magic address the kernel maps into the address space (0xFFFF0FF0). One or the other should work (and on android it seems like both work). Also fixes a bug where rustc would always try to invoke the android assembler for any kind of arm target.
Consider auto-deref when linting `manual_swap` fixes rust-lang#8154 changelog: Don't lint `manual_swap` when a field access involves auto-deref
Update the arm linux support some more. We had a previous patch for the RasberryPi. This adds a new target
arm-unknown-linux-gnueabi
for more general arm linux support.Build/Host machine: x86_64 Debian testing (jessie) with the
gcc-4.4-arm-linux-gnueabi
packageTested on targets:
--target=arm-unknown-linux-gnueabi --linker=arm-linux-gnueabi-gcc
--target=arm-linux-androideabi --android-cross-path=[path to standalone toolchain]
Since not all arm devices (i.e. afaik anything older than armv6 like the ts-7800 i tested on) supported getting the tls address via the
mrc
instruction, I made it also try via the magic address the kernel maps into the address space (0xFFFF0FF0). One or the other should work (and on android it seems like both work).Also fixes a bug where rustc would always try to invoke the android assembler for any kind of arm target.