Linux dmd has a core.runtime.Runtime.loadLibrary linkage problem

Rambutan s56l6zk0w at mozmail.com
Sat Oct 10 14:52:26 UTC 2026


I've been using a D to dynamically load a dynamic library itself 
also written in D as a part of a much bigger project on Linux.

I've been using gdc where the difficulties I am about to describe 
do not exist.
gdc D version 2.108
gdc (GCC) 14.2.1 20250405

I used the functions in core.sys.posix.dlfcn with the exception 
that I am using core.runtime.Runtime.loadLibrary instead of 
core.sys.posix.dlfcn.dlopen and I am using 
core.runtime.Runtime.unloadLibrary instead of 
core.sys.posix.dlfcn.dlclose because the D runtime in the dynamic 
library needs to be integrated with that of the loading program 
on load and separated and shut down on unload.

https://dlang.org/phobos/core_runtime.html#.Runtime.loadLibrary

When I try to compile the same source using dmd, I get a linkage 
problem. What do I need to do to bring these functions in?
```
/usr/bin/ld: dyload.o: in function 
`core.runtime.Runtime.loadLibrary!().loadLibrary(scope 
const(char[]))':
main.d:(.text._D4core7runtime7Runtime__T11loadLibraryZQoFMxAaZPv[_D4core7runtime7Runtime__T11loadLibraryZQoFMxAaZPv]+0x96): undefined reference to `rt_loadLibrary'
/usr/bin/ld: dyload.o: in function 
`core.runtime.Runtime.unloadLibrary!().unloadLibrary(void*)':
main.d:(.text._D4core7runtime7Runtime__T13unloadLibraryZQqFPvZb[_D4core7runtime7Runtime__T13unloadLibraryZQqFPvZb]+0x5): undefined reference to `rt_unloadLibrary'
collect2: error: ld returned 1 exit status
Error: linker exited with status 1
```






More information about the Digitalmars-d-learn mailing list