https://bugs.exim.org/show_bug.cgi?id=2577

--- Comment #5 from Fabian Groffen <[email protected]> ---
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.
-- 
## List details at https://lists.exim.org/mailman/listinfo/exim-dev Exim 
details at http://www.exim.org/ ##

Reply via email to