Support for macOS 10.14 (Mojave)
See original GitHub issueRunning Arc on macOS 10.14 (Mojave) broke recently. The issue seems to stem from a recently released precompiled libsdl-arc64.dylib
.
dyld: lazy symbol binding failed: Symbol not found: _objc_opt_respondsToSelector
Referenced from: /private/var/folders/zj/c21l3h8d5w57rhq_tvvvjj400000gn/T/arc/fcc6f76/libsdl-arc64.dylib
Expected in: /usr/lib/libobjc.A.dylib
dyld: Symbol not found: _objc_opt_respondsToSelector
Referenced from: /private/var/folders/zj/c21l3h8d5w57rhq_tvvvjj400000gn/T/arc/fcc6f76/libsdl-arc64.dylib
Expected in: /usr/lib/libobjc.A.dylib
Abort trap: 6
Other open source projects have reported this error on macOS 10.14 when the build targets macOS 10.15.
Could libsdl-arc64.dylib
(and potentially other prebuilt library files) be rebuilt with support for macOS 10.14?
Discovered when running Mindustry; v129.1 works, issue starting at v129.2, still exists in v131. Verified using Steam v7-testing
v131, mindustry-macos-unstable.zip
v131, Mindustry.jar
from github releases v129.1-v131, and local builds.
# Tested on macOS 10.14.
git bisect start v129.2 v129.1
git bisect run sh -c 'git clean -fdx :/ && ./gradlew desktop:dist && java -XstartOnFirstThread -jar desktop/build/libs/Mindustry.jar || exit 1'
The specific commit introducing the issue in Mindustry seems to be https://github.com/Anuken/Mindustry/commit/d855840fe2fd35a04669d988f4648198168814c2 (updating archash
) referencing https://github.com/Anuken/Mindustry/issues/5672 (proposes changes in window handling).
The archash
change points to the issue stemming from this repository.
- https://github.com/Anuken/Arc/commit/0923799dd6adf2626b72cc30fc880425ea7eb3e0 Mindustry works
- https://github.com/Anuken/Arc/commit/52207f875040f4969c1e2082e833afe403d28455 Changes window handling
- https://github.com/Anuken/Arc/commit/88c1a9afe2f5be4dd06e47ac8afe070247b3da29 Mindustry breaks, has new
libsdl-arc64.dylib
Issue Analytics
- State:
- Created 2 years ago
- Comments:6 (3 by maintainers)
Top GitHub Comments
I had someone test it on a 10.13 machine, and it appears to work - looks like an issue specific to compilation on Catalina and above. I’ll use the dylib from your branch, thanks.
Github Actions doesn’t support anything below Catalina as far as I’m aware, and I don’t know what other services to use.
Sure!
With the rebuilt
backends/backend-sdl/libs/macosx64/libsdl-arc64.dylib
library files in../Arc
, the latest Mindustry commit onmaster
(https://github.com/Anuken/Mindustry/commit/47dc9c7b313a9ea43b332d0dceca1a65343ec9c7) works! =)Unsure if the output is useful for non-10.14 users but feel free to cherry-pick the commit, or ask and I’ll create a pull-request with the same.
Seems like something which might be possible to automate on a cloud build farm with macOS support, right?
Outdated arm64 build details
Seems @Anuken performed the same (effective) change in
backends/backend-sdl/build.gradle
at the same time; rebased on top of the currentmaster
. Ignore the below, only kept for possible arm64 build issue reference.Build failed for arm64 with
#error architecture not supported
(full output below). Excluding arm64 from the build by removing-arch arm64
worked, although that deleted the built library file too.Have some (presumably outdated) build tools on this old macbook, but arm64 supports seems to require something newer. Reinstalling/updating Apple’s Command Line Tools didn’t bring arm64 support, and the latest XCode in the App Store says 10.14 isn’t supported.
./gradlew backends:backend-sdl:jnigenBuild with arm64