From a0b266c31cad0a00537f36ceb08f64071c42a469 Mon Sep 17 00:00:00 2001 From: kevans Date: Fri, 10 Apr 2020 14:01:07 +0000 Subject: [PATCH] userland build: replace -fno-common with ${CFCOMMONFLAG} This change allows any downstream or otherwise consumer to easily override the new -fno-common default on a temporary basis without having to hack into src.sys.mk, and also makes it a bit easier to search for these specific cases where -fno-common must be overridden with -fcommon or else the build will fail. The gdb build, the only program requiring -fcommon on head/, is switched over as an example usage. It will need it on all branches, so this does not harm future mergability. MFC after: 3 days --- gnu/usr.bin/gdb/Makefile.inc | 2 +- share/mk/src.sys.mk | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/usr.bin/gdb/Makefile.inc b/gnu/usr.bin/gdb/Makefile.inc index 097975de3128..30d677726a00 100644 --- a/gnu/usr.bin/gdb/Makefile.inc +++ b/gnu/usr.bin/gdb/Makefile.inc @@ -50,7 +50,7 @@ CFLAGS+= -I${SYSROOT:U${DESTDIR}}/${INCLUDEDIR}/edit # Some bits here currently rely on some of the linker-merging magic that happens # with -fcommon. While this is the default right now, explicitly set -fcommon # so that it continues to build when the default flips. -CFLAGS+= -fcommon +CFCOMMONFLAG= -fcommon GENSRCS+= nm.h tm.h diff --git a/share/mk/src.sys.mk b/share/mk/src.sys.mk index addc115b8ab9..61c51f200d35 100644 --- a/share/mk/src.sys.mk +++ b/share/mk/src.sys.mk @@ -37,7 +37,8 @@ __postrcconf_${var}:= ${MK_${var}:U-}${WITHOUT_${var}:Uno:Dyes}${WITH_${var}:Uno # The following should be removed no earlier than LLVM11 being imported into the # tree, to ensure we don't regress the build. LLVM11 and GCC10 will switch the # default over to -fno-common, making this redundant. -CFLAGS+= -fno-common +CFCOMMONFLAG?= -fno-common +CFLAGS+= ${CFCOMMONFLAG} # tempting, but bsd.compiler.mk causes problems this early # probably need to remove dependence on bsd.own.mk