-
Notifications
You must be signed in to change notification settings - Fork 3
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
Reuse the original build, or fix this one for arm64 compatibility #55
Comments
The entire point of this project is to not reuse the build of the https://github.com/TheInfiniteKind/appbundler project. The https://github.com/TheInfiniteKind/appbundler project uses Ant exec tasks to directly execute the C compiler and Linker. The Raison d'être for this project is to use Maven as the build toolchain instead of Ant.
This may be possible, and someone previously sent a PR to try and do this here #54 If you could test their PR for me and report back if it works or not... if it does work then I would be happy to merge the PR, and then and make a release of this and also https://github.com/evolvedbinary/appbundler-maven-plugin for you. |
Oh, I see.
The PR tries to mimick the changes in https://github.com/TheInfiniteKind/appbundler/pull/81/files that fixed it "upstream", so should work fine, yes. Besides that there is a typo of "opiton" vs. "option". Done on a GitHub Actions macOS runner: $ git clone https://github.com/evolvedbinary/appbundler-maven-build && \
cd appbundler-maven-build/ && \
mvn package -q && \
echo && \
echo vvvvvvvvvvvvvvv && \
echo "current state" && \
echo && \
lipo -detailed_info target/classes/com/oracle/appbundler/JavaAppLauncher && \
echo ^^^^^^^^^^^^^^^ && \
git fetch origin refs/pull/54/head && \
git switch --detach FETCH_HEAD && \
sed -i -e 's/opiton/option/g' pom.xml && \
mvn package -q && \
echo && \
echo vvvvvvvvvvvvvvv && \
echo "with PR #54" && \
echo && \
lipo -detailed_info target/classes/com/oracle/appbundler/JavaAppLauncher && \
echo ^^^^^^^^^^^^^^^
Cloning into 'appbundler-maven-build'...
remote: Enumerating objects: 288, done.
remote: Counting objects: 100% (97/97), done.
remote: Compressing objects: 100% (68/68), done.
remote: Total 288 (delta 75), reused 34 (delta 28), pack-reused 191
Receiving objects: 100% (288/288), 69.95 KiB | 1023.00 KiB/s, done.
Resolving deltas: 100% (164/164), done.
vvvvvvvvvvvvvvv
current state
input file target/classes/com/oracle/appbundler/JavaAppLauncher is not a fat file
Non-fat file: target/classes/com/oracle/appbundler/JavaAppLauncher is architecture: x86_64
^^^^^^^^^^^^^^^
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 3 (delta 2), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), 790 bytes | 263.00 KiB/s, done.
From https://github.com/evolvedbinary/appbundler-maven-build
* branch refs/pull/54/head -> FETCH_HEAD
HEAD is now at 52e64bd Build universal native library
vvvvvvvvvvvvvvv
with PR #54
Fat header in: target/classes/com/oracle/appbundler/JavaAppLauncher
fat_magic 0xcafebabe
nfat_arch 2
architecture x86_64
cputype CPU_TYPE_X86_64
cpusubtype CPU_SUBTYPE_X86_64_ALL
capabilities 0x0
offset 16384
size 53608
align 2^14 (16384)
architecture arm64
cputype CPU_TYPE_ARM64
cpusubtype CPU_SUBTYPE_ARM64_ALL
capabilities 0x0
offset 81920
size 75063
align 2^14 (16384)
^^^^^^^^^^^^^^^ |
@Vampire thanks for the detailed output, but can you summarise it for me please? Does it fix your issue? |
Yes, it makes the binary multi-arch like in the "upstream" build. 👍 |
If the typo(s) in the PR is fixed, that is |
The project here does not reuse the build of the actual project, but only copies over the files and does its own build with completely different settings.
This leads to the problem that TheInfiniteKind/appbundler#75 is already fixed over there, but when you use the version published to Maven Central, you still get an x86_64 only binary, as it was a build-side fix that then is missing here.
I'm not really into native code, so I'm not going to send a PR for this one, but it would be great if you could either reuse the build from the actual project or at least fix the build here to also produce a multi-arch binary that is arm64 compatible.
The text was updated successfully, but these errors were encountered: