-
Notifications
You must be signed in to change notification settings - Fork 36.9k
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
[WIP] 64 bit iOS device support #12557
[WIP] 64 bit iOS device support #12557
Conversation
It seems I need to make some additional change...
Full log. |
@Sjors Are you still working on this? |
@fanquake waiting for hints. |
I think this PR alone makes little sense. IMO including the openssl change in #11720 seems after solving a real use case. |
See here for enough to get cross builds from Linux working: theuni@3907e52 I can confirm that I get valid aarch64/armv7 binaries using that. Though I have no idea if they work :) Native builds are more painful, as for cross builds we can assume sdk paths, versions, compilers, etc. I'll save those for a next step. |
How about change make command to
|
The last travis run for this pull request was 144 days ago and is thus outdated. To trigger a fresh travis build, this pull request should be closed and re-opened. |
@Sjors Are you still working on this? |
Rebased and incorporated
Note that if you use SDK_PATH and then change it, that won't take effect until you do a I'm ignoring UPNP for now, so the following command is what I'd like to see working:
Boost 1.64 seems to build 32 bit binaries, which iOs 11 doesn't like. I bumped it from 1.64 to 1.66, as suggested here. I can move that to a separate PR once everything works. For OpenSSL, the following SED command leads to a "sed: RE error: illegal byte sequence" error on macOS; I probably need to adjust the syntax.
BDB isn't happy, though I can avoid that by dropping wallet support (hopefully adding it in later).:
Once OpenSSL works, the next step would be:
Testing this on a real device would require building the rest of the application, so I agree with @jonasschnelli that this PR ultimately needs to be combined with whatever solves #11720. |
23c6309
to
925235c
Compare
As for cross-compilation from Ubuntu: The Gitian build instructions use an old version of Xcode. Nowadays it seems you need to use the App Store to download it. To extract the iOs SDK on macOS machine: tar -C /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/ -czf iPhoneOS.sdk.tar.gz iPhoneOS.sdk iPhoneOS11.4.sdk Then copy it to the Ubuntu machine and extract into
Unfortunately this fails for me with:
Maybe I did something wrong with copying the SDK? The directory |
Prepending Next problem, when running
That's used for Hopefully we don't need too many other workarounds in the code to handle iOs. I also need to figure out how to actually test this on a device. The simulator is also an issue, but can wait, since it needs x86 architecture while still using the iOs SDK. |
925235c
to
323148c
Compare
@@ -1,4 +1,4 @@ | |||
SDKs/ | |||
SDKs |
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.
This also works with a symlink.
Disabling those notify commands seems to be the only workaround needed, although it's hard to tell without running a real device. The latter is not that easy, because iOs doesn't allow launching arbitrary executables, which is the approach ABcore uses. I do get a flood of the following warnings:
|
9ed0767
to
3a24e1b
Compare
It's probably easiest to work with headers and compiled Although that's beyond the scope of this project, I'd like to try to get this to work so that we know if this PR actually works. A minimum PoC would just print IBD progress in a console. Given the following files:
What do I use for the corresponding header files? And is |
e4c6608
to
0ee9989
Compare
Co-authored-by: kozyilmaz <[email protected]>
0ee9989
to
b9d2930
Compare
Rebased, but it's not compiling for me anymore:
|
Needs rebase |
🐙 This pull request conflicts with the target branch and needs rebase. |
I'm declaring this up for grabs... |
I have a vague plan to use https://github.com/LNP-BP/bp-node (rust-bitcoin based), once it will be more complete, and embed it into C FFI to be called from iOS Swift. |
A lot of progress was made on the Android front. I keep looking back at this, i hope i can make time and try get the iOS effort on par with android. |
@BlockMechanic : Do you have any update at your side? |
2620e24 [depends] boost: update to 1.70 (Sjors Provoost) Pull request description: Version [1.70](https://www.boost.org/users/history/version_1_70_0.html) is most recent. Versions needed for: * 1.66: bitcoin#12557: fixes the single arm64 configuration ([06ee5b5](ruslo/hunter@06ee5b5)) ACKs for commit 2620e2: Tree-SHA512: 6e0174f1d92c2c24314c0689d4809e048914f8f42d17aa73799f5ee232169e0dd0ed71f5f973903c44c08309f2837c629c493f15e5c31ec6c7bd1daae5f3b25f
I missed when this was closed. Actually added "Up for grabs" label. |
With the introduction of sqlite, it may be worth while to push this. If i can get a moment i will try this again |
@BlockMechanic I couldn't even get the node to work without a wallet, so Sqlite wasn't the bottleneck. |
…VE_SYSTEM) 976b034 [build]: use #if HAVE_SYSTEM instead of defined(HAVE_SYSTEM) (Sjors Provoost) Pull request description: It seems that `AC_DEFINE([HAVE_SYSTEM], [HAVE_STD__SYSTEM || HAVE_WSYSTEM]` causes `HAVE_SYSTEM` to always be defined, so we need to use `#if HAVE_SYSTEM` instead of `#if defined(HAVE_SYSTEM)`. Followup for bitcoin#15457, can be tested with bitcoin#12557. ACKs for top commit: dongcarl: ACK bitcoin@976b034. promag: ACK 976b034. fanquake: ACK 976b034 Tree-SHA512: b8cdd04c2ec399fd15638aef5d75ea0886ec1572d3cf4fcea27c193e1e6390344315908262cad8981a9b0a905ab9520619ce2ffe9a717f4ee6bfa8b028ebbdc6 # Conflicts: # src/init.cpp
Just a thought, but what if you just opened the QT project on like MacOS, got QT5 to convert it to an XCode project and see if that will work? Just a thought, let me know if anyone has tested. |
Removing Up for grabs, because it's not clear anyone could take over this changeset. We already support building for |
This should make it possible to build for iPhone 8, iPhone X and other iOs devices with that or new chips.
Fixes #11720