-
-
Notifications
You must be signed in to change notification settings - Fork 72
[3.x] Update to Fedora 39, newer toolchains, add Linux arm64 #135
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
Conversation
Syncs with the config of the current `main` branch (as used for 4.2+) as far as possible (backports the last couple of years of PRs, minus the removal of some platforms and of the Mono builds). Notably backports #128 and #131, giving us these toolchains: - Base image: Fedora 39 - Mono version: 6.12.0.198 - SCons: 4.5.2 - Linux: GCC 13.2.0 built against glibc 2.28, binutils 2.40, from our own [Linux SDK](https://github.com/godotengine/buildroot) - Windows: MinGW 11.0.0, GCC 13.2.1, binutils 2.40 - HTML5: Emscripten 3.1.39 (standard builds), Emscripten 1.39.9 (Mono builds) - Android: Android NDK 23.2.8568313, build-tools 33.0.2, platform android-33, CMake 3.22.1, JDK 11 - macOS: Xcode 15.0 with Apple Clang (LLVM 16.0.0), MacOSX SDK 14.0 - iOS: Xcode 15.0 with Apple Clang (LLVM 16.0.0), iPhoneOS SDK 17.0 - UWP: Unchanged, current Dockerfile still unsupported
For the record, there are some newer versions of some of the toolchains listed above. This PR syncs with #128 which was mostly up-to-date as of Sep 2023, and since we've tested those versions well by now, I'm using the same for As for Mono, 6.12.0.198 is the last version we built on https://github.com/godotengine/godot-mono-builds/releases/tag/release-4912f62 so I just reused that. |
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 build 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 during the build with `-s`, but this change wasn't backported to 3.x.
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.
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.
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.
Syncs with the config of the current
main
branch (as used for 4.2+) as far as possible (backports the last couple of years of PRs, minus the removal of some platforms and of the Mono builds).Notably backports #128 and #131, giving us these toolchains: