git: ac4c695ad61e - main - Retire WITHOUT_CXX option

From: Ed Maste <emaste_at_FreeBSD.org>
Date: Fri, 27 Jan 2023 02:14:19 UTC
The branch main has been updated by emaste:

URL: https://cgit.FreeBSD.org/src/commit/?id=ac4c695ad61e81d00cff2a03202a4afe94a92513

commit ac4c695ad61e81d00cff2a03202a4afe94a92513
Author:     Ed Maste <emaste@FreeBSD.org>
AuthorDate: 2022-11-16 14:20:39 +0000
Commit:     Ed Maste <emaste@FreeBSD.org>
CommitDate: 2023-01-27 02:13:16 +0000

    Retire WITHOUT_CXX option
    
    Several important base system components are written in C++, and the
    WITHOUT_CXX option produced a system that was not fully functional.
    Just accept this, and remove the option to build without C++ support.
    
    This reverts commit adc3c128c6603054586a993d117e5dd808deac17.
    
    Reviewed by:    brooks, kevans, jhb (earlier)
    Sponsored by:   The FreeBSD Foundation
    Differential Revision:  https://reviews.freebsd.org/D33108
---
 Makefile.inc1                            |  15 +-
 UPDATING                                 |   4 +
 cddl/usr.sbin/Makefile                   |   3 +-
 lib/Makefile                             |  20 +-
 lib/atf/Makefile                         |   2 +-
 lib/libproc/Makefile                     |   8 +-
 sbin/Makefile                            |   2 +-
 share/man/man5/src.conf.5                |  38 +--
 share/mk/src.libnames.mk                 |   2 -
 share/mk/src.opts.mk                     |  18 -
 tools/build/mk/OptionalObsoleteFiles.inc | 554 -------------------------------
 tools/build/options/WITHOUT_CXX          |   4 -
 usr.bin/Makefile                         |   8 +-
 13 files changed, 22 insertions(+), 656 deletions(-)

diff --git a/Makefile.inc1 b/Makefile.inc1
index 6435cadbd45c..dac412559716 100644
--- a/Makefile.inc1
+++ b/Makefile.inc1
@@ -2922,18 +2922,14 @@ _prereq_libs+=	lib/libclang_rt/ubsan_standalone_cxx
 _startup_libs=	lib/csu
 _startup_libs+=	lib/libc
 _startup_libs+=	lib/libc_nonshared
-.if ${MK_CXX} != "no"
 _startup_libs+=	lib/libcxxrt
-.endif
 
 _prereq_libs+=	lib/libgcc_eh lib/libgcc_s
 _startup_libs+=	lib/libgcc_eh lib/libgcc_s
 
 lib/libgcc_s__L: lib/libc__L
 lib/libgcc_s__L: lib/libc_nonshared__L
-.if ${MK_CXX} != "no"
 lib/libcxxrt__L: lib/libgcc_s__L
-.endif
 
 _prebuild_libs=	${_kerberos5_lib_libasn1} \
 		${_kerberos5_lib_libhdb} \
@@ -2945,6 +2941,7 @@ _prebuild_libs=	${_kerberos5_lib_libasn1} \
 		${_kerberos5_lib_libroken} \
 		${_kerberos5_lib_libwind} \
 		lib/libbz2 ${_libcom_err} lib/libcrypt \
+		lib/libc++ \
 		lib/libelf lib/libexpat \
 		lib/libfigpar \
 		${_lib_libgssapi} \
@@ -2982,10 +2979,6 @@ gnu/lib/libdialog__L: lib/msun__L lib/ncurses/tinfo__L lib/ncurses/ncurses__L
 _prebuild_libs+= lib/libregex
 .endif
 
-.if ${MK_CXX} != "no"
-_prebuild_libs+= lib/libc++
-.endif
-
 lib/libgeom__L: lib/libexpat__L lib/libsbuf__L
 lib/libkvm__L: lib/libelf__L
 
@@ -3150,10 +3143,8 @@ lib/libradius__L: lib/libmd__L
 .endif
 
 lib/libproc__L: \
-    ${_cddl_lib_libctf:D${_cddl_lib_libctf}__L} lib/libelf__L lib/librtld_db__L lib/libutil__L
-.if ${MK_CXX} != "no"
-lib/libproc__L: lib/libcxxrt__L
-.endif
+    ${_cddl_lib_libctf:D${_cddl_lib_libctf}__L} \
+    lib/libelf__L lib/librtld_db__L lib/libutil__L lib/libcxxrt__L
 
 .for _lib in ${_prereq_libs}
 ${_lib}__PL: .PHONY .MAKE
diff --git a/UPDATING b/UPDATING
index e9d53811df8d..172c611ee9f0 100644
--- a/UPDATING
+++ b/UPDATING
@@ -27,6 +27,10 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 14.x IS SLOW:
 	world, or to merely disable the most expensive debugging functionality
 	at runtime, run "ln -s 'abort:false,junk:false' /etc/malloc.conf".)
 
+20230126:
+	The WITHOUT_CXX option has been removed. C++ components in the base
+	system are now built unconditionally.
+
 20230113:
 	LinuxKPI pci.h changes may require out-of-tree drivers to be recompiled.
 	Bump _FreeBSD_version to 1400078 to be able to detect this change.
diff --git a/cddl/usr.sbin/Makefile b/cddl/usr.sbin/Makefile
index 68dc735b3d1b..ef7878f41ade 100644
--- a/cddl/usr.sbin/Makefile
+++ b/cddl/usr.sbin/Makefile
@@ -12,8 +12,7 @@ SUBDIR.${MK_TESTS}+= tests
 
 SUBDIR.${MK_ZFS}+= \
 	zdb \
