ldc2 -static fails: error: cannot find -lphobos2-ldc or -ldruntime-ldc

Jonathan daemon512 at gmail.com
Wed Aug 12 11:34:34 UTC 2020


OS: Gentoo 64-bit Kernel: 5.4.48 DMD version: 2.090 LDC2 version: 
1.20.1 (DMD v2.090.1, LLVM 10.0.0)

I'm attempting to statically link some files that I made so that 
the binaries can be run without requiring phobos. If I try to 
compile with either dmd or ldc2, everything works properly, 
however when I compile with:

$ ldc2 -static -main filename

I get the following error:

/usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/../../../../x86_64-pc-linux-gnu/bin/ld.gold: error: cannot find -lphobos2-ldc
/usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/../../../../x86_64-pc-linux-gnu/bin/ld.gold: error: cannot find -ldruntime-ldc```

Along with many error: undefined reference to 'XYZ' that I 
believed are caused by the lack of phobos and druntime libraries 
being found.

I have tried running cc on its own specifying where my 
libphobos2-ldc-shared.so and libdruntime-ldc-shared.so files are, 
while specifying these files, with the same results:

$ /usr/bin/cc scans.o -static -o scans -fuse-ld=gold 
-L/usr/lib/ldc2/1.20/lib64 -libphobos2-ldc-shared.so 
-libdruntime-ldc-shared.so -Wl,--gc-sections -lrt -ldl -lpthread 
-lm -m64 -v

/usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/../../../../x86_64-pc-linux-gnu/bin/ld.gold: error: cannot find -libphobos2-ldc-shared.so
/usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/../../../../x86_64-pc-linux-gnu/bin/ld.gold: error: cannot find -libdruntime-ldc-shared.so

I have also tried updating LD_LIBRARY_PATHS in my ~/.bashrc (and 
sourcing it after the change), but this had no effect.

I can't seem to find anyone else who has had this or a similar 
issue, but I feel like it may have something to do with how 
gentoo deals with the different D compilers.

I have tried using both the eselect and layman directions, 
removing ldc2 to follow the directions for each method, with no 
effect. Something worrying is that the executable and library 
paths mentioned in the wiki 
(https://wiki.gentoo.org/wiki/Dlang#Executables_paths) do not 
exist on my system. I also couldn't find any ldc2 config files, 
nor did adding and editing ~/.ldc2 or ~/.config/ldc2 change 
anything.

Any ideas on what needs to happen to solve this issue?


More information about the digitalmars-d-ldc mailing list