multiple definition of symbols" when linking executables on ARM32 and AArch64
Matthias Klose
doko@ubuntu.com
Mon Jan 6 09:52:00 GMT 2020
In an archive test rebuild with binutils and GCC trunk, I see a lot of build
failures on both aarch64-linux-gnu and arm-linux-gnueabihf failing with
"multiple definition of symbols" when linking executables, e.g.
https://launchpadlibrarian.net/459351186/buildlog_ubuntu-focal-armhf.tftp-hpa_5.2+20150808-1ubuntu4_BUILDING.txt.gz
arm-linux-gnueabihf-gcc tftp.o main.o ../common/libcommon.a
/<<BUILDDIR>>/tftp-hpa-5.2+20150808/lib/libxtra.a -o tftp
/usr/bin/ld: main.o:/<<BUILDDIR>>/tftp-hpa-5.2+20150808/tftp/main.c:98: multiple
definition of `toplevel';
tftp.o:/<<BUILDDIR>>/tftp-hpa-5.2+20150808/tftp/tftp.c:51: first defined here
collect2: error: ld returned 1 exit status
make[2]: *** [Makefile:12: tftp] Error 1
https://launchpadlibrarian.net/459253363/buildlog_ubuntu-focal-arm64.bsd-mailx_8.1.2-0.20180807cvs-1_BUILDING.txt.gz
gcc -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -o mail version.o aux.o
cmd1.o cmd2.o cmd3.o cmdtab.o collect.o edit.o fio.o getname.o head.o v7.local.o
lex.o list.o main.o names.o popen.o quit.o send.o strings.o temp.o tty.o vars.o
-llockfile -lbsd
/usr/bin/ld: cmd1.o:./glob.h:77: multiple definition of `screenheight';
aux.o:./glob.h:77: first defined here
/usr/bin/ld: cmd1.o:./glob.h:66: multiple definition of `message';
aux.o:./glob.h:66: first defined here
/usr/bin/ld: cmd1.o:./glob.h:65: multiple definition of `dot';
aux.o:./glob.h:65: first defined here
/usr/bin/ld: cmd1.o:./glob.h:57: multiple definition of `myname';
aux.o:./glob.h:57: first defined here
/usr/bin/ld: cmd1.o:./glob.h:74: multiple definition of `altnames';
aux.o:./glob.h:74: first defined here
The compiler defaults to the usual hardening settings, PIE, stack-protector,
stack-collision, etc. The failures are not seen on x86, powerpc64le, s390x.
Matthias
More information about the Binutils
mailing list