-
Notifications
You must be signed in to change notification settings - Fork 36.3k
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 aarch64 qt depends support for cross compiling bitcoin-qt #13696
Conversation
There apparently are boards that support that according to this comment: #13543 (comment) |
Being able to incrementally add QT binaries for new architecture is probably useful. Make sure to try a Gitian build, see #13700. |
I was able to cross compile this on a Bionic host. I don't have a desktop environment at the moment, but
|
I'd rather not have to add this for every arch we encounter. It's annoying that qt doesn't have a generic target allowing you to specify individual toolchain components, so I made my own: See here: theuni@b720478 @TheCharlatan how about pulling that in rather than the second chunk here? Edit: Also, note that there's no longer anything arch-specific in the qt recipe. So it's possible that arches like risc-v "just work" now. I think that's a good enough justification for getting rid of the conditional qt build. |
@theuni added your commit on top of mine. Great Work, this should make everything build. |
0ec0710
to
a424baa
Compare
Except Travis My MacOS isn't happy either, at the end:
I'll try the cross-compiled QT binaries again on a 64 bit device shortly. |
Huh, I guess clang ends up using the gcc flags. qt's buildsystem is so wonky! Testing a fix. |
@TheCharlatan See here: https://github.com/theuni/bitcoin/commits/13696 That's 3 more commits on top of the one here. That adds a generic config for macOS like the linux one, and fixes up a few things with the linux/mingw build. Ideally we'd create a bitcoin-specific device for mingw as well so that everything builds the same, but I won't be able to get to that today. Any volunteers? :) Ordinarily I'd suggest that we just merge the previous version of your PR as-is, then merge my changes as a follow-up, but That would mean travis would be rebuilding depends a whole bunch of times, so I'd prefer to knock this out in one go. |
a424baa
to
900c53a
Compare
I'm still getting the same OpenSSL error when building depends on macOS with 900c53a. Here's my log. Cross-compile (on Bionic) also still gets me the same error on the device (while the
|
Note to reviewers: This pull request conflicts with the following ones:
If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first. |
Drahtbot also does not seem to build bitcoin-qt (or at least it is not present in the aarch64 archive). |
Sorry, looked at the wrong archive. It does indeed build bitcoin-qt. @Sjors maybe your problem with openssl is unrelated after all. |
If @DrahtBot can build it using Gitian, then that's good enough for me now. Will figure out what's wrong with my Gitian machine. Running that binary on my device, it now throws |
Tried again on Bionic:
Now it correctly throws I installed a desktop for the occasion: I also tried building the depends again on macOS. For that I rebased on master just in case, because master works (except for #13750, but this PR removes that problematic line). Still the same OpenSSL error. I'll dig a bit more. |
@Sjors yes, my changes will cause problems for native macOS builds. I'll work on fixing that up. |
4993dc6
to
c1ff2cc
Compare
What is the status of native macOS build on this pull request? If we can't get these to work, we should probably remove the 0.17 milestone? |
I think we can rollback to the previous way and use generic config after 0.17 branch split off. |
@theuni , are you fine with rolling back to my initial commit, or do you have a fix available already? |
@TheCharlatan Yes, I guess rolling back would be best. Sorry for the back and forth :( Qmake doesn't seem to support what I'm trying to do at all, so I'll put the more invasive changes on hold until the next qt bump. Maybe we'll end up with a nice clean qt build just in time for some wacky new Qt6 buildsystem :) |
c1ff2cc
to
00db418
Compare
Force pushed to remove the generic qt builds. @theuni I created a seperate branch on my repo that still contains your changes as they were before. |
I'll be offline the next two weeks, but would still very much like this to go into 0.17. If anything needs to be added/changed, feel free to close this and reopen as another pr. |
Thanks! I already tested 0bbe899 above, and 00db418 is the same but rebased, so tACK. @MarcoFalke can you do one of those fancy gitian builds to make sure 64-bit QT for ARM is now in it? |
Gitian builds for commit aa30e4b (master):
Gitian builds for commit 4f5ff4cfec6d5fc61d2ab4c0e509a5dab9889661 (master and this pull):
|
utACK 00db418 |
Tested the new Gitian binaries again on a desktop. For some reason I can't interact with a keyboard at all, e.g. I can't type commands in the console screen. I tried both a physical and onscreen keyboard. This might be some quirk with my device, but would be good if someone else tried it too. |
…oin-qt 00db418 Add aarch64 qt depends support for cross compiling bitcoin-qt (TheCharlatan) Pull request description: This also adds a generic qt linux target in packages.mk . I am a bit confused by the existing docs for the RISC addition. Are there boards that would support running bitcoin-qt, or at the very least forwarding X over ssh? Is everybody building depends with `NO_QT=1` when targeting RISC? If not, I will revert the change for a generic qt linux package definition back to the piecemeal solution. This pull request should close #13495 Tree-SHA512: 519b951bf50f214ad725e5330094582a212333cd85b0ae442c67f9afec5629995dfad130258c7706a61f7b7cccbfa49bce69b9931f7e30cf12b382cd9a0a4749
…ng bitcoin-qt 00db418 Add aarch64 qt depends support for cross compiling bitcoin-qt (TheCharlatan) Pull request description: This also adds a generic qt linux target in packages.mk . I am a bit confused by the existing docs for the RISC addition. Are there boards that would support running bitcoin-qt, or at the very least forwarding X over ssh? Is everybody building depends with `NO_QT=1` when targeting RISC? If not, I will revert the change for a generic qt linux package definition back to the piecemeal solution. This pull request should close bitcoin#13495 Tree-SHA512: 519b951bf50f214ad725e5330094582a212333cd85b0ae442c67f9afec5629995dfad130258c7706a61f7b7cccbfa49bce69b9931f7e30cf12b382cd9a0a4749
…ng bitcoin-qt 00db418 Add aarch64 qt depends support for cross compiling bitcoin-qt (TheCharlatan) Pull request description: This also adds a generic qt linux target in packages.mk . I am a bit confused by the existing docs for the RISC addition. Are there boards that would support running bitcoin-qt, or at the very least forwarding X over ssh? Is everybody building depends with `NO_QT=1` when targeting RISC? If not, I will revert the change for a generic qt linux package definition back to the piecemeal solution. This pull request should close bitcoin#13495 Tree-SHA512: 519b951bf50f214ad725e5330094582a212333cd85b0ae442c67f9afec5629995dfad130258c7706a61f7b7cccbfa49bce69b9931f7e30cf12b382cd9a0a4749
…ng bitcoin-qt 00db418 Add aarch64 qt depends support for cross compiling bitcoin-qt (TheCharlatan) Pull request description: This also adds a generic qt linux target in packages.mk . I am a bit confused by the existing docs for the RISC addition. Are there boards that would support running bitcoin-qt, or at the very least forwarding X over ssh? Is everybody building depends with `NO_QT=1` when targeting RISC? If not, I will revert the change for a generic qt linux package definition back to the piecemeal solution. This pull request should close bitcoin#13495 Tree-SHA512: 519b951bf50f214ad725e5330094582a212333cd85b0ae442c67f9afec5629995dfad130258c7706a61f7b7cccbfa49bce69b9931f7e30cf12b382cd9a0a4749
…ng bitcoin-qt 00db418 Add aarch64 qt depends support for cross compiling bitcoin-qt (TheCharlatan) Pull request description: This also adds a generic qt linux target in packages.mk . I am a bit confused by the existing docs for the RISC addition. Are there boards that would support running bitcoin-qt, or at the very least forwarding X over ssh? Is everybody building depends with `NO_QT=1` when targeting RISC? If not, I will revert the change for a generic qt linux package definition back to the piecemeal solution. This pull request should close bitcoin#13495 Tree-SHA512: 519b951bf50f214ad725e5330094582a212333cd85b0ae442c67f9afec5629995dfad130258c7706a61f7b7cccbfa49bce69b9931f7e30cf12b382cd9a0a4749
This also adds a generic qt linux target in packages.mk . I am a bit confused by the existing docs for the RISC addition. Are there boards that would support running bitcoin-qt, or at the very least forwarding X over ssh? Is everybody building depends with
NO_QT=1
when targeting RISC? If not, I will revert the change for a generic qt linux package definition back to the piecemeal solution.This pull request should close #13495