From 1109b774513f471d3b62ea220243c8e14d482f03 Mon Sep 17 00:00:00 2001 From: Enji Cooper Date: Mon, 22 Apr 2019 18:38:54 +0000 Subject: [PATCH] Rework CXXSTD setting via r345708 This change allows the user to once again override the C++ standard, restoring high-level pre-r345708 behavior. This also unbreaks building lib/ofed/libibnetdisc/Makefile with a non-C++11 capable compiler, e.g., g++ 4.2.1, as the library supported being built with older C++ standards. MFC after: 2 weeks MFC with: r345708 Reviewed by: emaste Reported by: jbeich Differential Revision: https://reviews.freebsd.org/D19895 (as part of a larger change) --- lib/libc++/Makefile | 2 +- lib/libc++experimental/Makefile | 2 +- lib/libc++fs/Makefile | 2 +- lib/libcxxrt/Makefile | 2 +- lib/libgcc_eh/Makefile.inc | 2 +- lib/ofed/libibnetdisc/Makefile | 3 +++ usr.bin/dtc/Makefile | 2 ++ 7 files changed, 10 insertions(+), 5 deletions(-) diff --git a/lib/libc++/Makefile b/lib/libc++/Makefile index d83c4f81c016..f8c8da4f2035 100644 --- a/lib/libc++/Makefile +++ b/lib/libc++/Makefile @@ -76,7 +76,7 @@ CFLAGS+= -nostdinc++ CFLAGS+= -nostdlib CFLAGS+= -D_LIBCPP_BUILDING_LIBRARY CFLAGS+= -DLIBCXXRT -CXXSTD= c++11 +CXXSTD?= c++11 LIBADD+= cxxrt INCSGROUPS= STD EXP EXT diff --git a/lib/libc++experimental/Makefile b/lib/libc++experimental/Makefile index 53c33018b535..b75f82a1259a 100644 --- a/lib/libc++experimental/Makefile +++ b/lib/libc++experimental/Makefile @@ -20,6 +20,6 @@ CXXFLAGS+= -nostdinc++ CXXFLAGS+= -nostdlib CXXFLAGS+= -D_LIBCPP_BUILDING_LIBRARY CXXFLAGS+= -DLIBCXXRT -CXXSTD= c++14 +CXXSTD?= c++14 .include diff --git a/lib/libc++fs/Makefile b/lib/libc++fs/Makefile index ede7d1687d4d..01105375a71b 100644 --- a/lib/libc++fs/Makefile +++ b/lib/libc++fs/Makefile @@ -22,6 +22,6 @@ CXXFLAGS+= -nostdinc++ CXXFLAGS+= -nostdlib CXXFLAGS+= -D_LIBCPP_BUILDING_LIBRARY CXXFLAGS+= -DLIBCXXRT -CXXSTD= c++14 +CXXSTD?= c++14 .include diff --git a/lib/libcxxrt/Makefile b/lib/libcxxrt/Makefile index 49d632650c35..b1c62e3255e2 100644 --- a/lib/libcxxrt/Makefile +++ b/lib/libcxxrt/Makefile @@ -22,7 +22,7 @@ SRCS+= libelftc_dem_gnu3.c\ WARNS= 0 CFLAGS+= -isystem ${SRCDIR} -nostdinc++ -CXXSTD= c++11 +CXXSTD?= c++11 VERSION_MAP= ${.CURDIR}/Version.map .include diff --git a/lib/libgcc_eh/Makefile.inc b/lib/libgcc_eh/Makefile.inc index 39cccec7e6d9..232f5d8d46fa 100644 --- a/lib/libgcc_eh/Makefile.inc +++ b/lib/libgcc_eh/Makefile.inc @@ -28,7 +28,7 @@ CXXFLAGS.${file}+= -fno-exceptions -funwind-tables CFLAGS+= -I${UNWINDINCDIR} -I${.CURDIR} -D_LIBUNWIND_IS_NATIVE_ONLY CXXFLAGS+= -fno-rtti -CXXSTD= c++11 +CXXSTD?= c++11 STATIC_CXXFLAGS+= -fvisibility=hidden -fPIC # Probably need to just move this earlier or use CXXFLAGS .if ${MK_DIRDEPS_BUILD} == "yes" diff --git a/lib/ofed/libibnetdisc/Makefile b/lib/ofed/libibnetdisc/Makefile index 08dbb8861407..0736ae93f12f 100644 --- a/lib/ofed/libibnetdisc/Makefile +++ b/lib/ofed/libibnetdisc/Makefile @@ -31,6 +31,9 @@ LIBADD= osmcomp ibmad ibumad CFLAGS+= -DHAVE_CONFIG_H=1 CFLAGS+= -I${_spath} CFLAGS+= -I${SYSROOT:U${DESTDIR}}/${INCLUDEDIR}/infiniband +.if ${COMPILER_FEATURES:Mc++11} +CXXSTD= c++11 +.endif VERSION_MAP= ${_spath}/libibnetdisc.map .include diff --git a/usr.bin/dtc/Makefile b/usr.bin/dtc/Makefile index 92769609d034..897b74e188de 100644 --- a/usr.bin/dtc/Makefile +++ b/usr.bin/dtc/Makefile @@ -8,6 +8,8 @@ WARNS?= 3 CXXFLAGS+= -fno-rtti -fno-exceptions +CXXSTD= c++11 + NO_SHARED?=NO .include