Trying to compile an empty main file:

$ cat main.d
void main() {}

$ gdc main.d
gdc: fatal error: -fuse-linker-plugin, but liblto_plugin.so not found
compilation terminated.

----
From http://forum.dlang.org/thread/uthyqncmcqbnvwqzc...@forum.dlang.org

$ gdc -fno-lto -fno-use-linker-plugin main.d
ld: -f may not be used without -shared

----
Trying again with shared

$ gdc -fno-lto -fno-use-linker-plugin -shared main.d
ld: cannot find crtbeginS.o: No such file or directory
ld: cannot find -lgcc

----
Trying again with link debug on:

$ gdc -fno-lto -fno-use-linker-plugin -shared -Xlinker --verbose main.d
...
attempt to open /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/libgcc_s.so failed attempt to open /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/libgcc_s.a failed attempt to open /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../lib/libgcc_s.so succeeded opened script file /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../lib/libgcc_s.so opened script file /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../lib/libgcc_s.so
attempt to open libgcc_s.so.1 failed
attempt to open /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/libgcc_s.so.1 failed attempt to open /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../lib/libgcc_s.so.1 succeeded libgcc_s.so.1 (/usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../lib/libgcc_s.so.1) attempt to open /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/libgcc.so failed attempt to open /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/libgcc.a failed attempt to open /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../lib/libgcc.so failed attempt to open /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../lib/libgcc.a failed
attempt to open /lib/../lib/libgcc.so failed
attempt to open /lib/../lib/libgcc.a failed
attempt to open /usr/lib/../lib/libgcc.so failed
attempt to open /usr/lib/../lib/libgcc.a failed
attempt to open /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/../../../libgcc.so failed attempt to open /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/../../../libgcc.a failed
attempt to open /usr/x86_64-pc-linux-gnu/lib64/libgcc.so failed
attempt to open /usr/x86_64-pc-linux-gnu/lib64/libgcc.a failed
attempt to open /usr/lib/libgcc.so failed
attempt to open /usr/lib/libgcc.a failed
attempt to open /usr/local/lib/libgcc.so failed
attempt to open /usr/local/lib/libgcc.a failed
attempt to open /usr/x86_64-pc-linux-gnu/lib/libgcc.so failed
attempt to open /usr/x86_64-pc-linux-gnu/lib/libgcc.a failed
ld: cannot find -lgcc

----
The installed version of gcc on my system is gcc version 6.3.1 20170306 (GCC)

$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-pc-linux-gnu/6.3.1/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /build/gcc/src/gcc/configure --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://bugs.archlinux.org/ --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++ --enable-shared --enable-threads=posix --enable-libmpx --with-system-zlib --with-isl --enable-__cxa_atexit --disable-libunwind-exceptions --enable-clocale=gnu --disable-libstdcxx-pch --disable-libssp --enable-gnu-unique-object --enable-linker-build-id --enable-lto --enable-plugin --enable-install-libiberty --with-linker-hash-style=gnu --enable-gnu-indirect-function --disable-multilib --disable-werror --enable-checking=release
Thread model: posix
gcc version 6.3.1 20170306 (GCC)

----
The LDC version is based on gcc 6.2.1

$ gdc -v
Using built-in specs.
COLLECT_GCC=gdc
Target: x86_64-pc-linux-gnu
Configured with: /build/gdc/src/gcc/configure --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://bugs.archlinux.org/ --enable-shared --enable-static --enable-threads=posix --enable-libmpx --with-system-zlib --with-isl --enable-__cxa_atexit --disable-libunwind-exceptions --enable-clocale=gnu --disable-libstdcxx-pch --disable-libssp --enable-gnu-unique-object --enable-linker-build-id --enable-lto --enable-plugin --enable-install-libiberty --with-linker-hash-style=gnu --enable-gnu-indirect-function --enable-default-pie --disable-multilib --disable-werror --enable-languages=d gdc_include_dir=/usr/include/dlang/gdc
Thread model: posix
gcc version 6.2.1 20160830 (GCC)

----
libgcc.{a|so} does not exist on my system but libgcc_s.{a|so} does.

$ find /usr -name "libgcc*"
find: ā€˜/usr/share/polkit-1/rules.d’: Permission denied
/usr/lib/gcc/x86_64-pc-linux-gnu/6.3.1/libgcc_eh.a
/usr/lib/gcc/x86_64-pc-linux-gnu/6.3.1/libgcc.a
/usr/lib/libgccpp.so.1.0.3
/usr/lib/libgccpp.so
/usr/lib/libgccpp.so.1
/usr/lib/libgcc_s.so
/usr/lib/libgcc_s.so.1
/usr/lib32/libgcc_s.so
/usr/lib32/libgcc_s.so.1

I can add a symbolic link to /usr/lib/gcc/x86_64-pc-linux-gnu/6.3.1/libgcc.a in /usr/lib but is this the right fix?

Guillaume

Reply via email to