Skip to content

Commit f8b9234

Browse files
Enabling dynamic linking on Linux
1 parent b3f5894 commit f8b9234

File tree

2 files changed

+8
-2
lines changed

2 files changed

+8
-2
lines changed

build.sbt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4249,7 +4249,7 @@ lazy val `os-environment` =
42494249
val targetDir = (Test / target).value
42504250
NativeImage.buildNativeImage(
42514251
"test-os-env",
4252-
staticOnLinux = true,
4252+
staticOnLinux = false,
42534253
targetDir = targetDir,
42544254
mainClass = Some("org.enso.os.environment.TestRunner"),
42554255
additionalOptions = Seq(

lib/java/os-environment/src/main/java/org/enso/os/environment/jni/PosixJVM.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,10 @@ static JVM createImpl(String javaHome) {
4040
var createJvm = CTypeConversion.toCString("JNI_CreateJavaVM")) {
4141
var jvmSo = dlopen(libPath.get(), RTLD_NOW());
4242
assert jvmSo.isNonNull()
43-
: "Cannot load dynamic library " + libJvmPath + " raw: " + jvmSo.rawValue();
43+
: "Cannot load dynamic library "
44+
+ libJvmPath
45+
+ " error: "
46+
+ CTypeConversion.toJavaString(dlerror());
4447
JNIBoot.JNICreateJavaVMPointer createJvmFn = dlsym(jvmSo, createJvm.get());
4548
int res = createJvmFn.call(jvmPtr, envPtr, jvmArgs);
4649
assert res == 0;
@@ -65,6 +68,9 @@ private static File findDynamicLibrary(String javaHome) {
6568
@CFunction(transition = CFunction.Transition.NO_TRANSITION)
6669
static native <T extends PointerBase> T dlsym(PointerBase handle, CCharPointer name);
6770

71+
@CFunction
72+
static native CCharPointer dlerror();
73+
6874
static final class Direct implements CContext.Directives {
6975

7076
@Override

0 commit comments

Comments
 (0)