From 42fb28cef42e883d808c9efadd44016563248817 Mon Sep 17 00:00:00 2001 From: John Baldwin Date: Wed, 30 Nov 2022 14:56:19 -0800 Subject: [PATCH] Explicitly set CXXSTD to c++11 for old C++ code using std::auto_ptr<>. GCC 12 defaults to C++17 which removes (not just deprecates) std::auto_ptr<>. Trying to use CXXSTD of c++03 doesn't work with libc++ headers, but c++11 does. Reviewed by: brooks, imp, emaste Differential Revision: https://reviews.freebsd.org/D37531 --- lib/atf/Makefile.inc | 3 +++ lib/liblutok/Makefile | 1 + libexec/atf/atf-check/Makefile | 1 + usr.bin/kyua/Makefile | 1 + 4 files changed, 6 insertions(+) diff --git a/lib/atf/Makefile.inc b/lib/atf/Makefile.inc index 392bbb23b236..5904a859a15c 100644 --- a/lib/atf/Makefile.inc +++ b/lib/atf/Makefile.inc @@ -28,3 +28,6 @@ CFLAGS+= -DHAVE_CONFIG_H WARNS?= 3 + +# Permit use of auto_ptr for compilers defaulting to C++17 or later +CXXSTD= c++11 diff --git a/lib/liblutok/Makefile b/lib/liblutok/Makefile index dccbcaf773e4..0071d7b55070 100644 --- a/lib/liblutok/Makefile +++ b/lib/liblutok/Makefile @@ -22,5 +22,6 @@ SHLIB_MAJOR= 0 # lutok uses auto_ptr CFLAGS+= -Wno-deprecated-declarations +CXXSTD= c++11 .include diff --git a/libexec/atf/atf-check/Makefile b/libexec/atf/atf-check/Makefile index 6711d1744430..1a87a14f354d 100644 --- a/libexec/atf/atf-check/Makefile +++ b/libexec/atf/atf-check/Makefile @@ -41,6 +41,7 @@ CFLAGS+= -DATF_SHELL='"/bin/sh"' # Silence warnings about usage of deprecated std::auto_ptr CXXWARNFLAGS+= -Wno-deprecated-declarations +CXXSTD= c++11 LIBADD= atf_cxx diff --git a/usr.bin/kyua/Makefile b/usr.bin/kyua/Makefile index 966927709a06..e23899afd1e5 100644 --- a/usr.bin/kyua/Makefile +++ b/usr.bin/kyua/Makefile @@ -37,6 +37,7 @@ CFLAGS+= -I${SRCTOP}/contrib/lutok/include CFLAGS+= -I${SRCTOP}/contrib/sqlite3 # kyua uses auto_ptr CFLAGS+= -Wno-deprecated-declarations +CXXSTD= c++11 CFLAGS+= -DHAVE_CONFIG_H # We compile the kyua libraries as part of the main executable as this saves