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