[exim-dev] [Bug 2577] Exim fails to build/link using -fno-co…

Top Page
Delete this message
Reply to this message
Author: admin
Date:  
To: exim-dev
Subject: [exim-dev] [Bug 2577] Exim fails to build/link using -fno-common (GCC 10 default)
https://bugs.exim.org/show_bug.cgi?id=2577

--- Comment #5 from Fabian Groffen <grobian@???> ---
With GCC-9 I can reproduce this issue when using CFLAGS=-fno-common and
enabling EXPERIMENTAL_ARC


x86_64-pc-linux-gnu-gcc -fno-common -I/usr/include/db5.3 -o exim_dbmbuild
-Wl,-O1 -Wl,--as-needed -lssl -lcrypto exim_dbmbuild.o \
-lcrypt -lm -ldb-5.3 -rdynamic -ldl
/usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/../../../../x86_64-pc-linux-gnu/bin/ld:
macro-globals.o:(.bss+0x0): multiple definition of `arc_received';
macro_predef.o:(.bss+0x0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/../../../../x86_64-pc-linux-gnu/bin/ld:
macro-readconf.o:(.bss+0x0): multiple definition of `arc_received';
macro_predef.o:(.bss+0x0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/../../../../x86_64-pc-linux-gnu/bin/ld:
macro-route.o:(.bss+0x0): multiple definition of `arc_received';
macro_predef.o:(.bss+0x0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/../../../../x86_64-pc-linux-gnu/bin/ld:
macro-transport.o:(.bss+0x0): multiple definition of `arc_received';
macro_predef.o:(.bss+0x0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/../../../../x86_64-pc-linux-gnu/bin/ld:
macro-drtables.o:(.bss+0x0): multiple definition of `arc_received';
macro_predef.o:(.bss+0x0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/../../../../x86_64-pc-linux-gnu/bin/ld:
macro-tls.o:(.bss+0x0): multiple definition of `arc_received';
macro_predef.o:(.bss+0x0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/../../../../x86_64-pc-linux-gnu/bin/ld:
macro-appendfile.o:(.bss+0x0): multiple definition of `arc_received';
macro_predef.o:(.bss+0x0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/../../../../x86_64-pc-linux-gnu/bin/ld:
macro-autoreply.o:(.bss+0x0): multiple definition of `arc_received';
macro_predef.o:(.bss+0x0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/../../../../x86_64-pc-linux-gnu/bin/ld:
macro-lmtp.o:(.bss+0x0): multiple definition of `arc_received';
macro_predef.o:(.bss+0x0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/../../../../x86_64-pc-linux-gnu/bin/ld:
macro-pipe.o:(.bss+0x0): multiple definition of `arc_received';
macro_predef.o:(.bss+0x0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/../../../../x86_64-pc-linux-gnu/bin/ld:
macro-queuefile.o:(.bss+0x0): multiple definition of `arc_received';
macro_predef.o:(.bss+0x0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/../../../../x86_64-pc-linux-gnu/bin/ld:
macro-smtp.o:(.bss+0x0): multiple definition of `arc_received';
macro_predef.o:(.bss+0x0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/../../../../x86_64-pc-linux-gnu/bin/ld:
macro-accept.o:(.bss+0x0): multiple definition of `arc_received';
macro_predef.o:(.bss+0x0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/../../../../x86_64-pc-linux-gnu/bin/ld:
macro-dnslookup.o:(.bss+0x0): multiple definition of `arc_received';
macro_predef.o:(.bss+0x0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/../../../../x86_64-pc-linux-gnu/bin/ld:
macro-ipliteral.o:(.bss+0x0): multiple definition of `arc_received';
macro_predef.o:(.bss+0x0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/../../../../x86_64-pc-linux-gnu/bin/ld:
macro-iplookup.o:(.bss+0x0): multiple definition of `arc_received';
macro_predef.o:(.bss+0x0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/../../../../x86_64-pc-linux-gnu/bin/ld:
macro-manualroute.o:(.bss+0x0): multiple definition of `arc_received';
macro_predef.o:(.bss+0x0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/../../../../x86_64-pc-linux-gnu/bin/ld:
macro-queryprogram.o:(.bss+0x0): multiple definition of `arc_received';
macro_predef.o:(.bss+0x0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/../../../../x86_64-pc-linux-gnu/bin/ld:
macro-redirect.o:(.bss+0x0): multiple definition of `arc_received';
macro_predef.o:(.bss+0x0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/../../../../x86_64-pc-linux-gnu/bin/ld:
macro-auth-spa.o:(.bss+0x0): multiple definition of `arc_received';
macro_predef.o:(.bss+0x0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/../../../../x86_64-pc-linux-gnu/bin/ld:
macro-cram_md5.o:(.bss+0x0): multiple definition of `arc_received';
macro_predef.o:(.bss+0x0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/../../../../x86_64-pc-linux-gnu/bin/ld:
macro-cyrus_sasl.o:(.bss+0x0): multiple definition of `arc_received';
macro_predef.o:(.bss+0x0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/../../../../x86_64-pc-linux-gnu/bin/ld:
macro-dovecot.o:(.bss+0x0): multiple definition of `arc_received';
macro_predef.o:(.bss+0x0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/../../../../x86_64-pc-linux-gnu/bin/ld:
macro-gsasl_exim.o:(.bss+0x0): multiple definition of `arc_received';
macro_predef.o:(.bss+0x0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/../../../../x86_64-pc-linux-gnu/bin/ld:
macro-heimdal_gssapi.o:(.bss+0x0): multiple definition of `arc_received';
macro_predef.o:(.bss+0x0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/../../../../x86_64-pc-linux-gnu/bin/ld:
macro-plaintext.o:(.bss+0x0): multiple definition of `arc_received';
macro_predef.o:(.bss+0x0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/../../../../x86_64-pc-linux-gnu/bin/ld:
macro-spa.o:(.bss+0x0): multiple definition of `arc_received';
macro_predef.o:(.bss+0x0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/../../../../x86_64-pc-linux-gnu/bin/ld:
macro-authtls.o:(.bss+0x0): multiple definition of `arc_received';
macro_predef.o:(.bss+0x0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/../../../../x86_64-pc-linux-gnu/bin/ld:
macro-external.o:(.bss+0x0): multiple definition of `arc_received';
macro_predef.o:(.bss+0x0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/../../../../x86_64-pc-linux-gnu/bin/ld:
macro-dkim.o:(.bss+0x0): multiple definition of `arc_received';
macro_predef.o:(.bss+0x0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/../../../../x86_64-pc-linux-gnu/bin/ld:
macro-malware.o:(.bss+0x0): multiple definition of `arc_received';
macro_predef.o:(.bss+0x0): first defined here
/usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/../../../../x86_64-pc-linux-gnu/bin/ld:
macro-signing.o:(.bss+0x0): multiple definition of `arc_received';
macro_predef.o:(.bss+0x0): first defined here
collect2: error: ld returned 1 exit status
make[1]: *** [Makefile:360: macro_predef] Error 1
make[1]: *** Waiting for unfinished jobs....
>>> exim_dbmbuild utility built



in globals.h I find this:

struct arc_set *arc_received;          /* highest ARC instance evaluation      
struct */


the rest of all there is properly declared with extern, and I think this one
was missed.

adding extern in front of this one makes the link succeed. Will attach patch
in a second.

--
You are receiving this mail because:
You are on the CC list for the bug.