-
-
Notifications
You must be signed in to change notification settings - Fork 264
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
Need consistent arm binaries in release #1988
Comments
|
Sounds great, thanks for the effort. |
|
Just out of curiosity, how long does the full build on Pi 3 roughly take? |
|
I'm away so can just roughly say 4 to 6 hours including lllvm, and ldc twice to compile itself. |
|
I uploaded an arm binary package to 1.1.0 release downloads. |
|
The only remaining ARM package now being the automated AArch64 one produced by Shippable, we can close this. The recent previous releases before 1.14 were all |
I'm in my first go at building the arm LDC binary for release 1.1.0. I thought I'd open this issue to discuss the process instead of continuing to spam issue #1963. The process needs to be repeatable by anyone.
Build is being done on a Raspberry Pi 3 running Raspian jessie. Pi 3 supports armv7, but Raspian is built for armv6 to be backward compatible with all Pi models. LLVM cmake will detect it is building on an armv7 and pick a default triple of armv7l-none-linux-gnueabihf. The system gcc though is arm-none-linux-gnueabihf which produces armv6 instructions when no extra flags are provided. This means a mixed runtime where D code is armv7, C code is armv6.
I've revised ldc-scripts to make arm binary totally armv6 compatible, it is just a matter of feeding LLVM cmake a
-DLLVM_DEFAULT_TARGET_TRIPLE=arm-none-linux-gnueabihfinstead of letting it auto detect armv7l. I've named package dir ldc2-1.1.0-linux-armhf to make obvious is uses hard-float ABI. This BTW is naming convention rust uses for their armv6 binary, where "armhf" implies "armv6 hard float". Their separate armv7 release is named "armv7hf" (https://forge.rust-lang.org/platform-support.html).What I think is nice about about an armv6 binary is that this single release should work on both armv6 and armv7 systems. I've tested it on an older Pi 1, it works.
I'll upload this arm binary to 1.1.0 release if this seems like an ok way to go. Later could add binary tuned for armv7.
The text was updated successfully, but these errors were encountered: