Skip to content

[embedding] MonoVM SONAME doesn't match file name in runtime packs #49661

@lambdageek

Description

@lambdageek

We compile mono as libmonosgen-2.0.so and then rename it to libcoreclr.so in the runtime pack (microsoft.netcore.app.runtime.mono.linux-x64/6.0.0-preview.2.21154.6/runtimes/linux-x64/native/libcoreclr.so).

This means we end up in a situation where linking with "-lcoreclr" works ok:

$ clang -std=c99 -g -o ../../out/native/main main.c -DCORELIB_FULL_PATH=\"/home/parallels/work/monovm-embed-sample/out/native/System.Private.CoreLib.dll\" -L/home/parallels/.nuget/packages/microsoft.netcore.app.runtime.mono.linux-x64/6.0.0-preview.2.21154.6/runtimes/linux-x64/native -lcoreclr -I../../out/native/generated -I../../vendor/mono-headers/include/mono-2.0

but at runtime we get:

$ make run
out/native/main: error while loading shared libraries: libmonosgen-2.0.so: cannot open shared object file: No such file or directory
$ ldd out/native/main 
	linux-vdso.so.1 (0x00007ffd891fc000)
	libmonosgen-2.0.so => not found
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fb250845000)
	/lib64/ld-linux-x86-64.so.2 (0x00007fb250a4a000)

Even if we do #34202 (stop using "coreclr" for the monovm name), we should verify that the runtime has the correct SONAME set.

Part of #47763

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions