svn commit: r346576 - head/share/mk
Enji Cooper
ngie at FreeBSD.org
Mon Apr 22 18:40:48 UTC 2019
Author: ngie
Date: Mon Apr 22 18:40:46 2019
New Revision: 346576
URL: https://svnweb.freebsd.org/changeset/base/346576
Log:
Fix up CXXSTD support originally added in r345708
r345708 worked for the base system, but unfortunately, caused a lot of
disruption for third-party packages that relied on C++, since bsd.sys.mk is
used by applications outside the base system. The defaults picked didn't match
the compiler's defaults and broke some builds that didn't specify a standard,
as well as some that overrode the value by setting `-std=gnu++14` (for
example) manually.
This change takes a more relaxed approach to appending `-std=${CXXSTD}` to
CXXFLAGS, by only doing so when the value is specified, as opposed to
overriding the standard set by an end-user. This avoids the need for having
to bake NOP default into bsd.sys.mk for supported compiler-toolchain
versions.
In order to make this change possible, add CXXSTD to Makefile snippets which
relied on the default value (c++11) added in r345708.
MFC after: 2 weeks
MFC with: r345708, r346574
Reviewed by: emaste
Reported by: jbeich
Differential Revision: https://reviews.freebsd.org/D19895 (as part of a larger change)
Modified:
head/share/mk/bsd.sys.mk
head/share/mk/googletest.test.inc.mk
Modified: head/share/mk/bsd.sys.mk
==============================================================================
--- head/share/mk/bsd.sys.mk Mon Apr 22 18:40:24 2019 (r346575)
+++ head/share/mk/bsd.sys.mk Mon Apr 22 18:40:46 2019 (r346576)
@@ -25,17 +25,9 @@ CFLAGS+= -std=iso9899:1999
CFLAGS+= -std=${CSTD}
.endif # CSTD
-.if ${COMPILER_FEATURES:Mc++11}
-CXXSTD?= c++11
-.elif ${COMPILER_TYPE} == "gcc"
-# Prior versions of g++ support C++98 with GNU extensions by default.
-CXXSTD?= gnu++98
-.else
-# Assume that the compiler supports at least C++98.
-CXXSTD?= c++98
-.endif
+.if !empty(CXXSTD)
CXXFLAGS+= -std=${CXXSTD}
-# CXXSTD
+.endif
# -pedantic is problematic because it also imposes namespace restrictions
#CFLAGS+= -pedantic
Modified: head/share/mk/googletest.test.inc.mk
==============================================================================
--- head/share/mk/googletest.test.inc.mk Mon Apr 22 18:40:24 2019 (r346575)
+++ head/share/mk/googletest.test.inc.mk Mon Apr 22 18:40:46 2019 (r346576)
@@ -9,4 +9,6 @@ GTESTS_CXXFLAGS+= -frtti
# libgmock's, etc, headers.
CXXFLAGS+= -I${DESTDIR}${INCLUDEDIR}/private
+CXXSTD?= c++11
+
NO_WTHREAD_SAFETY=
More information about the svn-src-all
mailing list