Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.
Sign upSupport new "armv7-android-linuxeabi" target triple #11921
Comments
mbrubeck
added
P-android
B-meta
A-build
labels
Jun 29, 2016
This comment has been minimized.
This comment has been minimized.
|
cc me, need to see how this affects servo/saltfs#355 and ARM triple naming |
This comment has been minimized.
This comment has been minimized.
|
This has become newly important, as Rust just landed: I'd expect that to significantly regress Android performance unless we switch to the new target. |
This comment has been minimized.
This comment has been minimized.
|
I have some wip code in Servo python scripts to add armv7 and aarch64 target compilation parameters. The biggest blocker are some makefile based crates/dependencies which fail to compile An easier way to fix this may be using make-standalone-toolchain.sh script to generate a preconfigured ndk toolchain. At least, with some tests I did, preconfigured NDKs worked almost on first try, while using the full ndk with CXX params produced tons of errors. |
This comment has been minimized.
This comment has been minimized.
|
My only worry about that is that we used to use It was also a huge failure point for people building for Android. They'd forget to do it or not do it quite right or not get the two env variables correct (you have to install the SDK and NDK and set env vars to the SDK and the made toolchain). I'd loop with @froydnj, who I believe pointed me at the original gecko code that I cribbed for picking up the right NDK folders. I think it's all here: |
This was referenced May 8, 2017
This comment has been minimized.
This comment has been minimized.
|
@larsbergstrom Yes, I agree that standalone toolchains add more complexity to the users. It's better if we assume the complexity and make users happier ;) I pushed #16769 for armv7 and aarch64 target triples support in python build scripts (build + packaging). arm-linux-androideabi is still the default, we can change it when all armv7 compilation errors are fixed in dependencies. We still need to fix the crates failing to compile form arm-v7 and aarch64. I fixed armv7 and aarch64 compilation for mozjs in this PR: Mio libray fails to compile in aarch64, but a PR is already in progress: carllerche/mio#599 Other libraries found that still needs to be fixed: libfontconfig, skia. |
mbrubeck commentedJun 29, 2016
rust-lang/rust#33278 added a new Android target,
armv7-android-linuxeabi.In the near future, the existing
arm-android-linuxeabitarget (which Servo uses by default when building for Android) will be changed to use the ARMv5TE instruction set instead of ARMv7. We will need to switch to the new target if we want to continue generating ARMv7 code (and linking to standard libraries built for ARMv7).This will require finding and fixing any packages whose build scripts that assume the
$TARGETused by Cargo and rustc is the same as the$TARGETneeded for the C toolchain, for example harfbuzz-sys and probably most of our other crates that can build their own C libraries.