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=


_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to