This FTBFS is caused by a change in the default
behaviour of GCC from version 9 to version 10.
In version 10, if a global variable is defined in a
header file, and that header file is included by
several files, this results in multiple definitions
of the same variable, and a linker error will be
reported. In previous versions, this error is ignored.
See the "Porting to GCC 10" document
(https://gcc.gnu.org/gcc-10/porting_to.html) for
more details.

To go back to the previous behaviour, it is possible
to use the -fcommon GCC flag. The following patch
makes this change, and results in dieharder
successfully building with GCC 10.


diff --git a/debian/rules b/debian/rules
index da08eba..3080547 100755
--- a/debian/rules
+++ b/debian/rules
@@ -35,7 +35,10 @@ endif
 # edd 18 Nov 2006:  add -fexceptions, but don't use -O3 as
 #                   'make check' as gcc hangs in cblas/ after test_ger.c
 # edd 27 Dec 2015:  add dpkg-buildflags as well
-CFLAGS    :=-Wall -pipe -fexceptions -D_REENTRANT $(DEBUGFLAGS)
$(shell dpkg-buildflags --get CFLAGS)
+# shanemcd 24 Jul 2020: add -fcommon for gcc 10's change in default
+#                       behaviour related to multiple definitions
+#                       of global variables
+CFLAGS    :=-Wall -pipe -fexceptions -fcommon -D_REENTRANT
$(DEBUGFLAGS) $(shell dpkg-buildflags --get CFLAGS)
 # edd 29 Sep 2005   alpha needs -mieee with gcc 4.0
 ifeq ($(arch),alpha)
 CFLAGS += -mieee
-- 
2.20.1

Reply via email to