On Tue, 12 Oct 2021 15:04:02 GMT, Maurizio Cimadamore <[email protected]>
wrote:
> Is libc.a loadable on AIX (e.g. with System.loadLibrary) ?
I tried to load `libc.a` and `libc` this way but neither of them works on AIX.
e.g.
public class StdLibTest {
private static CLinker clinker = CLinker.getInstance();
static {
System.loadLibrary("libc.a"); <-----
}
private static final SymbolLookup defaultLibLookup =
SymbolLookup.loaderLookup();
public static void main(String args[]) throws Throwable {
Addressable strlenSymbol =
defaultLibLookup.lookup("strlen").get();
}
}
$ ./bin/java --enable-native-access=ALL-UNNAMED --add-modules
jdk.incubator.foreign
-Dforeign.restricted=permit --enable-native-access=ALL-UNNAMED StdLibTest
WARNING: Using incubator modules: jdk.incubator.foreign
Exception in thread "main" java.lang.UnsatisfiedLinkError: Can't load libc.a
<-------
at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:1822)
at java.base/java.lang.System.loadLibrary(System.java:694)
at StdLibTest.<clinit>(StdLibTest.java:23)
and
public class StdLibTest {
private static CLinker clinker = CLinker.getInstance();
static {
System.loadLibrary("libc"); <-------
}
private static final SymbolLookup defaultLibLookup =
SymbolLookup.loaderLookup();
public static void main(String args[]) throws Throwable {
Addressable strlenSymbol =
defaultLibLookup.lookup("strlen").get();
}
}
$ ./bin/java --enable-native-access=ALL-UNNAMED --add-modules
jdk.incubator.foreign
-Dforeign.restricted=permit --enable-native-access=ALL-UNNAMED StdLibTest
WARNING: Using incubator modules: jdk.incubator.foreign
Exception in thread "main" java.lang.UnsatisfiedLinkError: Can't load libc
<------
at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:1822)
at java.base/java.lang.System.loadLibrary(System.java:694)
at StdLibTest.<clinit>(StdLibTest.java:23)
-------------
PR: https://git.openjdk.java.net/jdk/pull/4316