-	zhack
-SUBDIR.${MK_ZFS}.${MK_CXX}+= \
+	zhack \
 	zfsd
 
 .if ${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "i386"
diff --git a/lib/Makefile b/lib/Makefile
index 6b4b356707fe..8d4115d29602 100644
--- a/lib/Makefile
+++ b/lib/Makefile
@@ -15,8 +15,9 @@ SUBDIR_BOOTSTRAP= \
 	libc_nonshared \
 	libcompiler_rt \
 	${_libclang_rt} \
-	${_libcplusplus} \
-	${_libcxxrt} \
+	libc++ \
+	libc++experimental \
+	libcxxrt \
 	libelf \
 	libssp \
 	libssp_nonshared \
@@ -47,6 +48,7 @@ SUBDIR=	${SUBDIR_BOOTSTRAP} \
 	libcompat \
 	libcrypt \
 	libdevctl \
+	libdevdctl \
 	libdevinfo \
 	libdevstat \
 	libdl \
@@ -165,7 +167,6 @@ SUBDIR+=	clang
 .endif
 
 SUBDIR.${MK_CUSE}+= 	libcuse
-SUBDIR.${MK_CXX}+=	libdevdctl
 SUBDIR.${MK_TOOLCHAIN}+=libpe
 SUBDIR.${MK_DIALOG}+=	libdpv libfigpar
 SUBDIR.${MK_FILE}+=	libmagic
@@ -176,20 +177,13 @@ SUBDIR.${MK_KERBEROS_SUPPORT}+=	libcom_err
 SUBDIR.${MK_LDNS}+=	libldns
 SUBDIR.${MK_STATS}+=	libstats
 
-# The libraries under libclang_rt can only be built by clang and when we enable
-# C++ support.
-.if ${COMPILER_TYPE} == "clang" && ${MK_CXX} != "no"
+# The libraries under libclang_rt can only be built by clang.
+.if ${COMPILER_TYPE} == "clang"
 _libclang_rt=	libclang_rt
 .elif (${MK_ASAN} != "no" || ${MK_UBSAN} != "no") && make(all)
 .error Requested build with sanitizers but cannot build runtime libraries!
 .endif
 
-.if ${MK_CXX} != "no"
-_libcxxrt=	libcxxrt
-_libcplusplus=	libc++
-_libcplusplus+=	libc++experimental
-.endif
-
 SUBDIR.${MK_EFI}+=	libefivar
 SUBDIR.${MK_GOOGLETEST}+=	googletest
 SUBDIR.${MK_NETGRAPH}+=	libnetgraph
@@ -221,7 +215,7 @@ SUBDIR.${MK_RADIUS_SUPPORT}+=	libradius
 SUBDIR.${MK_SENDMAIL}+=	libmilter libsm libsmdb libsmutil
 SUBDIR.${MK_TELNET}+=	libtelnet
 SUBDIR.${MK_TESTS_SUPPORT}+=	atf
-SUBDIR.${MK_TESTS_SUPPORT}.${MK_CXX}+=	liblutok
+SUBDIR.${MK_TESTS_SUPPORT}+=	liblutok
 SUBDIR.${MK_TESTS}+=	tests
 SUBDIR.${MK_UNBOUND}+=	libunbound
 SUBDIR.${MK_USB}+=	libusbhid libusb
diff --git a/lib/atf/Makefile b/lib/atf/Makefile
index 05c7973fdc02..42f93f78a8aa 100644
--- a/lib/atf/Makefile
+++ b/lib/atf/Makefile
@@ -28,7 +28,7 @@
 .include <src.opts.mk>
 
 SUBDIR=			libatf-c
-SUBDIR.${MK_CXX}+=	libatf-c++
+SUBDIR+=		libatf-c++
 
 SUBDIR.${MK_TESTS}+= tests
 
diff --git a/lib/libproc/Makefile b/lib/libproc/Makefile
index 37d550cb22e3..54b3701fa3f1 100644
--- a/lib/libproc/Makefile
+++ b/lib/libproc/Makefile
@@ -15,13 +15,7 @@ INCS=	libproc.h
 
 CFLAGS+=	-I${.CURDIR}
 
-.if ${MK_CXX} == "no"
-CFLAGS+=	-DNO_CXA_DEMANGLE
-.else
-LIBADD+=		cxxrt
-.endif
-
-LIBADD+=	elf procstat rtld_db util z
+LIBADD+=	cxxrt elf procstat rtld_db util z
 
 .if ${MK_CDDL} != "no"
 LIBADD+=	ctf
diff --git a/sbin/Makefile b/sbin/Makefile
index 69cf51a83e26..69c5db1dba4b 100644
--- a/sbin/Makefile
+++ b/sbin/Makefile
@@ -9,6 +9,7 @@ SUBDIR=adjkerntz \
 	comcontrol \
 	conscontrol \
 	ddb \
+	devd \
 	devfs \
 	devmatch \
 	dhclient \
@@ -72,7 +73,6 @@ SUBDIR+=	ping
 .endif
 
 SUBDIR.${MK_CCD}+=	ccdconfig
-SUBDIR.${MK_CXX}+=	devd
 SUBDIR.${MK_HAST}+=	hastctl
 SUBDIR.${MK_HAST}+=	hastd
 SUBDIR.${MK_INET6}+=	rtsol
diff --git a/share/man/man5/src.conf.5 b/share/man/man5/src.conf.5
index 132a05065bd0..9b832b8b89f2 100644
--- a/share/man/man5/src.conf.5
+++ b/share/man/man5/src.conf.5
@@ -1,6 +1,6 @@
 .\" DO NOT EDIT-- this file is @generated by tools/build/options/makeman.
 .\" $FreeBSD$
-.Dd November 21, 2022
+.Dd January 26, 2023
 .Dt SRC.CONF 5
 .Os
 .Sh NAME
@@ -469,42 +469,6 @@ Build
 .Pp
 This is a default setting on
 amd64/amd64, arm64/aarch64, i386/i386, powerpc/powerpc64 and powerpc/powerpc64le.
-.It Va WITHOUT_CXX
-Do not build C++ headers and runtime libraries.
-It also prevents building binaries and libraries written in C++, including
-.Xr devd 8 .
-When set, it enforces these options:
-.Pp
-.Bl -item -compact
-.It
-.Va WITHOUT_CLANG
-.It
-.Va WITHOUT_CLANG_EXTRAS
-.It
-.Va WITHOUT_CLANG_FORMAT
-.It
-.Va WITHOUT_CLANG_FULL
-.It
-.Va WITHOUT_DTRACE_TESTS
-.It
-.Va WITHOUT_GOOGLETEST
-.It
-.Va WITHOUT_LLD
-.It
-.Va WITHOUT_LLDB
-.It
-.Va WITHOUT_LLVM_COV
-.It
-.Va WITHOUT_OFED
-.It
-.Va WITHOUT_OFED_EXTRA
-.It
-.Va WITHOUT_OPENMP
-.It
-.Va WITHOUT_PMC
-.It
-.Va WITHOUT_TESTS
-.El
 .It Va WITHOUT_DEBUG_FILES
 Avoid building or installing standalone debug files for each
 executable binary and shared library.
diff --git a/share/mk/src.libnames.mk b/share/mk/src.libnames.mk
index db7c86651f96..dd1bc78b1f1a 100644
--- a/share/mk/src.libnames.mk
+++ b/share/mk/src.libnames.mk
@@ -325,9 +325,7 @@ _DP_radius=	crypto
 .endif
 _DP_rtld_db=	elf procstat
 _DP_procstat=	kvm util elf
-.if ${MK_CXX} == "yes"
 _DP_proc=	cxxrt
-.endif
 .if ${MK_CDDL} != "no"
 _DP_proc+=	ctf
 .endif
diff --git a/share/mk/src.opts.mk b/share/mk/src.opts.mk
index de36d672d20e..397af027e8e7 100644
--- a/share/mk/src.opts.mk
+++ b/share/mk/src.opts.mk
@@ -86,7 +86,6 @@ __DEFAULT_YES_OPTIONS = \
     CROSS_COMPILER \
     CRYPT \
     CUSE \
-    CXX \
     CXGBETOOL \
     DIALOG \
     DICT \
@@ -349,11 +348,6 @@ __DEFAULT_YES_OPTIONS+=OPENMP
 __DEFAULT_NO_OPTIONS+=OPENMP
 .endif
 
-# libc++ requires C++20
-.if !${COMPILER_FEATURES:Mc++20}
-BROKEN_OPTIONS+=CXX
-.endif
-
 .include <bsd.mkopt.mk>
 
 #
@@ -383,18 +377,6 @@ MK_KERBEROS:=	no
 MK_KERBEROS_SUPPORT:=	no
 .endif
 
-.if ${MK_CXX} == "no"
-MK_CLANG:=	no
-MK_LLD:=	no
-MK_LLDB:=	no
-MK_LLVM_BINUTILS:= no
-MK_GOOGLETEST:=	no
-MK_OFED:=	no
-MK_OPENMP:=	no
-MK_PMC:=	no
-MK_TESTS:=	no
-.endif
-
 .if ${MK_DIALOG} == "no"
 MK_BSDINSTALL:=	no
 .endif
diff --git a/tools/build/mk/OptionalObsoleteFiles.inc b/tools/build/mk/OptionalObsoleteFiles.inc
index dacc89f9e78e..6e741dd06930 100644
--- a/tools/build/mk/OptionalObsoleteFiles.inc
+++ b/tools/build/mk/OptionalObsoleteFiles.inc
@@ -3719,560 +3719,6 @@ OLD_LIBS+=${DEBUG_LIB32_LIBS}
 .  endif
 .endif
 
-.if ${MK_CXX} == no
-OLD_LIBS+=lib/libcxxrt.so.1
-OLD_FILES+=usr/lib/libc++.a
-OLD_FILES+=usr/lib/libc++_p.a
-OLD_FILES+=usr/lib/libc++experimental.a
-OLD_FILES+=usr/lib/libc++.so
-OLD_LIBS+=usr/lib/libc++.so.1
-OLD_FILES+=usr/lib/libcxxrt.a
-OLD_FILES+=usr/lib/libcxxrt.so
-OLD_FILES+=usr/lib/libcxxrt_p.a
-OLD_FILES+=usr/include/c++/v1/__algorithm/adjacent_find.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/all_of.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/any_of.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/binary_search.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/clamp.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/comp.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/comp_ref_type.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/copy.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/copy_backward.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/copy_if.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/copy_n.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/count.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/count_if.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/equal.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/equal_range.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/fill.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/fill_n.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/find.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/find_end.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/find_first_of.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/find_if.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/find_if_not.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/for_each.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/for_each_n.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/generate.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/generate_n.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/half_positive.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/in_in_out_result.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/in_in_result.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/in_out_result.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/includes.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/inplace_merge.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/is_heap.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/is_heap_until.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/is_partitioned.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/is_permutation.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/is_sorted.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/is_sorted_until.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/iter_swap.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/lexicographical_compare.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/lower_bound.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/make_heap.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/max.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/max_element.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/merge.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/min.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/min_element.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/minmax.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/minmax_element.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/mismatch.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/move.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/move_backward.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/next_permutation.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/none_of.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/nth_element.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/partial_sort.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/partial_sort_copy.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/partition.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/partition_copy.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/partition_point.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/pop_heap.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/prev_permutation.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/push_heap.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/remove.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/remove_copy.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/remove_copy_if.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/remove_if.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/replace.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/replace_copy.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/replace_copy_if.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/replace_if.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/reverse.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/reverse_copy.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/rotate.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/rotate_copy.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/sample.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/search.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/search_n.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/set_difference.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/set_intersection.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/set_symmetric_difference.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/set_union.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/shift_left.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/shift_right.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/shuffle.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/sift_down.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/sort.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/sort_heap.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/stable_partition.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/stable_sort.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/swap_ranges.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/transform.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/unique.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/unique_copy.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/unwrap_iter.h
-OLD_FILES+=usr/include/c++/v1/__algorithm/upper_bound.h
-OLD_DIRS+=usr/include/c++/v1/__algorithm
-OLD_FILES+=usr/include/c++/v1/__availability
-OLD_FILES+=usr/include/c++/v1/__bit/bit_cast.h
-OLD_FILES+=usr/include/c++/v1/__bit/byteswap.h
-OLD_DIRS+=usr/include/c++/v1/__bit
-OLD_FILES+=usr/include/c++/v1/__bit_reference
-OLD_FILES+=usr/include/c++/v1/__bits
-OLD_FILES+=usr/include/c++/v1/__bsd_locale_defaults.h
-OLD_FILES+=usr/include/c++/v1/__bsd_locale_fallbacks.h
-OLD_FILES+=usr/include/c++/v1/__charconv/chars_format.h
-OLD_FILES+=usr/include/c++/v1/__charconv/from_chars_result.h
-OLD_FILES+=usr/include/c++/v1/__charconv/to_chars_result.h
-OLD_DIRS+=usr/include/c++/v1/__charconv
-OLD_FILES+=usr/include/c++/v1/__chrono/calendar.h
-OLD_FILES+=usr/include/c++/v1/__chrono/convert_to_timespec.h
-OLD_FILES+=usr/include/c++/v1/__chrono/duration.h
-OLD_FILES+=usr/include/c++/v1/__chrono/file_clock.h
-OLD_FILES+=usr/include/c++/v1/__chrono/high_resolution_clock.h
-OLD_FILES+=usr/include/c++/v1/__chrono/steady_clock.h
-OLD_FILES+=usr/include/c++/v1/__chrono/system_clock.h
-OLD_FILES+=usr/include/c++/v1/__chrono/time_point.h
-OLD_DIRS+=usr/include/c++/v1/__chrono
-OLD_FILES+=usr/include/c++/v1/__compare/common_comparison_category.h
-OLD_FILES+=usr/include/c++/v1/__compare/compare_partial_order_fallback.h
-OLD_FILES+=usr/include/c++/v1/__compare/compare_strong_order_fallback.h
-OLD_FILES+=usr/include/c++/v1/__compare/compare_three_way.h
-OLD_FILES+=usr/include/c++/v1/__compare/compare_three_way_result.h
-OLD_FILES+=usr/include/c++/v1/__compare/compare_weak_order_fallback.h
-OLD_FILES+=usr/include/c++/v1/__compare/is_eq.h
-OLD_FILES+=usr/include/c++/v1/__compare/ordering.h
-OLD_FILES+=usr/include/c++/v1/__compare/partial_order.h
-OLD_FILES+=usr/include/c++/v1/__compare/strong_order.h
-OLD_FILES+=usr/include/c++/v1/__compare/synth_three_way.h
-OLD_FILES+=usr/include/c++/v1/__compare/three_way_comparable.h
-OLD_FILES+=usr/include/c++/v1/__compare/weak_order.h
-OLD_DIRS+=usr/include/c++/v1/__compare
-OLD_FILES+=usr/include/c++/v1/__concepts/arithmetic.h
-OLD_FILES+=usr/include/c++/v1/__concepts/assignable.h
-OLD_FILES+=usr/include/c++/v1/__concepts/boolean_testable.h
-OLD_FILES+=usr/include/c++/v1/__concepts/class_or_enum.h
-OLD_FILES+=usr/include/c++/v1/__concepts/common_reference_with.h
-OLD_FILES+=usr/include/c++/v1/__concepts/common_with.h
-OLD_FILES+=usr/include/c++/v1/__concepts/constructible.h
-OLD_FILES+=usr/include/c++/v1/__concepts/convertible_to.h
-OLD_FILES+=usr/include/c++/v1/__concepts/copyable.h
-OLD_FILES+=usr/include/c++/v1/__concepts/derived_from.h
-OLD_FILES+=usr/include/c++/v1/__concepts/destructible.h
-OLD_FILES+=usr/include/c++/v1/__concepts/different_from.h
-OLD_FILES+=usr/include/c++/v1/__concepts/equality_comparable.h
-OLD_FILES+=usr/include/c++/v1/__concepts/invocable.h
-OLD_FILES+=usr/include/c++/v1/__concepts/movable.h
-OLD_FILES+=usr/include/c++/v1/__concepts/predicate.h
-OLD_FILES+=usr/include/c++/v1/__concepts/regular.h
-OLD_FILES+=usr/include/c++/v1/__concepts/relation.h
-OLD_FILES+=usr/include/c++/v1/__concepts/same_as.h
-OLD_FILES+=usr/include/c++/v1/__concepts/semiregular.h
-OLD_FILES+=usr/include/c++/v1/__concepts/swappable.h
-OLD_FILES+=usr/include/c++/v1/__concepts/totally_ordered.h
-OLD_DIRS+=usr/include/c++/v1/__concepts
-OLD_FILES+=usr/include/c++/v1/__config
-OLD_FILES+=usr/include/c++/v1/__config_site
-OLD_FILES+=usr/include/c++/v1/__coroutine/coroutine_handle.h
-OLD_FILES+=usr/include/c++/v1/__coroutine/coroutine_traits.h
-OLD_FILES+=usr/include/c++/v1/__coroutine/noop_coroutine_handle.h
-OLD_FILES+=usr/include/c++/v1/__coroutine/trivial_awaitables.h
-OLD_DIRS+=usr/include/c++/v1/__coroutine
-OLD_FILES+=usr/include/c++/v1/__debug
-OLD_FILES+=usr/include/c++/v1/__errc
-OLD_FILES+=usr/include/c++/v1/__filesystem/copy_options.h
-OLD_FILES+=usr/include/c++/v1/__filesystem/directory_entry.h
-OLD_FILES+=usr/include/c++/v1/__filesystem/directory_iterator.h
-OLD_FILES+=usr/include/c++/v1/__filesystem/directory_options.h
-OLD_FILES+=usr/include/c++/v1/__filesystem/file_status.h
-OLD_FILES+=usr/include/c++/v1/__filesystem/file_time_type.h
-OLD_FILES+=usr/include/c++/v1/__filesystem/file_type.h
-OLD_FILES+=usr/include/c++/v1/__filesystem/filesystem_error.h
-OLD_FILES+=usr/include/c++/v1/__filesystem/operations.h
-OLD_FILES+=usr/include/c++/v1/__filesystem/path.h
-OLD_FILES+=usr/include/c++/v1/__filesystem/path_iterator.h
-OLD_FILES+=usr/include/c++/v1/__filesystem/perm_options.h
-OLD_FILES+=usr/include/c++/v1/__filesystem/perms.h
-OLD_FILES+=usr/include/c++/v1/__filesystem/recursive_directory_iterator.h
-OLD_FILES+=usr/include/c++/v1/__filesystem/space_info.h
-OLD_FILES+=usr/include/c++/v1/__filesystem/u8path.h
-OLD_DIRS+=usr/include/c++/v1/__filesystem
-OLD_FILES+=usr/include/c++/v1/__format/format_arg.h
-OLD_FILES+=usr/include/c++/v1/__format/format_args.h
-OLD_FILES+=usr/include/c++/v1/__format/format_context.h
-OLD_FILES+=usr/include/c++/v1/__format/format_error.h
-OLD_FILES+=usr/include/c++/v1/__format/format_fwd.h
-OLD_FILES+=usr/include/c++/v1/__format/format_parse_context.h
-OLD_FILES+=usr/include/c++/v1/__format/format_string.h
-OLD_FILES+=usr/include/c++/v1/__format/format_to_n_result.h
-OLD_FILES+=usr/include/c++/v1/__format/formatter.h
-OLD_FILES+=usr/include/c++/v1/__format/formatter_bool.h
-OLD_FILES+=usr/include/c++/v1/__format/formatter_char.h
-OLD_FILES+=usr/include/c++/v1/__format/formatter_floating_point.h
-OLD_FILES+=usr/include/c++/v1/__format/formatter_integer.h
-OLD_FILES+=usr/include/c++/v1/__format/formatter_integral.h
-OLD_FILES+=usr/include/c++/v1/__format/formatter_pointer.h
-OLD_FILES+=usr/include/c++/v1/__format/formatter_string.h
-OLD_FILES+=usr/include/c++/v1/__format/parser_std_format_spec.h
-OLD_DIRS+=usr/include/c++/v1/__format
-OLD_FILES+=usr/include/c++/v1/__functional/binary_function.h
-OLD_FILES+=usr/include/c++/v1/__functional/binary_negate.h
-OLD_FILES+=usr/include/c++/v1/__functional/bind.h
-OLD_FILES+=usr/include/c++/v1/__functional/bind_back.h
-OLD_FILES+=usr/include/c++/v1/__functional/bind_front.h
-OLD_FILES+=usr/include/c++/v1/__functional/binder1st.h
-OLD_FILES+=usr/include/c++/v1/__functional/binder2nd.h
-OLD_FILES+=usr/include/c++/v1/__functional/compose.h
-OLD_FILES+=usr/include/c++/v1/__functional/default_searcher.h
-OLD_FILES+=usr/include/c++/v1/__functional/function.h
-OLD_FILES+=usr/include/c++/v1/__functional/hash.h
-OLD_FILES+=usr/include/c++/v1/__functional/identity.h
-OLD_FILES+=usr/include/c++/v1/__functional/invoke.h
-OLD_FILES+=usr/include/c++/v1/__functional/is_transparent.h
-OLD_FILES+=usr/include/c++/v1/__functional/mem_fn.h
-OLD_FILES+=usr/include/c++/v1/__functional/mem_fun_ref.h
-OLD_FILES+=usr/include/c++/v1/__functional/not_fn.h
-OLD_FILES+=usr/include/c++/v1/__functional/operations.h
-OLD_FILES+=usr/include/c++/v1/__functional/perfect_forward.h
-OLD_FILES+=usr/include/c++/v1/__functional/pointer_to_binary_function.h
-OLD_FILES+=usr/include/c++/v1/__functional/pointer_to_unary_function.h
-OLD_FILES+=usr/include/c++/v1/__functional/ranges_operations.h
-OLD_FILES+=usr/include/c++/v1/__functional/reference_wrapper.h
-OLD_FILES+=usr/include/c++/v1/__functional/unary_function.h
-OLD_FILES+=usr/include/c++/v1/__functional/unary_negate.h
-OLD_FILES+=usr/include/c++/v1/__functional/unwrap_ref.h
-OLD_FILES+=usr/include/c++/v1/__functional/weak_result_type.h
-OLD_DIRS+=usr/include/c++/v1/__functional
-OLD_FILES+=usr/include/c++/v1/__functional_base
-OLD_FILES+=usr/include/c++/v1/__hash_table
-OLD_FILES+=usr/include/c++/v1/__iterator/access.h
-OLD_FILES+=usr/include/c++/v1/__iterator/advance.h
-OLD_FILES+=usr/include/c++/v1/__iterator/back_insert_iterator.h
-OLD_FILES+=usr/include/c++/v1/__iterator/common_iterator.h
-OLD_FILES+=usr/include/c++/v1/__iterator/concepts.h
-OLD_FILES+=usr/include/c++/v1/__iterator/counted_iterator.h
-OLD_FILES+=usr/include/c++/v1/__iterator/data.h
-OLD_FILES+=usr/include/c++/v1/__iterator/default_sentinel.h
-OLD_FILES+=usr/include/c++/v1/__iterator/distance.h
-OLD_FILES+=usr/include/c++/v1/__iterator/empty.h
-OLD_FILES+=usr/include/c++/v1/__iterator/erase_if_container.h
-OLD_FILES+=usr/include/c++/v1/__iterator/front_insert_iterator.h
-OLD_FILES+=usr/include/c++/v1/__iterator/incrementable_traits.h
-OLD_FILES+=usr/include/c++/v1/__iterator/indirectly_comparable.h
-OLD_FILES+=usr/include/c++/v1/__iterator/insert_iterator.h
-OLD_FILES+=usr/include/c++/v1/__iterator/istream_iterator.h
-OLD_FILES+=usr/include/c++/v1/__iterator/istreambuf_iterator.h
-OLD_FILES+=usr/include/c++/v1/__iterator/iter_move.h
-OLD_FILES+=usr/include/c++/v1/__iterator/iter_swap.h
-OLD_FILES+=usr/include/c++/v1/__iterator/iterator.h
-OLD_FILES+=usr/include/c++/v1/__iterator/iterator_traits.h
-OLD_FILES+=usr/include/c++/v1/__iterator/move_iterator.h
-OLD_FILES+=usr/include/c++/v1/__iterator/next.h
-OLD_FILES+=usr/include/c++/v1/__iterator/ostream_iterator.h
-OLD_FILES+=usr/include/c++/v1/__iterator/ostreambuf_iterator.h
-OLD_FILES+=usr/include/c++/v1/__iterator/prev.h
-OLD_FILES+=usr/include/c++/v1/__iterator/projected.h
-OLD_FILES+=usr/include/c++/v1/__iterator/readable_traits.h
-OLD_FILES+=usr/include/c++/v1/__iterator/reverse_access.h
-OLD_FILES+=usr/include/c++/v1/__iterator/reverse_iterator.h
-OLD_FILES+=usr/include/c++/v1/__iterator/size.h
-OLD_FILES+=usr/include/c++/v1/__iterator/unreachable_sentinel.h
-OLD_FILES+=usr/include/c++/v1/__iterator/wrap_iter.h
-OLD_DIRS+=usr/include/c++/v1/__iterator
-OLD_FILES+=usr/include/c++/v1/__libcpp_version
-OLD_FILES+=usr/include/c++/v1/__locale
-OLD_FILES+=usr/include/c++/v1/__mbstate_t.h
-OLD_FILES+=usr/include/c++/v1/__memory/addressof.h
-OLD_FILES+=usr/include/c++/v1/__memory/allocation_guard.h
-OLD_FILES+=usr/include/c++/v1/__memory/allocator.h
-OLD_FILES+=usr/include/c++/v1/__memory/allocator_arg_t.h
-OLD_FILES+=usr/include/c++/v1/__memory/allocator_traits.h
-OLD_FILES+=usr/include/c++/v1/__memory/auto_ptr.h
-OLD_FILES+=usr/include/c++/v1/__memory/compressed_pair.h
-OLD_FILES+=usr/include/c++/v1/__memory/concepts.h
-OLD_FILES+=usr/include/c++/v1/__memory/construct_at.h
-OLD_FILES+=usr/include/c++/v1/__memory/pointer_traits.h
-OLD_FILES+=usr/include/c++/v1/__memory/ranges_construct_at.h
-OLD_FILES+=usr/include/c++/v1/__memory/ranges_uninitialized_algorithms.h
-OLD_FILES+=usr/include/c++/v1/__memory/raw_storage_iterator.h
-OLD_FILES+=usr/include/c++/v1/__memory/shared_ptr.h
-OLD_FILES+=usr/include/c++/v1/__memory/temporary_buffer.h
-OLD_FILES+=usr/include/c++/v1/__memory/uninitialized_algorithms.h
-OLD_FILES+=usr/include/c++/v1/__memory/unique_ptr.h
-OLD_FILES+=usr/include/c++/v1/__memory/uses_allocator.h
-OLD_FILES+=usr/include/c++/v1/__memory/voidify.h
-OLD_DIRS+=usr/include/c++/v1/__memory
-OLD_FILES+=usr/include/c++/v1/__mutex_base
-OLD_FILES+=usr/include/c++/v1/__node_handle
-OLD_FILES+=usr/include/c++/v1/__nullptr
-OLD_FILES+=usr/include/c++/v1/__numeric/accumulate.h
-OLD_FILES+=usr/include/c++/v1/__numeric/adjacent_difference.h
-OLD_FILES+=usr/include/c++/v1/__numeric/exclusive_scan.h
-OLD_FILES+=usr/include/c++/v1/__numeric/gcd_lcm.h
-OLD_FILES+=usr/include/c++/v1/__numeric/inclusive_scan.h
-OLD_FILES+=usr/include/c++/v1/__numeric/inner_product.h
-OLD_FILES+=usr/include/c++/v1/__numeric/iota.h
-OLD_FILES+=usr/include/c++/v1/__numeric/midpoint.h
-OLD_FILES+=usr/include/c++/v1/__numeric/partial_sum.h
-OLD_FILES+=usr/include/c++/v1/__numeric/reduce.h
-OLD_FILES+=usr/include/c++/v1/__numeric/transform_exclusive_scan.h
-OLD_FILES+=usr/include/c++/v1/__numeric/transform_inclusive_scan.h
-OLD_FILES+=usr/include/c++/v1/__numeric/transform_reduce.h
-OLD_DIRS+=usr/include/c++/v1/__numeric
-OLD_FILES+=usr/include/c++/v1/__random/bernoulli_distribution.h
-OLD_FILES+=usr/include/c++/v1/__random/binomial_distribution.h
-OLD_FILES+=usr/include/c++/v1/__random/cauchy_distribution.h
-OLD_FILES+=usr/include/c++/v1/__random/chi_squared_distribution.h
-OLD_FILES+=usr/include/c++/v1/__random/clamp_to_integral.h
-OLD_FILES+=usr/include/c++/v1/__random/default_random_engine.h
-OLD_FILES+=usr/include/c++/v1/__random/discard_block_engine.h
-OLD_FILES+=usr/include/c++/v1/__random/discrete_distribution.h
-OLD_FILES+=usr/include/c++/v1/__random/exponential_distribution.h
-OLD_FILES+=usr/include/c++/v1/__random/extreme_value_distribution.h
-OLD_FILES+=usr/include/c++/v1/__random/fisher_f_distribution.h
-OLD_FILES+=usr/include/c++/v1/__random/gamma_distribution.h
-OLD_FILES+=usr/include/c++/v1/__random/generate_canonical.h
-OLD_FILES+=usr/include/c++/v1/__random/geometric_distribution.h
-OLD_FILES+=usr/include/c++/v1/__random/independent_bits_engine.h
-OLD_FILES+=usr/include/c++/v1/__random/is_seed_sequence.h
-OLD_FILES+=usr/include/c++/v1/__random/knuth_b.h
-OLD_FILES+=usr/include/c++/v1/__random/linear_congruential_engine.h
-OLD_FILES+=usr/include/c++/v1/__random/log2.h
-OLD_FILES+=usr/include/c++/v1/__random/lognormal_distribution.h
-OLD_FILES+=usr/include/c++/v1/__random/mersenne_twister_engine.h
-OLD_FILES+=usr/include/c++/v1/__random/negative_binomial_distribution.h
-OLD_FILES+=usr/include/c++/v1/__random/normal_distribution.h
-OLD_FILES+=usr/include/c++/v1/__random/piecewise_constant_distribution.h
-OLD_FILES+=usr/include/c++/v1/__random/piecewise_linear_distribution.h
-OLD_FILES+=usr/include/c++/v1/__random/poisson_distribution.h
-OLD_FILES+=usr/include/c++/v1/__random/random_device.h
-OLD_FILES+=usr/include/c++/v1/__random/ranlux.h
-OLD_FILES+=usr/include/c++/v1/__random/seed_seq.h
-OLD_FILES+=usr/include/c++/v1/__random/shuffle_order_engine.h
-OLD_FILES+=usr/include/c++/v1/__random/student_t_distribution.h
-OLD_FILES+=usr/include/c++/v1/__random/subtract_with_carry_engine.h
-OLD_FILES+=usr/include/c++/v1/__random/uniform_int_distribution.h
-OLD_FILES+=usr/include/c++/v1/__random/uniform_random_bit_generator.h
-OLD_FILES+=usr/include/c++/v1/__random/uniform_real_distribution.h
-OLD_FILES+=usr/include/c++/v1/__random/weibull_distribution.h
-OLD_DIRS+=usr/include/c++/v1/__random
-OLD_FILES+=usr/include/c++/v1/__ranges/access.h
-OLD_FILES+=usr/include/c++/v1/__ranges/all.h
-OLD_FILES+=usr/include/c++/v1/__ranges/common_view.h
-OLD_FILES+=usr/include/c++/v1/__ranges/concepts.h
-OLD_FILES+=usr/include/c++/v1/__ranges/copyable_box.h
-OLD_FILES+=usr/include/c++/v1/__ranges/counted.h
-OLD_FILES+=usr/include/c++/v1/__ranges/dangling.h
-OLD_FILES+=usr/include/c++/v1/__ranges/data.h
-OLD_FILES+=usr/include/c++/v1/__ranges/drop_view.h
-OLD_FILES+=usr/include/c++/v1/__ranges/empty.h
-OLD_FILES+=usr/include/c++/v1/__ranges/empty_view.h
-OLD_FILES+=usr/include/c++/v1/__ranges/enable_borrowed_range.h
-OLD_FILES+=usr/include/c++/v1/__ranges/enable_view.h
-OLD_FILES+=usr/include/c++/v1/__ranges/iota_view.h
-OLD_FILES+=usr/include/c++/v1/__ranges/join_view.h
-OLD_FILES+=usr/include/c++/v1/__ranges/non_propagating_cache.h
-OLD_FILES+=usr/include/c++/v1/__ranges/owning_view.h
-OLD_FILES+=usr/include/c++/v1/__ranges/range_adaptor.h
-OLD_FILES+=usr/include/c++/v1/__ranges/ref_view.h
-OLD_FILES+=usr/include/c++/v1/__ranges/reverse_view.h
-OLD_FILES+=usr/include/c++/v1/__ranges/single_view.h
-OLD_FILES+=usr/include/c++/v1/__ranges/size.h
-OLD_FILES+=usr/include/c++/v1/__ranges/subrange.h
-OLD_FILES+=usr/include/c++/v1/__ranges/take_view.h
-OLD_FILES+=usr/include/c++/v1/__ranges/transform_view.h
-OLD_FILES+=usr/include/c++/v1/__ranges/view_interface.h
-OLD_DIRS+=usr/include/c++/v1/__ranges
-OLD_FILES+=usr/include/c++/v1/__split_buffer
-OLD_FILES+=usr/include/c++/v1/__std_stream
-OLD_FILES+=usr/include/c++/v1/__string
-OLD_FILES+=usr/include/c++/v1/__thread/poll_with_backoff.h
-OLD_FILES+=usr/include/c++/v1/__thread/timed_backoff_policy.h
-OLD_DIRS+=usr/include/c++/v1/__thread
-OLD_FILES+=usr/include/c++/v1/__threading_support
-OLD_FILES+=usr/include/c++/v1/__tree
-OLD_FILES+=usr/include/c++/v1/__tuple
-OLD_FILES+=usr/include/c++/v1/__undef_macros
-OLD_FILES+=usr/include/c++/v1/__utility/as_const.h
-OLD_FILES+=usr/include/c++/v1/__utility/auto_cast.h
-OLD_FILES+=usr/include/c++/v1/__utility/cmp.h
-OLD_FILES+=usr/include/c++/v1/__utility/declval.h
-OLD_FILES+=usr/include/c++/v1/__utility/exchange.h
-OLD_FILES+=usr/include/c++/v1/__utility/forward.h
-OLD_FILES+=usr/include/c++/v1/__utility/in_place.h
-OLD_FILES+=usr/include/c++/v1/__utility/integer_sequence.h
-OLD_FILES+=usr/include/c++/v1/__utility/move.h
-OLD_FILES+=usr/include/c++/v1/__utility/pair.h
-OLD_FILES+=usr/include/c++/v1/__utility/piecewise_construct.h
-OLD_FILES+=usr/include/c++/v1/__utility/priority_tag.h
-OLD_FILES+=usr/include/c++/v1/__utility/rel_ops.h
-OLD_FILES+=usr/include/c++/v1/__utility/swap.h
-OLD_FILES+=usr/include/c++/v1/__utility/to_underlying.h
-OLD_FILES+=usr/include/c++/v1/__utility/transaction.h
-OLD_DIRS+=usr/include/c++/v1/__utility
-OLD_FILES+=usr/include/c++/v1/__variant/monostate.h
-OLD_DIRS+=usr/include/c++/v1/__variant
-OLD_FILES+=usr/include/c++/v1/algorithm
-OLD_FILES+=usr/include/c++/v1/any
-OLD_FILES+=usr/include/c++/v1/array
-OLD_FILES+=usr/include/c++/v1/atomic
-OLD_FILES+=usr/include/c++/v1/barrier
-OLD_FILES+=usr/include/c++/v1/bit
-OLD_FILES+=usr/include/c++/v1/bitset
-OLD_FILES+=usr/include/c++/v1/cassert
-OLD_FILES+=usr/include/c++/v1/ccomplex
-OLD_FILES+=usr/include/c++/v1/cctype
-OLD_FILES+=usr/include/c++/v1/cerrno
-OLD_FILES+=usr/include/c++/v1/cfenv
-OLD_FILES+=usr/include/c++/v1/cfloat
-OLD_FILES+=usr/include/c++/v1/charconv
-OLD_FILES+=usr/include/c++/v1/chrono
-OLD_FILES+=usr/include/c++/v1/cinttypes
-OLD_FILES+=usr/include/c++/v1/ciso646
-OLD_FILES+=usr/include/c++/v1/climits
-OLD_FILES+=usr/include/c++/v1/clocale
-OLD_FILES+=usr/include/c++/v1/cmath
-OLD_FILES+=usr/include/c++/v1/codecvt
-OLD_FILES+=usr/include/c++/v1/compare
-OLD_FILES+=usr/include/c++/v1/complex
-OLD_FILES+=usr/include/c++/v1/complex.h
-OLD_FILES+=usr/include/c++/v1/concepts
-OLD_FILES+=usr/include/c++/v1/condition_variable
-OLD_FILES+=usr/include/c++/v1/coroutine
-OLD_FILES+=usr/include/c++/v1/csetjmp
-OLD_FILES+=usr/include/c++/v1/csignal
-OLD_FILES+=usr/include/c++/v1/cstdarg
-OLD_FILES+=usr/include/c++/v1/cstdbool
-OLD_FILES+=usr/include/c++/v1/cstddef
-OLD_FILES+=usr/include/c++/v1/cstdint
-OLD_FILES+=usr/include/c++/v1/cstdio
-OLD_FILES+=usr/include/c++/v1/cstdlib
-OLD_FILES+=usr/include/c++/v1/cstring
-OLD_FILES+=usr/include/c++/v1/ctgmath
-OLD_FILES+=usr/include/c++/v1/ctime
-OLD_FILES+=usr/include/c++/v1/ctype.h
-OLD_FILES+=usr/include/c++/v1/cwchar
-OLD_FILES+=usr/include/c++/v1/cwctype
-OLD_FILES+=usr/include/c++/v1/cxxabi.h
-OLD_FILES+=usr/include/c++/v1/deque
-OLD_FILES+=usr/include/c++/v1/errno.h
-OLD_FILES+=usr/include/c++/v1/exception
-OLD_FILES+=usr/include/c++/v1/execution
-OLD_FILES+=usr/include/c++/v1/experimental/__config
-OLD_FILES+=usr/include/c++/v1/experimental/__memory
-OLD_FILES+=usr/include/c++/v1/experimental/algorithm
-OLD_FILES+=usr/include/c++/v1/experimental/coroutine
-OLD_FILES+=usr/include/c++/v1/experimental/deque
-OLD_FILES+=usr/include/c++/v1/experimental/filesystem
-OLD_FILES+=usr/include/c++/v1/experimental/forward_list
-OLD_FILES+=usr/include/c++/v1/experimental/functional
-OLD_FILES+=usr/include/c++/v1/experimental/iterator
-OLD_FILES+=usr/include/c++/v1/experimental/list
-OLD_FILES+=usr/include/c++/v1/experimental/map
-OLD_FILES+=usr/include/c++/v1/experimental/memory_resource
-OLD_FILES+=usr/include/c++/v1/experimental/propagate_const
-OLD_FILES+=usr/include/c++/v1/experimental/regex
-OLD_FILES+=usr/include/c++/v1/experimental/set
-OLD_FILES+=usr/include/c++/v1/experimental/simd
-OLD_FILES+=usr/include/c++/v1/experimental/string
-OLD_FILES+=usr/include/c++/v1/experimental/type_traits
-OLD_FILES+=usr/include/c++/v1/experimental/unordered_map
-OLD_FILES+=usr/include/c++/v1/experimental/unordered_set
-OLD_FILES+=usr/include/c++/v1/experimental/utility
-OLD_FILES+=usr/include/c++/v1/experimental/vector
-OLD_DIRS+=usr/include/c++/v1/experimental
-OLD_FILES+=usr/include/c++/v1/ext/__hash
-OLD_FILES+=usr/include/c++/v1/ext/hash_map
-OLD_FILES+=usr/include/c++/v1/ext/hash_set
-OLD_DIRS+=usr/include/c++/v1/ext
-OLD_FILES+=usr/include/c++/v1/fenv.h
-OLD_FILES+=usr/include/c++/v1/filesystem
-OLD_FILES+=usr/include/c++/v1/float.h
-OLD_FILES+=usr/include/c++/v1/format
-OLD_FILES+=usr/include/c++/v1/forward_list
-OLD_FILES+=usr/include/c++/v1/fstream
-OLD_FILES+=usr/include/c++/v1/functional
-OLD_FILES+=usr/include/c++/v1/future
-OLD_FILES+=usr/include/c++/v1/initializer_list
-OLD_FILES+=usr/include/c++/v1/inttypes.h
-OLD_FILES+=usr/include/c++/v1/iomanip
-OLD_FILES+=usr/include/c++/v1/ios
-OLD_FILES+=usr/include/c++/v1/iosfwd
-OLD_FILES+=usr/include/c++/v1/iostream
-OLD_FILES+=usr/include/c++/v1/istream
-OLD_FILES+=usr/include/c++/v1/iterator
-OLD_FILES+=usr/include/c++/v1/latch
-OLD_FILES+=usr/include/c++/v1/limits
-OLD_FILES+=usr/include/c++/v1/limits.h
-OLD_FILES+=usr/include/c++/v1/list
-OLD_FILES+=usr/include/c++/v1/locale
-OLD_FILES+=usr/include/c++/v1/locale.h
-OLD_FILES+=usr/include/c++/v1/map
-OLD_FILES+=usr/include/c++/v1/math.h
-OLD_FILES+=usr/include/c++/v1/memory
-OLD_FILES+=usr/include/c++/v1/module.modulemap
-OLD_FILES+=usr/include/c++/v1/mutex
-OLD_FILES+=usr/include/c++/v1/new
-OLD_FILES+=usr/include/c++/v1/numbers
-OLD_FILES+=usr/include/c++/v1/numeric
-OLD_FILES+=usr/include/c++/v1/optional
-OLD_FILES+=usr/include/c++/v1/ostream
-OLD_FILES+=usr/include/c++/v1/queue
-OLD_FILES+=usr/include/c++/v1/random
-OLD_FILES+=usr/include/c++/v1/ranges
-OLD_FILES+=usr/include/c++/v1/ratio
-OLD_FILES+=usr/include/c++/v1/regex
-OLD_FILES+=usr/include/c++/v1/scoped_allocator
-OLD_FILES+=usr/include/c++/v1/semaphore
-OLD_FILES+=usr/include/c++/v1/set
-OLD_FILES+=usr/include/c++/v1/setjmp.h
-OLD_FILES+=usr/include/c++/v1/shared_mutex
-OLD_FILES+=usr/include/c++/v1/span
-OLD_FILES+=usr/include/c++/v1/sstream
-OLD_FILES+=usr/include/c++/v1/stack
-OLD_FILES+=usr/include/c++/v1/stdbool.h
-OLD_FILES+=usr/include/c++/v1/stddef.h
-OLD_FILES+=usr/include/c++/v1/stdexcept
-OLD_FILES+=usr/include/c++/v1/stdint.h
-OLD_FILES+=usr/include/c++/v1/stdio.h
-OLD_FILES+=usr/include/c++/v1/stdlib.h
-OLD_FILES+=usr/include/c++/v1/streambuf
-OLD_FILES+=usr/include/c++/v1/string
-OLD_FILES+=usr/include/c++/v1/string.h
-OLD_FILES+=usr/include/c++/v1/string_view
-OLD_FILES+=usr/include/c++/v1/strstream
-OLD_FILES+=usr/include/c++/v1/system_error
-OLD_FILES+=usr/include/c++/v1/tgmath.h
-OLD_FILES+=usr/include/c++/v1/thread
-OLD_FILES+=usr/include/c++/v1/tuple
-OLD_FILES+=usr/include/c++/v1/type_traits
-OLD_FILES+=usr/include/c++/v1/typeindex
-OLD_FILES+=usr/include/c++/v1/typeinfo
-OLD_FILES+=usr/include/c++/v1/unordered_map
-OLD_FILES+=usr/include/c++/v1/unordered_set
-OLD_FILES+=usr/include/c++/v1/utility
-OLD_FILES+=usr/include/c++/v1/valarray
-OLD_FILES+=usr/include/c++/v1/variant
-OLD_FILES+=usr/include/c++/v1/vector
-OLD_FILES+=usr/include/c++/v1/version
-OLD_FILES+=usr/include/c++/v1/wchar.h
-OLD_FILES+=usr/include/c++/v1/wctype.h
-OLD_DIRS+=usr/include/c++/v1
-.endif
-
 .if ${MK_LLD} == no
 OLD_FILES+=usr/bin/ld.lld
 .endif
diff --git a/tools/build/options/WITHOUT_CXX b/tools/build/options/WITHOUT_CXX
deleted file mode 100644
index a600bb03df27..000000000000
--- a/tools/build/options/WITHOUT_CXX
+++ /dev/null
@@ -1,4 +0,0 @@
-.\" $FreeBSD$
-Do not build C++ headers and runtime libraries.
-It also prevents building binaries and libraries written in C++, including
-.Xr devd 8 .
diff --git a/usr.bin/Makefile b/usr.bin/Makefile
index 3ccc626bdfc8..a53d908d454b 100644
--- a/usr.bin/Makefile
+++ b/usr.bin/Makefile
@@ -34,6 +34,7 @@ SUBDIR=	alias \
 	cut \
 	diff \
 	dirname \
+	dtc \
 	du \
 	elfctl \
 	elfdump \
@@ -125,6 +126,7 @@ SUBDIR=	alias \
 	rev \
 	revoke \
 	rpcinfo \
+	rs \
 	rup \
 	ruptime \
 	rusers \
@@ -210,8 +212,6 @@ SUBDIR.${MK_GAMES}+=	number
 SUBDIR.${MK_GAMES}+=	pom
 SUBDIR.${MK_GAMES}+=	primes
 SUBDIR.${MK_GAMES}+=	random
-SUBDIR.${MK_CXX}+=	dtc
-SUBDIR.${MK_CXX}+=	rs
 .if ${MK_GH_BC} == "yes"
 SUBDIR+=		gh-bc
 .else
@@ -248,7 +248,7 @@ SUBDIR.${MK_QUOTAS}+=	quota
 SUBDIR.${MK_SENDMAIL}+=	vacation
 SUBDIR.${MK_TALK}+=	talk
 SUBDIR.${MK_TELNET}+=	telnet
-SUBDIR.${MK_TESTS_SUPPORT}.${MK_CXX}+=	kyua
+SUBDIR.${MK_TESTS_SUPPORT}+=	kyua
 SUBDIR.${MK_TESTS}+=	tests
 SUBDIR.${MK_TEXTPROC}+=	ul
 SUBDIR.${MK_TFTP}+=	tftp
@@ -281,9 +281,7 @@ SUBDIR.${MK_VT}+=	vtfontcvt
 SUBDIR.${MK_USB}+=	usbhidaction
 SUBDIR.${MK_USB}+=	usbhidctl
 SUBDIR.${MK_UTMPX}+=	last
-.if ${MK_CXX} != "no"
 SUBDIR.${MK_UTMPX}+=	users
-.endif
 SUBDIR.${MK_UTMPX}+=	who
 SUBDIR.${MK_OFED}+=	ofed