RFR: JDK-8231572 Use -lobjc instead of -fobjc-link-runtime in libosxsecurity

Magnus Ihse Bursie magnus.ihse.bursie at oracle.com
Tue Apr 14 10:31:50 UTC 2020


When building with some versions of the macOS SDK, you can get errors 
like this:

Undefined symbols for architecture x86_64:
??"_objc_loadClassref", referenced from:
??????__ARCLite__load() in libarclite_macosx.a(arclite.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see 
invocation)
make[3]: *** 
[/Users/dnsimon/jdk-jdk/build/macosx-x86_64-server-release/support/modules_libs/java.base/libosxsecurity.dylib] 
Error 1
make[3]: *** Waiting for unfinished jobs....
make[2]: *** [java.base-libs] Error 2

This is due to the use of -fobjc-link-runtime in libosxsecurity. It 
turns out that what was really needed was to link to the objc library. 
This patch does this instead. It has been shown to work under a variety 
of macOS versions.

Bug: https://bugs.openjdk.java.net/browse/JDK-8231572
WebRev: 
http://cr.openjdk.java.net/~ihse/JDK-8231572-use-lobjc-in-libosxsecurity/webrev.01

/Magnus



More information about the build-dev mailing list