Skip to content

[3.x] Update all to new toolchains, add Linux arm64 and arm32 builds #93

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

Merged
merged 1 commit into from
Jan 18, 2024

Conversation

akien-mga
Copy link
Member

@akien-mga akien-mga commented Jan 17, 2024

Backport of #89 and #90, in sync with godotengine/build-containers#135.

In the 3.x branch, the situation with arch and bits is very brittle, so we only add the explicit arch argument for the arm32/arm64 builds. x86_32 still relies on bits=32.

This would all be worth refactoring upstream like we did for 4.0, but it's a major undertaking and breaking change, which I'd prefer to avoid in 3.6.

For Linux builds, we move the strip calls to the link stage, as this
needs to be done with the arch-appropriate strip binary, so it's easier
done there. In master, we now let the compiler strip automatically
during the build if no debug symbols are requested, but this change
wasn't backported to 3.x.


Tested successfully for almost all platforms, I'm just battling some final issues with Linux arm32 (godotengine/godot#87258, and it looks like our buildroot will need to change its config to enable NEON intrinsics).

This is meant to be used with 3.x-f39-mono-6.12.0.198 containers built from godotengine/build-containers#135.

@akien-mga akien-mga changed the title Update all to new toolchains, add Linux arm64 and arm32 builds [3.x] Update all to new toolchains, add Linux arm64 and arm32 builds Jan 17, 2024
@GodotBuilder GodotBuilder force-pushed the 3.x-update-f39-linux-arm64 branch 2 times, most recently from 9defea8 to c115b74 Compare January 17, 2024 17:26
Backport of #89 and #90, in sync with godotengine/build-containers#135.

In the 3.x branch, the situation with `arch` and `bits` is very brittle,
so we only add the explicit `arch` argument for the arm32/arm64 builds.
x86_32 still relies on `bits=32`.

This would all be worth refactoring upstream like we did for 4.0, but
it's a major undertaking and breaking change, which I'd prefer to avoid
in 3.6.

For Linux builds, we move the `strip` calls to the link stage, as this
needs to be done with the arch-appropriate `strip` binary, so it's easier
done there. In `master`, we now let the compiler strip automatically
during the build if no debug symbols are requested, but this change
wasn't backported to 3.x.
@akien-mga
Copy link
Member Author

Tested successfully.

@GodotBuilder GodotBuilder force-pushed the 3.x-update-f39-linux-arm64 branch from c115b74 to 0d2fbef Compare January 18, 2024 09:41
@akien-mga akien-mga merged commit 9f297b5 into 3.x Jan 18, 2024
@akien-mga akien-mga deleted the 3.x-update-f39-linux-arm64 branch January 18, 2024 09:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant