Module Name:    src
Committed By:   mrg
Date:           Tue Aug  1 05:57:57 UTC 2023

Modified Files:
        src/external/gpl3/gcc: Makefile.hooks
        src/external/gpl3/gcc/lib: Makefile
        src/external/gpl3/gcc/lib/libgcc: Makefile.inc
        src/external/gpl3/gcc/lib/libgcc/libgcov: Makefile
        src/external/gpl3/gcc/lib/libgomp: Makefile
        src/external/gpl3/gcc/lib/libobjc: Makefile
        src/external/gpl3/gcc/lib/libstdc++-v3: Makefile
        src/external/gpl3/gcc/usr.bin: Makefile Makefile.checksum
            Makefile.driver Makefile.gcc-tool Makefile.inc Makefile.options
        src/external/gpl3/gcc/usr.bin/backend: Makefile
        src/external/gpl3/gcc/usr.bin/cc1: Makefile
        src/external/gpl3/gcc/usr.bin/cc1obj: Makefile
        src/external/gpl3/gcc/usr.bin/cc1objplus: Makefile
        src/external/gpl3/gcc/usr.bin/cc1plus: Makefile
        src/external/gpl3/gcc/usr.bin/common: Makefile
        src/external/gpl3/gcc/usr.bin/common-target: Makefile
        src/external/gpl3/gcc/usr.bin/cpp: Makefile
        src/external/gpl3/gcc/usr.bin/frontend: Makefile
        src/external/gpl3/gcc/usr.bin/g++: Makefile
        src/external/gpl3/gcc/usr.bin/gcc: Makefile
        src/external/gpl3/gcc/usr.bin/gcov: Makefile
        src/external/gpl3/gcc/usr.bin/gcov-dump: Makefile
        src/external/gpl3/gcc/usr.bin/include: Makefile
        src/external/gpl3/gcc/usr.bin/libcpp: Makefile
        src/external/gpl3/gcc/usr.bin/libdecnumber: Makefile
        src/external/gpl3/gcc/usr.bin/lto-dump: Makefile
        src/external/gpl3/gcc/usr.bin/lto-wrapper: Makefile
        src/external/gpl3/gcc/usr.bin/lto1: Makefile
Added Files:
        src/external/gpl3/gcc: Makefile.autobuild_h Makefile.version_h
        src/external/gpl3/gcc/usr.bin: Makefile.libcody
        src/external/gpl3/gcc/usr.bin/libcody: Makefile

Log Message:
various updates to build native GCC 12.

- for usr.bin, build libcody and link it into cc1*plus
- move makefile code for auto-build.h and version.h (was gcov-iov.h)
  into makefile fragment to share them.  (XXX probably best to only do
  this in one place, but that's a future step.)
- many updates to handle the .c -> .cc renames
- build some x86 files with -msse2
- bump shlib versions for libgomp and libstdc++v3
- fix MKGCCCMDS=no builds
- updates for new rtl-ssa subdir
- use -std=gnu++11 for various places
- define TARGET_MACHINE and HOST_MACHINE for some places
- avoid a .BEGIN rule that writes to missing obj (ie src) sometimes

cleanups still needed:
- remove a bunch of commented -Wno* that don't seem to be needed anymore
- leave or remove various vax-specific -O0s that should no longer be
  necessary for the vax-gcc port
- some "XXXGCC12" that should be may be fixable or converted to using our
  standard ${CC_...} warnings (but may need to remain, in which case the
  XXXGCC12 marker will be removed.)

with these, and a few other changes around the tree, i've able to build
gcc12 releases for several ports that seem to work (arm64, sparc, amd64,
i386 at least so far, have run, several others have built.)


To generate a diff of this commit:
cvs rdiff -u -r0 -r1.1 src/external/gpl3/gcc/Makefile.autobuild_h \
    src/external/gpl3/gcc/Makefile.version_h
cvs rdiff -u -r1.3 -r1.4 src/external/gpl3/gcc/Makefile.hooks
cvs rdiff -u -r1.21 -r1.22 src/external/gpl3/gcc/lib/Makefile
cvs rdiff -u -r1.52 -r1.53 src/external/gpl3/gcc/lib/libgcc/Makefile.inc
cvs rdiff -u -r1.9 -r1.10 src/external/gpl3/gcc/lib/libgcc/libgcov/Makefile
cvs rdiff -u -r1.26 -r1.27 src/external/gpl3/gcc/lib/libgomp/Makefile
cvs rdiff -u -r1.16 -r1.17 src/external/gpl3/gcc/lib/libobjc/Makefile
cvs rdiff -u -r1.53 -r1.54 src/external/gpl3/gcc/lib/libstdc++-v3/Makefile
cvs rdiff -u -r1.13 -r1.14 src/external/gpl3/gcc/usr.bin/Makefile
cvs rdiff -u -r1.1 -r1.2 src/external/gpl3/gcc/usr.bin/Makefile.checksum \
    src/external/gpl3/gcc/usr.bin/Makefile.options
cvs rdiff -u -r1.2 -r1.3 src/external/gpl3/gcc/usr.bin/Makefile.driver
cvs rdiff -u -r1.3 -r1.4 src/external/gpl3/gcc/usr.bin/Makefile.gcc-tool
cvs rdiff -u -r1.36 -r1.37 src/external/gpl3/gcc/usr.bin/Makefile.inc
cvs rdiff -u -r0 -r1.1 src/external/gpl3/gcc/usr.bin/Makefile.libcody
cvs rdiff -u -r1.68 -r1.69 src/external/gpl3/gcc/usr.bin/backend/Makefile
cvs rdiff -u -r1.20 -r1.21 src/external/gpl3/gcc/usr.bin/cc1/Makefile
cvs rdiff -u -r1.18 -r1.19 src/external/gpl3/gcc/usr.bin/cc1obj/Makefile
cvs rdiff -u -r1.3 -r1.4 src/external/gpl3/gcc/usr.bin/cc1objplus/Makefile
cvs rdiff -u -r1.17 -r1.18 src/external/gpl3/gcc/usr.bin/cc1plus/Makefile
cvs rdiff -u -r1.12 -r1.13 src/external/gpl3/gcc/usr.bin/common/Makefile
cvs rdiff -u -r1.13 -r1.14 \
    src/external/gpl3/gcc/usr.bin/common-target/Makefile
cvs rdiff -u -r1.11 -r1.12 src/external/gpl3/gcc/usr.bin/cpp/Makefile
cvs rdiff -u -r1.15 -r1.16 src/external/gpl3/gcc/usr.bin/frontend/Makefile
cvs rdiff -u -r1.7 -r1.8 src/external/gpl3/gcc/usr.bin/g++/Makefile
cvs rdiff -u -r1.7 -r1.8 src/external/gpl3/gcc/usr.bin/gcc/Makefile
cvs rdiff -u -r1.11 -r1.12 src/external/gpl3/gcc/usr.bin/gcov/Makefile
cvs rdiff -u -r1.4 -r1.5 src/external/gpl3/gcc/usr.bin/gcov-dump/Makefile
cvs rdiff -u -r1.13 -r1.14 src/external/gpl3/gcc/usr.bin/include/Makefile
cvs rdiff -u -r0 -r1.1 src/external/gpl3/gcc/usr.bin/libcody/Makefile
cvs rdiff -u -r1.10 -r1.11 src/external/gpl3/gcc/usr.bin/libcpp/Makefile
cvs rdiff -u -r1.9 -r1.10 src/external/gpl3/gcc/usr.bin/libdecnumber/Makefile
cvs rdiff -u -r1.1 -r1.2 src/external/gpl3/gcc/usr.bin/lto-dump/Makefile
cvs rdiff -u -r1.5 -r1.6 src/external/gpl3/gcc/usr.bin/lto-wrapper/Makefile
cvs rdiff -u -r1.7 -r1.8 src/external/gpl3/gcc/usr.bin/lto1/Makefile

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/gpl3/gcc/Makefile.hooks
diff -u src/external/gpl3/gcc/Makefile.hooks:1.3 src/external/gpl3/gcc/Makefile.hooks:1.4
--- src/external/gpl3/gcc/Makefile.hooks:1.3	Sat Sep  5 09:50:15 2020
+++ src/external/gpl3/gcc/Makefile.hooks	Tue Aug  1 05:57:53 2023
@@ -1,11 +1,11 @@
-#	$NetBSD: Makefile.hooks,v 1.3 2020/09/05 09:50:15 mrg Exp $
+#	$NetBSD: Makefile.hooks,v 1.4 2023/08/01 05:57:53 mrg Exp $
 
 #
 # Makefile fragment to build genhooks and *target-hooks*.h
 #
 
 .for f in hooks
-gen${f}.lo: ${HH} gen${f}.c ${G_D_TARGET_DEF}
+gen${f}.lo: ${HH} gen${f}.cc ${G_D_TARGET_DEF}
 gen${f}: gen${f}.lo ${GENPROG_ERROR_DEPENDS} 
 	${_MKTARGET_LINK}
 	${HOST_LINK.cc} -o ${.TARGET} ${.ALLSRC} ${NBCOMPATLIB} ${HOSTLIBIBERTY} ${LDFLAGS.${.TARGET}}

Index: src/external/gpl3/gcc/lib/Makefile
diff -u src/external/gpl3/gcc/lib/Makefile:1.21 src/external/gpl3/gcc/lib/Makefile:1.22
--- src/external/gpl3/gcc/lib/Makefile:1.21	Tue Sep 15 07:00:03 2020
+++ src/external/gpl3/gcc/lib/Makefile	Tue Aug  1 05:57:56 2023
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.21 2020/09/15 07:00:03 mrg Exp $
+#	$NetBSD: Makefile,v 1.22 2023/08/01 05:57:56 mrg Exp $
 
 .include <bsd.own.mk>
 
@@ -11,6 +11,8 @@ SUBDIR+= liblto_plugin
 .if (${MKLIBSTDCXX} != "no") && (${MKCXX} != "no")
 SUBDIR+= libsupc++ libstdc++-v3
 
+# XXX needs re-port
+.if 0
 SUBDIR+= .WAIT libasan liblsan libubsan
 
 # TSan does not work with 32bit address space and has not been ported
@@ -18,6 +20,7 @@ SUBDIR+= .WAIT libasan liblsan libubsan
 .if ${MACHINE} == "amd64"
 SUBDIR+= libtsan
 .endif
+.endif # 0
 
 .endif
 

Index: src/external/gpl3/gcc/lib/libgcc/Makefile.inc
diff -u src/external/gpl3/gcc/lib/libgcc/Makefile.inc:1.52 src/external/gpl3/gcc/lib/libgcc/Makefile.inc:1.53
--- src/external/gpl3/gcc/lib/libgcc/Makefile.inc:1.52	Fri Jul 22 21:59:11 2022
+++ src/external/gpl3/gcc/lib/libgcc/Makefile.inc	Tue Aug  1 05:57:56 2023
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile.inc,v 1.52 2022/07/22 21:59:11 mrg Exp $
+#	$NetBSD: Makefile.inc,v 1.53 2023/08/01 05:57:56 mrg Exp $
 
 LIBGCC_MACHINE_ARCH?=${MACHINE_ARCH:S/earmv5/earm/}
 GCC_MACHINE_SUBDIR=${MACHINE_CPU:C/powerpc.*/rs6000/:C/x86_64/i386/}
@@ -208,6 +208,26 @@ G_LIB2ADD+=	${GNUHOSTDIST}/libgcc/config
 
 .endif # } arm64
 
+.if (${LIBGCC_MACHINE_ARCH} == "x86_64" || \
+     ${LIBGCC_MACHINE_ARCH} == "i386") # {
+
+.if ${LIBGCC_MACHINE_ARCH} == "x86_64"
+MSSE_FILES=	fixhfti.c fixunshfti.c floattihf.c floatunstihf.c
+.endif
+
+.if ${LIBGCC_MACHINE_ARCH} == "i386"
+MSSE_FILES=	extendhfsf2.c extendhfdf2.c extendhftf2.c extendhfxf2.c \
+		truncsfhf2.c truncdfhf2.c truncxfhf2.c trunctfhf2.c \
+		eqhf2.c _divhc3.c _mulhc3.c
+
+.endif # } i386
+
+.for _f in ${MSSE_FILES}
+COPTS.${_f}+=	-msse2
+.endfor
+
+.endif # } x86
+
 # Use dynamic sources to arrange for the C file to be the first dependency
 # so ${.IMPSRC} will work.
 

Index: src/external/gpl3/gcc/lib/libgcc/libgcov/Makefile
diff -u src/external/gpl3/gcc/lib/libgcc/libgcov/Makefile:1.9 src/external/gpl3/gcc/lib/libgcc/libgcov/Makefile:1.10
--- src/external/gpl3/gcc/lib/libgcc/libgcov/Makefile:1.9	Tue Mar 15 06:12:11 2016
+++ src/external/gpl3/gcc/lib/libgcc/libgcov/Makefile	Tue Aug  1 05:57:56 2023
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.9 2016/03/15 06:12:11 mrg Exp $
+#	$NetBSD: Makefile,v 1.10 2023/08/01 05:57:56 mrg Exp $
 
 REQUIRETOOLS=	yes
 NOPIC=		# defined
@@ -8,6 +8,7 @@ NOLINT=		# defined
 LIB=		gcov
 
 .include "../../../Makefile.gcc_path"
+
 .include <bsd.own.mk>
 .include <bsd.init.mk>
 
@@ -29,6 +30,8 @@ CPPFLAGS+=	-Wno-stack-protector
 DPSRCS+=	${.CURDIR}/arch/${LIBGCC_MACHINE_ARCH}/defs.mk
 SRCS+=		${LIBGCOVSRCS}
 
+${OBJS}:	version.h
+
 CLEANFILES+=	${LIBGCOVSRCS}
 
 ${LIBGCOVMERGESRCS}: ${.CURDIR}/Makefile
@@ -47,6 +50,12 @@ ${LIBGCOVDRIVERSRCS}: ${.CURDIR}/Makefil
 	${_MKTARGET_CREATE}
 	printf '#define L${.PREFIX}\n#include <libgcov-driver.c>\n' >${.TARGET}
 
+.include "../../../../lgpl3/gmp/Makefile.arch"
+.include "../../../Makefile.version_h"
+.include "../../../Makefile.autobuild_h"
+
+DPSRCS+=	version.h
+
 .include <bsd.lib.mk>
 .else
 .include <bsd.prog.mk> # do nothing

Index: src/external/gpl3/gcc/lib/libgomp/Makefile
diff -u src/external/gpl3/gcc/lib/libgomp/Makefile:1.26 src/external/gpl3/gcc/lib/libgomp/Makefile:1.27
--- src/external/gpl3/gcc/lib/libgomp/Makefile:1.26	Mon Apr 12 00:05:55 2021
+++ src/external/gpl3/gcc/lib/libgomp/Makefile	Tue Aug  1 05:57:56 2023
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.26 2021/04/12 00:05:55 mrg Exp $
+#	$NetBSD: Makefile,v 1.27 2023/08/01 05:57:56 mrg Exp $
 
 # build GCC's libgomp, so that -fopenmp works.
 
@@ -32,7 +32,7 @@ CPPFLAGS+= \
 CFLAGS+=-pthread
 
 SHLIB_MAJOR=	2
-SHLIB_MINOR=	1
+SHLIB_MINOR=	2
 
 LDFLAGS+=	-Wl,--version-script,${DIST}/libgomp/libgomp.map
 

Index: src/external/gpl3/gcc/lib/libobjc/Makefile
diff -u src/external/gpl3/gcc/lib/libobjc/Makefile:1.16 src/external/gpl3/gcc/lib/libobjc/Makefile:1.17
--- src/external/gpl3/gcc/lib/libobjc/Makefile:1.16	Sat Jan 19 17:11:02 2019
+++ src/external/gpl3/gcc/lib/libobjc/Makefile	Tue Aug  1 05:57:56 2023
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.16 2019/01/19 17:11:02 mrg Exp $
+#	$NetBSD: Makefile,v 1.17 2023/08/01 05:57:56 mrg Exp $
 
 REQUIRETOOLS=	yes
 NOLINT=		# defined
@@ -115,3 +115,6 @@ COPTS.archive.c+=	-Wno-error
 COPTS.sendmsg.c+=	-Wno-error
 COPTS.encoding.c+=	-Wno-pointer-arith	# sizeof(void)
 COPTS+=			-Wno-missing-prototypes
+
+# XXXGCC12
+OBJCOPTS.Object.m+=	-Wno-error=objc-root-class

Index: src/external/gpl3/gcc/lib/libstdc++-v3/Makefile
diff -u src/external/gpl3/gcc/lib/libstdc++-v3/Makefile:1.53 src/external/gpl3/gcc/lib/libstdc++-v3/Makefile:1.54
--- src/external/gpl3/gcc/lib/libstdc++-v3/Makefile:1.53	Fri Jul 22 21:51:08 2022
+++ src/external/gpl3/gcc/lib/libstdc++-v3/Makefile	Tue Aug  1 05:57:57 2023
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.53 2022/07/22 21:51:08 mrg Exp $
+#	$NetBSD: Makefile,v 1.54 2023/08/01 05:57:57 mrg Exp $
 
 REQUIRETOOLS=	yes
 NOLINT=		# defined
@@ -56,7 +56,7 @@ CWARNFLAGS.clang+=	-Wno-logical-op-paren
 .include "${.CURDIR}/arch/${LIBSTDCXX_MACHINE_ARCH}/defs.mk"
 
 SHLIB_MAJOR=	9
-SHLIB_MINOR=	0
+SHLIB_MINOR=	1
 
 SUBDIR=		include
 
@@ -87,8 +87,7 @@ CONF=		${DIST}/libstdc++-v3/config
 GLIBCPP_INCLUDE_DIR=	${DESTDIR}/usr/include/g++
 
 # Template instantiation bug workaround for -O<2/s
-COPTS.cp-demangle.c += -Wno-stack-protector
-COPTS.cp-demangle.c += -Wno-stack-protector
+COPTS.cp-demangle.cc += -Wno-stack-protector
 COPTS.fstream-inst.cc += -Wno-stack-protector
 COPTS.locale-inst.cc += -Wno-stack-protector
 COPTS.misc-inst.cc += -Wno-stack-protector
@@ -211,6 +210,10 @@ COPTS.ext-inst.cc+= -Wno-error
 COPTS.${f}.cc+= -fimplicit-templates ${G_GLIBCXX_ABI_FLAGS}
 .endfor
 
+# XXXGCC12
+# hits on sparc, sparc64, armv7 at least
+COPTS.floating_to_chars.cc+=	-Wno-error=unused-function
+
 .include <bsd.lib.mk>
 .include <bsd.subdir.mk>
 .include <bsd.info.mk>

Index: src/external/gpl3/gcc/usr.bin/Makefile
diff -u src/external/gpl3/gcc/usr.bin/Makefile:1.13 src/external/gpl3/gcc/usr.bin/Makefile:1.14
--- src/external/gpl3/gcc/usr.bin/Makefile:1.13	Fri Apr 23 22:50:06 2021
+++ src/external/gpl3/gcc/usr.bin/Makefile	Tue Aug  1 05:57:53 2023
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.13 2021/04/23 22:50:06 mrg Exp $
+#	$NetBSD: Makefile,v 1.14 2023/08/01 05:57:53 mrg Exp $
 
 NOOBJ=# defined
 
@@ -16,13 +16,13 @@ SUBDIR+=	host-libiberty .WAIT \
 		backend .WAIT \
 		frontend .WAIT \
 		common common-target .WAIT \
-		libcpp libdecnumber .WAIT \
+		libcody libcpp libdecnumber .WAIT \
 		gcov gcov-dump cc1 cc1obj cc1objplus cc1plus cpp g++ gcc \
-		lto1 lto-wrapper lto-dump \
-		include
-
+		lto1 lto-wrapper lto-dump
 .endif
 
+SUBDIR+=	include
+
 .include <bsd.subdir.mk>
 
 .else

Index: src/external/gpl3/gcc/usr.bin/Makefile.checksum
diff -u src/external/gpl3/gcc/usr.bin/Makefile.checksum:1.1 src/external/gpl3/gcc/usr.bin/Makefile.checksum:1.2
--- src/external/gpl3/gcc/usr.bin/Makefile.checksum:1.1	Sat Mar  1 10:00:49 2014
+++ src/external/gpl3/gcc/usr.bin/Makefile.checksum	Tue Aug  1 05:57:53 2023
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile.checksum,v 1.1 2014/03/01 10:00:49 mrg Exp $
+#	$NetBSD: Makefile.checksum,v 1.2 2023/08/01 05:57:53 mrg Exp $
 
 # Makefile fragment to build $PROG-checksum.  depends upon having
 # $PROG and $CHECKSUM_OBJS set before including.
@@ -6,17 +6,17 @@
 .ifndef _EXTERNAL_GPL3_GCC_USR_BIN_MAKEFILE_CHECKSUM_
 _EXTERNAL_GPL3_GCC_USR_BIN_MAKEFILE_CHECKSUM_=1
 
-CLEANFILES+=	${PROG}-checksum.c genchecksum genchecksum.lo checksum-options
+CLEANFILES+=	${PROG}-checksum.cc genchecksum genchecksum.lo checksum-options
 
-CPPFLAGS.genchecksum.c+=	-DGENERATOR_FILE -I${GCCARCH} -I${DIST}/include -I${BACKENDOBJ}
+CPPFLAGS.genchecksum.cc+=	-DGENERATOR_FILE -I${GCCARCH} -I${DIST}/include -I${BACKENDOBJ}
 
 genchecksum.lo:
 genchecksum: genchecksum.lo
 	${_MKTARGET_LINK}
-	${HOST_LINK.c} -o ${.TARGET} ${.ALLSRC} ${NBCOMPATLIB} ${HOSTLIBIBERTY}
+	${HOST_LINK.cc} -o ${.TARGET} ${.ALLSRC} ${NBCOMPATLIB} ${HOSTLIBIBERTY}
 
 # Actual backend Makefile should define CHECKSUM_OBJS appropriately.
-${PROG}-checksum.c: genchecksum ${CHECKSUM_OBJS} checksum-options
+${PROG}-checksum.cc: genchecksum ${CHECKSUM_OBJS} checksum-options
 	${_MKTARGET_CREATE}
 	./genchecksum ${CHECKSUM_OBJS} checksum-options >${.TARGET}.tmp && mv ${.TARGET}.tmp ${.TARGET}
 
Index: src/external/gpl3/gcc/usr.bin/Makefile.options
diff -u src/external/gpl3/gcc/usr.bin/Makefile.options:1.1 src/external/gpl3/gcc/usr.bin/Makefile.options:1.2
--- src/external/gpl3/gcc/usr.bin/Makefile.options:1.1	Sat Mar  1 10:00:49 2014
+++ src/external/gpl3/gcc/usr.bin/Makefile.options	Tue Aug  1 05:57:54 2023
@@ -1,15 +1,15 @@
-#	$NetBSD: Makefile.options,v 1.1 2014/03/01 10:00:49 mrg Exp $
+#	$NetBSD: Makefile.options,v 1.2 2023/08/01 05:57:54 mrg Exp $
 
 .ifndef _EXTERNAL_GPL3_GCC_USR_BIN_MAKEFILE_OPTIONS_
 _EXTERNAL_GPL3_GCC_USR_BIN_MAKEFILE_OPTIONS_=1
 
 # Common makefile fragment to build options*
 
-CLEANFILES+=	options.h options.c optionlist options-save.c
+CLEANFILES+=	options.h options.cc optionlist options-save.cc
 optionlist: ${G_ALL_OPT_FILES} ${GCCARCH}/defs.mk Makefile ${DIST}/gcc/opt-gather.awk
 	${TOOL_AWK} -f ${DIST}/gcc/opt-gather.awk ${G_ALL_OPT_FILES} > ${.TARGET}
 
-options.c: optionlist ${DIST}/gcc/opt-functions.awk ${DIST}/gcc/opt-read.awk \
+options.cc: optionlist ${DIST}/gcc/opt-functions.awk ${DIST}/gcc/opt-read.awk \
 		      ${DIST}/gcc/optc-gen.awk
 	${TOOL_AWK} -f ${DIST}/gcc/opt-functions.awk \
 		    -f ${DIST}/gcc/opt-read.awk \
@@ -17,7 +17,7 @@ options.c: optionlist ${DIST}/gcc/opt-fu
 		    -v header_name="config.h system.h coretypes.h options.h tm.h" \
 		< optionlist > ${.TARGET}
 
-options-save.c: optionlist ${DIST}/gcc/opt-functions.awk ${DIST}/gcc/opt-read.awk \
+options-save.cc: optionlist ${DIST}/gcc/opt-functions.awk ${DIST}/gcc/opt-read.awk \
 			   ${DIST}/gcc/optc-save-gen.awk
 	${TOOL_AWK} -f ${DIST}/gcc/opt-functions.awk \
 		    -f ${DIST}/gcc/opt-read.awk \
@@ -32,6 +32,6 @@ options.h: optionlist ${DIST}/gcc/opt-fu
 		    -f ${DIST}/gcc/opth-gen.awk \
 		< optionlist > ${.TARGET}
 
-options.o: options.c coretypes.h opts.h intl.h
+options.o: options.cc coretypes.h opts.h intl.h
 
 .endif

Index: src/external/gpl3/gcc/usr.bin/Makefile.driver
diff -u src/external/gpl3/gcc/usr.bin/Makefile.driver:1.2 src/external/gpl3/gcc/usr.bin/Makefile.driver:1.3
--- src/external/gpl3/gcc/usr.bin/Makefile.driver:1.2	Fri Sep  4 02:27:39 2020
+++ src/external/gpl3/gcc/usr.bin/Makefile.driver	Tue Aug  1 05:57:53 2023
@@ -1,19 +1,19 @@
-#	$NetBSD: Makefile.driver,v 1.2 2020/09/04 02:27:39 jakllsch Exp $
+#	$NetBSD: Makefile.driver,v 1.3 2023/08/01 05:57:53 mrg Exp $
 
 .ifndef _EXTERNAL_GPL3_GCC_USR_BIN_MAKEFILE_DRIVER_
 _EXTERNAL_GPL3_GCC_USR_BIN_MAKEFILE_DRIVER_=1
 
 # XXX
 .if ${GCC_MACHINE_ARCH} == "x86_64" || ${GCC_MACHINE_ARCH} == "i386"
-SRCS+=		driver-i386.c
+SRCS+=		driver-i386.cc
 .PATH:		${DIST}/gcc/config/i386
 .endif
 .if ${GCC_MACHINE_ARCH} == "powerpc" || ${GCC_MACHINE_ARCH} == "powerpc64"
-SRCS+=		driver-rs6000.c
+SRCS+=		driver-rs6000.cc
 .PATH:		${DIST}/gcc/config/rs6000
 .endif
 .if  ${MACHINE_CPU} == "aarch64"
-SRCS+=		driver-aarch64.c
+SRCS+=		driver-aarch64.cc
 .PATH:		${DIST}/gcc/config/aarch64
 .endif
 

Index: src/external/gpl3/gcc/usr.bin/Makefile.gcc-tool
diff -u src/external/gpl3/gcc/usr.bin/Makefile.gcc-tool:1.3 src/external/gpl3/gcc/usr.bin/Makefile.gcc-tool:1.4
--- src/external/gpl3/gcc/usr.bin/Makefile.gcc-tool:1.3	Fri Feb  1 10:34:18 2019
+++ src/external/gpl3/gcc/usr.bin/Makefile.gcc-tool	Tue Aug  1 05:57:53 2023
@@ -1,7 +1,7 @@
-#	$NetBSD: Makefile.gcc-tool,v 1.3 2019/02/01 10:34:18 mrg Exp $
+#	$NetBSD: Makefile.gcc-tool,v 1.4 2023/08/01 05:57:53 mrg Exp $
 
 PROG=	gcc-${GCC_TOOL}
-SRCS=	gcc-ar.c file-find.c
+SRCS=	gcc-ar.cc file-find.cc
 
 CPPFLAGS= \
 	-DPERSONALITY=\"${GCC_TOOL}\" \

Index: src/external/gpl3/gcc/usr.bin/Makefile.inc
diff -u src/external/gpl3/gcc/usr.bin/Makefile.inc:1.36 src/external/gpl3/gcc/usr.bin/Makefile.inc:1.37
--- src/external/gpl3/gcc/usr.bin/Makefile.inc:1.36	Wed Jul 12 07:35:15 2023
+++ src/external/gpl3/gcc/usr.bin/Makefile.inc	Tue Aug  1 05:57:53 2023
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile.inc,v 1.36 2023/07/12 07:35:15 mrg Exp $
+#	$NetBSD: Makefile.inc,v 1.37 2023/08/01 05:57:53 mrg Exp $
 
 .ifndef _EXTERNAL_GPL3_GCC_USR_BIN_MAKEFILE_INC_
 _EXTERNAL_GPL3_GCC_USR_BIN_MAKEFILE_INC_=1
@@ -55,46 +55,9 @@ HOSTLIBIBERTY=		${HOSTLIBIBERTYOBJ}/libi
 HOSTLIBCPPOBJ!=		cd ${.CURDIR}/../host-libcpp && ${PRINTOBJDIR}
 HOSTLIBCPP=		${HOSTLIBCPPOBJ}/libcpp/libcpp.a
 
-BASEVER!=		cat ${GNUHOSTDIST}/gcc/BASE-VER
-.if exists(${GNUHOSTDIST}/gcc/DEV-PHASE)
-DEVPHASE!=		cat ${GNUHOSTDIST}/gcc/DEV-PHASE
-.else
-DEVPHASE=
-.endif
-.if ${DEVPHASE} == "release" || ${DEVPHASE} == ""
-DATESTAMP=
-.else
-DATESTAMP!=		cat ${GNUHOSTDIST}/gcc/DATESTAMP
-.endif
-
-BASEVERSTR=		"\"$(BASEVER)\""
-.if !empty(DEVPHASE)
-DEVPHASESTR=		"\" $(DEVPHASE)\""
-.else
-DEVPHASESTR=		"\"\""
-.endif
-.if !empty(DATESTAMP)
-DATESTAMPSTR=		"\" $(DATESTAMP)\""
-.else
-DATESTAMPSTR=		"\"\""
-.endif
-
-.include "${TOP}/tools/gcc/gcc-version.mk"
-
-# XXX pull this out of our configs
-G_BUGURL=<http://www.NetBSD.org/support/send-pr.html>
-G_BUGURL_s="\"${G_BUGURL}\""
-G_PKGVERSION=(${NETBSD_GCC_VERSION}) 
-G_PKGVERSION_s="\"${G_PKGVERSION} \""
-
-VER_CPPFLAGS=	-DBASEVER="\"${BASEVER}"\" \
-		-DDATESTAMP=$(DATESTAMP_s) \
-		-DREVISION=$(REVISION_s) \
-		-DDEVPHASE=$(DEVPHASE_s) \
-		-DPKGVERSION=$(G_PKGVERSION_s) \
-		-DBUGURL=$(G_BUGURL_s)
+.include "${.PARSEDIR}/../Makefile.version_h"
 
-VERFILES=	cppbuiltin.c c-cppbuiltin.c gcc.c version.c
+VERFILES=	cppbuiltin.cc c-cppbuiltin.cc gcc.cc version.cc
 
 .for _f in ${VERFILES}
 CPPFLAGS.${_f} +=	${VER_CPPFLAGS}

Index: src/external/gpl3/gcc/usr.bin/backend/Makefile
diff -u src/external/gpl3/gcc/usr.bin/backend/Makefile:1.68 src/external/gpl3/gcc/usr.bin/backend/Makefile:1.69
--- src/external/gpl3/gcc/usr.bin/backend/Makefile:1.68	Sat Jun  3 21:31:46 2023
+++ src/external/gpl3/gcc/usr.bin/backend/Makefile	Tue Aug  1 05:57:54 2023
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.68 2023/06/03 21:31:46 lukem Exp $
+#	$NetBSD: Makefile,v 1.69 2023/08/01 05:57:54 mrg Exp $
 
 HOSTPROG_CXX=	1
 LIBISPRIVATE=	yes
@@ -8,7 +8,7 @@ LIBISPRIVATE=	yes
 
 LIB=		backend
 
-SRCS=		${G_OBJS:S,analyzer/,,} ${G_out_file:T} regsub.c
+SRCS=		${G_OBJS:S,analyzer/,,:S,rtl-ssa/,,} ${G_out_file:T} regsub.cc
 
 # XXX: something misses these.
 CLEANDIRFILES+=	${G_OBJS:.o=.d}
@@ -21,16 +21,17 @@ BOTH_CPPFLAGS+=	-I. -I${GCCARCH} ${G_ALL
 CPPFLAGS+=	${BOTH_CPPFLAGS} -DTARGET_NAME=\"${MACHINE_GNU_PLATFORM}\"
 HOST_CPPFLAGS+=	-I${HOST_LIBIBERTYOBJ}/libiberty
 HOST_CPPFLAGS+=	${BOTH_CPPFLAGS} -DGENERATOR_FILE
+DPSRCS+=	version.h
 DPSRCS+=	insn-attr.h insn-codes.h insn-config.h insn-flags.h tree-check.h
 DPSRCS+=	${DIST}/gcc/BASE-VER
 CPPFLAGS+=	-I${DIST}/libgcc
 CPPFLAGS+=	-I${.CURDIR}/../../lib/libgcc/libgcov/arch/${MACHINE_ARCH}
 
-CPPFLAGS.cppdefault.c+=	-DPREFIX=\"/usr\" \
-			-DNATIVE_SYSTEM_HEADER_DIR=\"${G_NATIVE_SYSTEM_HEADER_DIR}\"
-CPPFLAGS.lto-streamer-in.c+=	-DTARGET_MACHINE=\"${MACHINE_GNU_PLATFORM}\"
+CPPFLAGS.cppdefault.cc+=	-DPREFIX=\"/usr\" \
+				-DNATIVE_SYSTEM_HEADER_DIR=\"${G_NATIVE_SYSTEM_HEADER_DIR}\"
+CPPFLAGS.lto-streamer-in.cc+=	-DTARGET_MACHINE=\"${MACHINE_GNU_PLATFORM}\"
 
-HOST_CXXFLAGS+=	-std=gnu++98
+HOST_CXXFLAGS+=	-std=gnu++11
 
 HOST_LIBIBERTYOBJ!=	cd ${.CURDIR}/../host-libiberty && ${PRINTOBJDIR}
 
@@ -42,27 +43,27 @@ HOST_CC:=	${HOST_CXX}
 CC:=		${CXX}
 CFLAGS:=	${CXXFLAGS}
 
-# Check PREPROCESSOR_DEFINES for cppbuiltin.c and cppdefault.c
-CPPFLAGS.cppbuiltin.c+=	-DBASEVER="\"${BASEVER}"\"
+# Check PREPROCESSOR_DEFINES for cppbuiltin.cc and cppdefault.cc
+CPPFLAGS.cppbuiltin.cc+=	-DBASEVER="\"${BASEVER}"\"
 
 #
 # Independent generation programs.
 #
 CLEANFILES+=	gengenrtl genrtl.h \
-		gengtype gtyp-gen.h gtype-brig.h gtype-desc.c gtype-desc.h \
+		gengtype gtyp-gen.h gtype-brig.h gtype-desc.cc gtype-desc.h \
 		gtype-c.h gtype-cp.h gtype-f.h gtype-objc.h \
 		genflags genflags.h \
 		gencheck tree-check.h \
-		insn-preds.c genpreds tm-preds.h tm_p.h cs-tm_p.h \
+		insn-preds.cc genpreds tm-preds.h tm_p.h cs-tm_p.h \
 		auto-host.h \
 		gt-*.h *.o *.lo \
 		cs-config.h \
-		gcov-iov gcov-iov.h \
+		version.h \
 		gtype-go.h gtype.state \
 		pass-instances.def
 
 # XXX
-COPTS.varasm.c=			-Wno-error
+#COPTS.varasm.cc=		-Wno-error
 
 # XXX Override the normal rule to use HOST_COMPILE.cc
 .c.lo:
@@ -86,7 +87,7 @@ gengenrtl: gengenrtl.lo build-errors.lo
 	${_MKTARGET_LINK}
 	${HOST_LINK.cc} -o ${.TARGET} ${.ALLSRC} ${NBCOMPATLIB} ${HOSTLIBIBERTY}
 
-insn-preds.c: genpreds ${G_md_file}
+insn-preds.cc: genpreds ${G_md_file}
 	${_MKTARGET_CREATE}
 	./genpreds ${G_md_file} >${.TARGET}
 tm-preds.h: genpreds ${G_md_file}
@@ -104,7 +105,7 @@ CLEANFILES+=	gtyp-input.list.tmp
 # XXX
 CLEANFILES+=	gtype-lto.h gtype-objcp.h tm-constrs.h gtype-jit.h
 
-gtype-desc.c: gtype-desc.h
+gtype-desc.cc: gtype-desc.h
 gtype-desc.h: gengtype gtyp-input.list.tmp
 	${_MKTARGET_CREATE}
 	rm -f auto-host.h
@@ -118,17 +119,17 @@ gtype-desc.h: gengtype gtyp-input.list.t
 	# GCC 4.8 installs gtype-state and gengtype as a plugin
 
 # gengtype is the real need for options.h
-gengtype.lo gengtype-lex.lo gengtype-parse.lo gengtype-state.lo version.lo: ${HH} gtyp-gen.h config.h options.h
-gengtype: gengtype.lo gengtype-lex.lo gengtype-parse.lo gengtype-state.lo build-errors.lo version.lo
+gengtype.lo gengtype-lex.lo gengtype-parse.lo gengtype-state.lo: ${HH} gtyp-gen.h config.h options.h
+gengtype: gengtype.lo gengtype-lex.lo gengtype-parse.lo gengtype-state.lo build-errors.lo
 	${_MKTARGET_LINK}
 	${HOST_LINK.cc} -o ${.TARGET} ${.ALLSRC} ${NBCOMPATLIB} ${HOSTLIBIBERTY}
 
 # XXX fix this by properly marking all the files that should
 # XXX be built with -DGENERATOR_FILE
-COPTS.gengtype-lex.c=	-UGENERATOR_FILE -DHOST_GENERATOR_FILE
-COPTS.gengtype-parse.c=	-UGENERATOR_FILE -DHOST_GENERATOR_FILE
-COPTS.gengtype-state.c=	-UGENERATOR_FILE -DHOST_GENERATOR_FILE
-COPTS.gengtype.c=	-UGENERATOR_FILE -DHOST_GENERATOR_FILE
+COPTS.gengtype-lex.cc=		-UGENERATOR_FILE -DHOST_GENERATOR_FILE
+COPTS.gengtype-parse.cc=	-UGENERATOR_FILE -DHOST_GENERATOR_FILE
+COPTS.gengtype-state.cc=	-UGENERATOR_FILE -DHOST_GENERATOR_FILE
+COPTS.gengtype.cc=		-UGENERATOR_FILE -DHOST_GENERATOR_FILE
 
 gtyp-gen.h: Makefile
 	${_MKTARGET_CREATE}
@@ -149,7 +150,7 @@ gtyp-gen.h: Makefile
 	echo "NULL };"							; \
 	) >${.TARGET}
 
-insn-modes.c: genmodes
+insn-modes.cc: genmodes
 	${_MKTARGET_CREATE}
 	./genmodes >${.TARGET}
 insn-modes.h-test: genmodes
@@ -160,7 +161,7 @@ insn-modes.h-test: genmodes
 		echo "Checked in insn-modes.h does not match; rerun mknative-gcc." 1>&2
 		false
 	fi
-min-insn-modes.c: genmodes
+min-insn-modes.cc: genmodes
 	${_MKTARGET_CREATE}
 	./genmodes -m >${.TARGET}
 insn-modes-inline.h: genmodes
@@ -171,28 +172,22 @@ genmodes: genmodes.lo build-errors.lo
 	${_MKTARGET_LINK}
 	${HOST_LINK.cc} -o ${.TARGET} ${.ALLSRC} ${NBCOMPATLIB} ${HOSTLIBIBERTY}
 
-CLEANFILES+=	genmodes insn-modes.c insn-modes.h-test min-insn-modes.c insn-modes-inline.h
+CLEANFILES+=	genmodes insn-modes.cc insn-modes.h-test min-insn-modes.cc insn-modes-inline.h
 
-gimple-match.c: genmatch cfn-operators.pd
-	./genmatch --gimple ${GNUHOSTDIST}/gcc/match.pd > gimple-match.c.tmp
-	mv gimple-match.c.tmp gimple-match.c
-generic-match.c: genmatch cfn-operators.pd
-	./genmatch --generic ${GNUHOSTDIST}/gcc/match.pd > generic-match.c.tmp
-	mv generic-match.c.tmp generic-match.c
+gimple-match.cc: genmatch cfn-operators.pd
+	./genmatch --gimple ${GNUHOSTDIST}/gcc/match.pd > gimple-match.cc.tmp
+	mv gimple-match.cc.tmp gimple-match.cc
+generic-match.cc: genmatch cfn-operators.pd
+	./genmatch --generic ${GNUHOSTDIST}/gcc/match.pd > generic-match.cc.tmp
+	mv generic-match.cc.tmp generic-match.cc
 genmatch.lo: ${HH_NORTL} ${G_GGC_H} case-cfn-macros.h
 genmatch: genmatch.lo build-errors.lo build-vec.lo build-hash-table.lo build-sort.lo
 	${_MKTARGET_LINK}
 	${HOST_LINK.cc} -o ${.TARGET} ${.ALLSRC} ${NBCOMPATLIB} ${HOSTLIBCPP} ${HOSTLIBIBERTY}
 
-CLEANFILES+=	genmatch gimple-match.c generic-match.c
+CLEANFILES+=	genmatch gimple-match.cc generic-match.cc
 
-gcov-iov.h: gcov-iov
-	${_MKTARGET_CREATE}
-	./gcov-iov "${BASEVER}" "${DEVPHASE}" >${.TARGET}
-gcov-iov.lo: ${HH_NORTL}
-gcov-iov: gcov-iov.lo
-	${_MKTARGET_CREATE}
-	${HOST_LINK.cc} -o ${.TARGET} ${.ALLSRC} ${NBCOMPATLIB} ${HOSTLIBIBERTY}
+.include "${.PARSEDIR}/../../Makefile.version_h"
 
 tm_p.h: Makefile tm-preds.h
 	${_MKTARGET_CREATE}
@@ -204,36 +199,7 @@ tm_p.h: Makefile tm-preds.h
 ${G_OBJS} ${G_OBJS:.o=.d}:	tm.h tm_p.h insn-opinit.h
 
 .include "../Makefile.options"
-
-# Yuck, we have to run configure to generate this one...
-# We use ORIGHOST_CC here because GCC's ./configure expects (and
-# depends upon) it.
-CLEANFILES+=	auto-build.h
-HOST_CFLAGS+= -I${.OBJDIR}
-HOST_CXXFLAGS+= -I${.OBJDIR}
-
-# Set this to "true" to leave .ab around
-HOST_AB_CLEAN?=	rm -rf .ab
-
-auto-build.h: gmp.h Makefile
-	${_MKTARGET_CREATE}
-	rm -rf .ab && \
-	mkdir .ab && \
-	(cd .ab && \
-		AWK=${TOOL_AWK:Q} \
-		CC=${ORIGHOST_CC:Q} CFLAGS=${HOST_CFLAGS:Q} \
-		CPPFLAGS=${HOST_CPPFLAGS:Q} \
-		CXX=${HOST_CXX:Q} CXXFLAGS=${HOST_CXXFLAGS:Q} \
-		MAKE=${TOOL_GMAKE:Q} \
-		CONFIG_SHELL=${HOST_SH:Q} \
-		gcc_cv_ld=${LD:Q} \
-		gcc_cv_as=${AS:Q} \
-		${HOST_SH} ${GNUHOSTDIST}/gcc/configure \
-			--build=`${HOST_SH} ${GNUHOSTDIST}/config.guess` \
-			--host=`${HOST_SH} ${GNUHOSTDIST}/config.guess` \
-			--target=${MACHINE_GNU_PLATFORM} && \
-		mv auto-host.h ../auto-build.h) && \
-	${HOST_AB_CLEAN}
+.include "../../Makefile.autobuild_h"
 
 pass-instances.def: passes.def gen-pass-instances.awk
 	${_MKTARGET_CREATE}
@@ -246,73 +212,73 @@ CLEANFILES+=	pass-instances.def
 # by the genfoo programs.
 #
 
-build-rtl.c: rtl.c \
+build-rtl.cc: rtl.cc \
   ${G_RTL_H} real.h ${G_GCC_H} ${G_RTL_BASE_H} ${G_GGC_H} errors.h
 	${_MKTARGET_CREATE}
-	rm -f build-rtl.c
+	rm -f build-rtl.cc
 	${TOOL_SED} -e 's/<config[.]h/hconfig.h/' \
-		${GNUHOSTDIST}/gcc/rtl.c >${.TARGET}
+		${GNUHOSTDIST}/gcc/rtl.cc >${.TARGET}
 build-rtl.lo: ${HH} insn-constants.h
-CLEANFILES+=	build-rtl.c
+CLEANFILES+=	build-rtl.cc
 
-build-print-rtl.c: print-rtl.c \
+build-print-rtl.cc: print-rtl.cc \
   ${G_RTL_BASE_H} ${G_GTM_H} hard-reg-set.h
 	${_MKTARGET_CREATE}
-	rm -f build-print-rtl.c
+	rm -f build-print-rtl.cc
 	${TOOL_SED} -e 's/<config[.]h/hconfig.h/' \
-		${GNUHOSTDIST}/gcc/print-rtl.c >${.TARGET}
+		${GNUHOSTDIST}/gcc/print-rtl.cc >${.TARGET}
 build-print-rtl.lo: ${HH}
-build-print-rtl.o: print-rtl.c $(BCONFIG_H) $(SYSTEM_H) coretypes.h     \
+build-print-rtl.o: print-rtl.cc $(BCONFIG_H) $(SYSTEM_H) coretypes.h     \
   ${GTM_H} ${G_RTL_BASE_H}
-CLEANFILES+=	build-print-rtl.c
+CLEANFILES+=	build-print-rtl.cc
 
-build-bitmap.c: bitmap.c \
+build-bitmap.cc: bitmap.cc \
   ${G_RTL_H} flags.h ${G_BASIC_BLOCK_H} ${REGS_H} ${G_GCC_H} ${G_GGC_H}
 	${_MKTARGET_CREATE}
-	rm -f build-bitmap.c
+	rm -f build-bitmap.cc
 	${TOOL_SED} -e 's/<config[.]h/hconfig.h/' \
-		${GNUHOSTDIST}/gcc/bitmap.c >${.TARGET}
+		${GNUHOSTDIST}/gcc/bitmap.cc >${.TARGET}
 build-bitmap.lo: ${HH}
-CLEANFILES+=	build-bitmap.c
+CLEANFILES+=	build-bitmap.cc
 
-build-errors.c: errors.c errors.h
+build-errors.cc: errors.cc errors.h
 	${_MKTARGET_CREATE}
-	rm -f build-errors.c
-	cat ${GNUHOSTDIST}/gcc/errors.c >${.TARGET}
+	rm -f build-errors.cc
+	cat ${GNUHOSTDIST}/gcc/errors.cc >${.TARGET}
 build-errors.lo: ${HH_NORTL}
-CLEANFILES+=	build-errors.c
+CLEANFILES+=	build-errors.cc
 
-build-varray.c: varray.c \
+build-varray.cc: varray.cc \
   ${G_RTL_H} ${G_GCC_H} ${TREE_H} bitmap.h errors.h
 	${_MKTARGET_CREATE}
-	rm -f build-varray.c
+	rm -f build-varray.cc
 	${TOOL_SED} -e 's/<config[.]h/hconfig.h/' \
-		${GNUHOSTDIST}/gcc/varray.c >${.TARGET}
+		${GNUHOSTDIST}/gcc/varray.cc >${.TARGET}
 build-varray.lo: ${HH} gtype-desc.h
-CLEANFILES+=	build-varray.c
+CLEANFILES+=	build-varray.cc
 
-build-ggc-none.c: ggc-none.c \
+build-ggc-none.cc: ggc-none.cc \
   ${G_GCC_H} gtype-desc.h
 	${_MKTARGET_CREATE}
-	rm -f build-ggc-none.c
+	rm -f build-ggc-none.cc
 	${TOOL_SED} -e 's/<config[.]h/hconfig.h/' \
-		${GNUHOSTDIST}/gcc/ggc-none.c >${.TARGET}
+		${GNUHOSTDIST}/gcc/ggc-none.cc >${.TARGET}
 build-ggc-none.lo: ${HH}
-CLEANFILES+=	build-ggc-none.c
+CLEANFILES+=	build-ggc-none.cc
 
-build-hash-table.c: hash-table.c hash-table.h ${G_HASH_TABLE_H} ${HH}
+build-hash-table.cc: hash-table.cc hash-table.h ${G_HASH_TABLE_H} ${HH}
 	${_MKTARGET_CREATE}
-	rm -f build-hash-table.c
-	cat ${GNUHOSTDIST}/gcc/hash-table.c >${.TARGET}
+	rm -f build-hash-table.cc
+	cat ${GNUHOSTDIST}/gcc/hash-table.cc >${.TARGET}
 build-hash-table.lo: ${HH_NORTL}
-CLEANFILES+=	build-hash-table.c
+CLEANFILES+=	build-hash-table.cc
 
-build-vec.c: vec.c vec.h ${G_HASH_TABLE_H} ${HH}
+build-vec.cc: vec.cc vec.h ${G_HASH_TABLE_H} ${HH}
 	${_MKTARGET_CREATE}
-	rm -f build-vec.c
-	cat ${GNUHOSTDIST}/gcc/vec.c >${.TARGET}
+	rm -f build-vec.cc
+	cat ${GNUHOSTDIST}/gcc/vec.cc >${.TARGET}
 build-vec.lo: ${HH_NORTL}
-CLEANFILES+=	build-vec.c
+CLEANFILES+=	build-vec.cc
 
 build-sort.cc: sort.cc sort.h ${G_GGC_H}
 	${_MKTARGET_CREATE}
@@ -326,7 +292,7 @@ build-genattrtab.o: ${G_GGC_H}
 #
 # The normal insn-foo generators
 #
-.for f in gensupport.c read-rtl.c dummy-conditions.c read-md.c
+.for f in gensupport.cc read-rtl.cc dummy-conditions.cc read-md.cc
 ${f:R}.lo: ${HH}
 .endfor
 
@@ -346,7 +312,7 @@ GENPROG_RTL_DEPENDS=	${G_BUILD_RTL:.o=.l
 .for f in attr attr-common attrtab automata codes conditions config emit \
 	  extract flags opinit output peep preds recog mddump condmd \
 	  target-def cfn-macros
-gen${f}.lo: ${HH} gen${f}.c ${G_RTL_BASE_H} build-sort.lo
+gen${f}.lo: ${HH} gen${f}.cc ${G_RTL_BASE_H} build-sort.lo
 gen${f}: gen${f}.lo ${GENPROG_RTL_DEPENDS} 
 	${_MKTARGET_LINK}
 	${HOST_LINK.cc} -o ${.TARGET} ${.ALLSRC} ${NBCOMPATLIB} ${HOSTLIBIBERTY} ${LDFLAGS.${.TARGET}} build-sort.lo
@@ -354,7 +320,7 @@ CLEANFILES+=	gen${f} gen${f}.lo
 .endfor
 
 .for f in mddeps constants enums
-gen${f}.lo: ${HH} gen${f}.c ${G_RTL_BASE_H}
+gen${f}.lo: ${HH} gen${f}.cc ${G_RTL_BASE_H}
 gen${f}: gen${f}.lo ${GENPROG_READER_DEPENDS}
 	${_MKTARGET_LINK}
 	${HOST_LINK.cc} -o ${.TARGET} ${.ALLSRC} ${NBCOMPATLIB} ${HOSTLIBIBERTY} ${LDFLAGS.${.TARGET}}
@@ -362,7 +328,7 @@ CLEANFILES+=	gen${f} gen${f}.lo
 .endfor
 
 .for f in check checksum
-gen${f}.lo: ${HH} gen${f}.c ${G_RTL_BASE_H}
+gen${f}.lo: ${HH} gen${f}.cc ${G_RTL_BASE_H}
 gen${f}: gen${f}.lo
 	${_MKTARGET_LINK}
 	${HOST_LINK.cc} -o ${.TARGET} ${.ALLSRC} ${NBCOMPATLIB} ${HOSTLIBIBERTY} ${LDFLAGS.${.TARGET}}
@@ -381,7 +347,7 @@ CLEANFILES+=	gen${f} gen${f}.lo
 
 # RTL based files
 .for f in attr.h attr-common.h codes.h config.h flags.h \
-	  automata.c emit.c extract.c output.c peep.c recog.c \
+	  automata.cc emit.cc extract.cc output.cc peep.cc recog.cc \
 	  target-def.h
 insn-${f}: gen${f:R} ${G_md_file} insn-conditions.md
 	${_MKTARGET_CREATE}
@@ -390,18 +356,18 @@ CLEANFILES+=	insn-${f}
 .endfor
 
 # normal files
-.for f in constants.h enums.c
+.for f in constants.h enums.cc
 insn-${f}: gen${f:R} ${G_md_file}
 	${_MKTARGET_CREATE}
 	./gen${f:R} ${G_md_file} >${.TARGET}
 CLEANFILES+=	insn-${f}
 .endfor
 
-# genconditions outputs gencondmd.c
-gencondmd.c: genconditions ${G_md_file}
+# genconditions outputs gencondmd.cc
+gencondmd.cc: genconditions ${G_md_file}
 	${_MKTARGET_CREATE}
 	./genconditions ${G_md_file} >${.TARGET}
-CLEANFILES+=	gencondmd.c
+CLEANFILES+=	gencondmd.cc
 
 # gencheck outputs tree-check.h
 tree-check.h: gencheck
@@ -410,25 +376,25 @@ tree-check.h: gencheck
 CLEANFILES+=	tree-check.h
 
 # genattrtab has three output files
-insn-dfatab.c insn-latencytab.c: insn-attrtab.c
+insn-dfatab.cc insn-latencytab.cc: insn-attrtab.cc
 	cp -p ${.TARGET}.tmp ${.TARGET}
-insn-attrtab.c: genattrtab ${G_md_file} insn-conditions.md 
+insn-attrtab.cc: genattrtab ${G_md_file} insn-conditions.md 
 	${_MKTARGET_CREATE}
 	./genattrtab ${G_md_file} insn-conditions.md \
-		-A${.TARGET}.tmp -Dinsn-dfatab.c.tmp -Linsn-latencytab.c.tmp && \
+		-A${.TARGET}.tmp -Dinsn-dfatab.cc.tmp -Linsn-latencytab.cc.tmp && \
 	mv ${.TARGET}.tmp ${.TARGET}
-CLEANFILES+=	insn-attrtab.c insn-dfatab.c insn-latencytab.c \
-		insn-dfatab.c.tmp insn-latencytab.c.tmp
+CLEANFILES+=	insn-attrtab.cc insn-dfatab.cc insn-latencytab.cc \
+		insn-dfatab.cc.tmp insn-latencytab.cc.tmp
 
 # genopinit has two output files
-insn-opinit.h: insn-opinit.c
+insn-opinit.h: insn-opinit.cc
 	cp -p ${.TARGET}.tmp ${.TARGET}
-insn-opinit.c: genopinit ${G_md_file} insn-conditions.md
+insn-opinit.cc: genopinit ${G_md_file} insn-conditions.md
 	${_MKTARGET_CREATE}
 	./genopinit ${G_md_file} insn-conditions.md \
 		-hinsn-opinit.h.tmp -c${.TARGET}.tmp && \
 	mv ${.TARGET}.tmp ${.TARGET}
-CLEANFILES+=	insn-opinit.h insn-opinit.c insn-opinit.h.tmp
+CLEANFILES+=	insn-opinit.h insn-opinit.cc insn-opinit.h.tmp
 
 LDFLAGS.genautomata+=	-lm
 
@@ -447,12 +413,12 @@ cfn-operators.pd: gencfn-macros
 CLEANFILES+=	case-cfn-macros.h.tmp case-cfn-macros.h \
 		cfn-operators.pd.tmp cfn-operators.pd
 
-CASECFNDEPS=	aarch64-builtins.c arm-builtins.c i386.c rs6000.c \
-		riscv-builtins.c builtins.c \
-		fold-const.c tree-ssa-math-opts.c tree-ssa-reassoc.c \
-		tree-vect-patterns.c tree-vrp.c generic-match-head.c \
-		gimple-match-head.c ChangeLog-2015 fold-const-call.c \
-		gimple-ssa-backprop.c
+CASECFNDEPS=	aarch64-builtins.cc arm-builtins.cc i386.cc rs6000.cc \
+		riscv-builtins.cc builtins.cc \
+		fold-const.cc tree-ssa-math-opts.cc tree-ssa-reassoc.cc \
+		tree-vect-patterns.cc tree-vrp.cc generic-match-head.cc \
+		gimple-match-head.cc fold-const-call.cc \
+		gimple-ssa-backprop.cc
 ${CASECFNDEPS}: case-cfn-macros.h
 
 aarch64-builtin-iterators.h: ${DIST}/gcc/config/aarch64/geniterators.sh \
@@ -477,18 +443,18 @@ ggc-none.o: gtype-desc.h
 insn-attrtab.o: insn-config.h
 insn-extract.o: insn-config.h
 toplev.d toplev.o: options.h
-coverage.d: gcov-iov.h
-gcov-io.h: gcov-iov.h
+coverage.d: version.h
+gcov-io.h: version.h
 cgraph.d cgraphunit.d cgraphunit.o: gcov-io.h
 vec.lo: gtype-desc.h
 insn-emit.d insn-emit.o: tm-constrs.h
 insn-attr.h: insn-attr-common.h
-gcov-io.h: gcov-iov.h
+gcov-io.h: version.h
 df-scan.d df-scan.o: target-hooks-def.h
 read-md.d read-md.o read-md.lo: auto-build.h
 hash-table.d hash-table.o hash-table.lo: auto-build.h gtype-desc.h
 gencfn-macros.d gencfn-macros.o gencfn-macros.lo: gtype-desc.h
-pass_manager.h passes.c: pass-instances.def
+pass_manager.h passes.cc: pass-instances.def
 context.d coverage.d lto-cgraph.d passes.d statistics.d toplev.d cgraphunit.d: pass_manager.h
 context.o coverage.o lto-cgraph.o passes.o statistics.o toplev.o cgraphunit.o: pass_manager.h
 insn-opinit.o insn-opinit.d: insn-flags.h
@@ -506,20 +472,20 @@ ${_f}.o ${_f}.d: insn-codes.h insn-confi
 ${_f}.o ${_f}.d: insn-constants.h
 .endfor
 .for _f in data-streamer data-streamer-out coverage gcov-dump gcov-io \
-	   gcov-iov gcov libgcov lto-cgraph mcf modulo-sched profile value-prof
+	   gcov libgcov lto-cgraph mcf modulo-sched profile value-prof
 ${_f}.o ${_f}.d: gcov-io.h
 .endfor
 
-${G_out_file:T:.c=.o}: insn-target-def.h target-hooks-def.h tm-constrs.h
+${G_out_file:T:.cc=.o}: insn-target-def.h target-hooks-def.h tm-constrs.h
 
 # XXX make all hooks generated for now.
 final.o: target-hooks-def.h c-family/c-target-hooks-def.h common/common-target-hooks-def.h
 
-COPTS.ira-color.c+= -Wno-error=int-in-bool-context
+#COPTS.ira-color.cc+= -Wno-error=int-in-bool-context
 
 .if ${MACHINE_CPU} == "arm"
-# XXX insn-recog.c:10304:7: error: this decimal constant is unsigned only in ISO C90 [-Werror]
-COPTS.insn-recog.c+=-Wno-error
+# XXX insn-recog.cc:10304:7: error: this decimal constant is unsigned only in ISO C90 [-Werror]
+#COPTS.insn-recog.cc+=-Wno-error
 .endif
 
 .if ${GCC_MACHINE_ARCH} == "i386" || ${GCC_MACHINE_ARCH} == "x86_64"
@@ -528,10 +494,10 @@ i386.d i386.o: pass_manager.h
 
 .if ${MACHINE_CPU} == "mips"
 # XXX mips.md:3474:11: error: this decimal constant is unsigned only in ISO C90 [-Werror]
-COPTS.insn-recog.c+=-Wno-error
+#COPTS.insn-recog.cc+=-Wno-error
 .endif
 
-.if ${GCC_MACHINE_ARCH} == "vax"
+.if ${GCC_MACHINE_ARCH} == "vax" && 0
 CPPFLAGS+=-I${.CURDIR}/../../lib/libgcc/libgcov/arch/${GCC_MACHINE_ARCH}
 COPTS.builtins.c+=-O0
 COPTS.calls.c+=-O0
@@ -595,30 +561,34 @@ COPTS.vr-values.c+=-O0
 COPTS.web.c+=-O0
 COPTS.wide-int-range.cc+=-O0
 COPTS.wide-int.cc+=-O0
-.else
-COPTS.tree.c=	${${ACTIVE_CC} == "clang" :? -O0 :}
 .endif
 
+COPTS.tree.cc+=	${${ACTIVE_CC} == "clang" :? -O0 :}
+
 CFLAGS+=	-Wno-stack-protector
 
-COPTS.dwarf2out.c+=${CC_WNO_MAYBE_UNINITIALIZED}
+#COPTS.dwarf2out.cc+=${CC_WNO_MAYBE_UNINITIALIZED}
 
 .if ${GCC_MACHINE_ARCH} == "m68000" || ${GCC_MACHINE_ARCH} == "m68k" || \
 	${GCC_MACHINE_ARCH} == "coldfire"
-COPTS.tree-loop-distribution.c+=-O2
-COPTS.generic-match.c+=-fno-jump-tables
-COPTS.gimple-match.c+=-fno-jump-tables
+#COPTS.tree-loop-distribution.cc+=-O2
+#COPTS.generic-match.cc+=-fno-jump-tables
+#COPTS.gimple-match.cc+=-fno-jump-tables
 .endif
 
+# XXXGCC12
+COPTS.diagnostic-manager.cc+=	-Wno-format-extra-args -Wno-format
+
 # Don't fight with decimal128Local.h.
 # The GCC build only ignores the warning?
-COPTS.dfp.c+=	-fno-strict-aliasing
+COPTS.dfp.cc+=	-fno-strict-aliasing
 
 CFLAGS+= -fno-exceptions -fno-rtti -fasynchronous-unwind-tables
 
 .PATH: ${DIST}/gcc ${DIST}/libiberty ${GCCARCH} ${G_out_file:H} ${DIST}/include
 .PATH: ${DIST}/gcc/config
 .PATH: ${DIST}/gcc/analyzer
+.PATH: ${DIST}/gcc/rtl-ssa
 .if ${MACHINE_CPU} == "aarch64"
 .PATH: ${DIST}/gcc/config/arm
 .endif

Index: src/external/gpl3/gcc/usr.bin/cc1/Makefile
diff -u src/external/gpl3/gcc/usr.bin/cc1/Makefile:1.20 src/external/gpl3/gcc/usr.bin/cc1/Makefile:1.21
--- src/external/gpl3/gcc/usr.bin/cc1/Makefile:1.20	Fri Apr 23 22:50:06 2021
+++ src/external/gpl3/gcc/usr.bin/cc1/Makefile	Tue Aug  1 05:57:54 2023
@@ -1,8 +1,8 @@
-#	$NetBSD: Makefile,v 1.20 2021/04/23 22:50:06 mrg Exp $
+#	$NetBSD: Makefile,v 1.21 2023/08/01 05:57:54 mrg Exp $
 
 PROG=		cc1
-SRCS=		${G_C_OBJS:S,c-family/,,:S,c/,,:S,known-headers.o,known-headers.cc,:S,c-spellcheck.o,c-spellcheck.cc,:Nlibcpp.a:.o=.c}
-SRCS+=		main.c ${PROG}-checksum.c
+SRCS=		${G_C_OBJS:S,c-family/,,:S,c/,,:S,known-headers.o,known-headers.cc,:S,c-spellcheck.o,c-spellcheck.cc,:Nlibcpp.a:.o=.cc}
+SRCS+=		main.cc ${PROG}-checksum.cc
 CPPFLAGS+=	-DPREFIX=\"/usr\"
 
 .include "../Makefile.backend"
@@ -26,27 +26,28 @@ CHECKSUM_OBJS=	${BACKENDOBJ}/libbackend.
 # XXX check this out, probably need it for plugins?
 # LDFLAGS+=	-rdynamic
 
-COPTS.c-ada-spec.c=	-Wno-stack-protector
-COPTS.c-attribs.c=	-Wno-stack-protector
-COPTS.c-aux-info.c=	-Wno-stack-protector
-COPTS.c-common.c=	-Wno-stack-protector
-COPTS.c-cppbuiltin.c=	-Wno-stack-protector
-COPTS.c-decl.c=		-Wno-stack-protector
-COPTS.c-format.c=	-Wno-stack-protector
-COPTS.c-format.h=	-Wno-stack-protector
-COPTS.c-lex.c=		-Wno-stack-protector
-COPTS.c-opts.c=		-Wno-stack-protector
-COPTS.c-ppoutput.c=	-Wno-stack-protector
-COPTS.c-pragma.c=	-Wno-stack-protector
-COPTS.c-typeck.c=	-Wno-stack-protector
+.if 0
+COPTS.c-ada-spec.cc=	-Wno-stack-protector
+COPTS.c-attribs.cc=	-Wno-stack-protector
+COPTS.c-aux-info.cc=	-Wno-stack-protector
+COPTS.c-common.cc=	-Wno-stack-protector
+COPTS.c-cppbuiltin.cc=	-Wno-stack-protector
+COPTS.c-decl.cc=	-Wno-stack-protector
+COPTS.c-format.cc=	-Wno-stack-protector
+COPTS.c-lex.cc=		-Wno-stack-protector
+COPTS.c-opts.cc=	-Wno-stack-protector
+COPTS.c-ppoutput.cc=	-Wno-stack-protector
+COPTS.c-pragma.cc=	-Wno-stack-protector
+COPTS.c-typeck.cc=	-Wno-stack-protector
+.endif
 
-CPPFLAGS.default-c.c+=	-I${BACKENDOBJ}
+CPPFLAGS.default-c.cc+=	-I${BACKENDOBJ}
 
 .if ${MACHINE_CPU} == "sh3"
 BUILDSYMLINKS+= ${GNUHOSTDIST}/gcc/config/sh/sh-c.cc sh-c.c
 .endif
 
-.if ${MACHINE_CPU} == "vax"
+.if ${MACHINE_CPU} == "vax" && 0
 COPTS.c-decl.c+=-O0
 COPTS.c-typeck.c+=-O0
 COPTS.c-array-notation.c+=-O0
@@ -58,7 +59,7 @@ COPTS.cc1-checksum.c+=-O0
 .endif
 
 .if ${MACHINE_ARCH} == "mipseb" || ${MACHINE_ARCH} == "mipsel"
-COPTS.c-common.c+=-O3
+#COPTS.c-common.cc+=-O3
 .endif
 
 LDADD+=	${LIBMPC} ${LIBMPFR} ${LIBGMP} -lintl -lz -lm

Index: src/external/gpl3/gcc/usr.bin/cc1obj/Makefile
diff -u src/external/gpl3/gcc/usr.bin/cc1obj/Makefile:1.18 src/external/gpl3/gcc/usr.bin/cc1obj/Makefile:1.19
--- src/external/gpl3/gcc/usr.bin/cc1obj/Makefile:1.18	Fri Apr 23 22:50:06 2021
+++ src/external/gpl3/gcc/usr.bin/cc1obj/Makefile	Tue Aug  1 05:57:54 2023
@@ -1,12 +1,12 @@
-#	$NetBSD: Makefile,v 1.18 2021/04/23 22:50:06 mrg Exp $
+#	$NetBSD: Makefile,v 1.19 2023/08/01 05:57:54 mrg Exp $
 
 MYOBJS=		${G_OBJC_OBJS} ${G_C_AND_OBJC_OBJS} 
 PROG=		cc1obj
-SRCS=		${MYOBJS:S,objc/,,:S,c-family/,,:S,c/,,:S,known-headers.o,known-headers.cc,:S,c-spellcheck.o,c-spellcheck.cc,:Nlibcpp.a:.o=.c}
-SRCS+=		main.c ${PROG}-checksum.c
+SRCS=		${MYOBJS:S,objc/,,:S,c-family/,,:S,c/,,:S,known-headers.o,known-headers.cc,:S,c-spellcheck.o,c-spellcheck.cc,:Nlibcpp.a:.o=.cc}
+SRCS+=		main.cc ${PROG}-checksum.cc
 
 CPPFLAGS+=	-I${DIST}/gcc/objc
-CPPFLAGS.prefix.c+=	-DPREFIX=\"/usr\"
+CPPFLAGS.prefix.cc+=	-DPREFIX=\"/usr\"
 
 .include "../Makefile.backend"
 .include "../Makefile.backtrace"
@@ -29,22 +29,24 @@ CHECKSUM_OBJS=	${BACKENDOBJ}/libbackend.
 # XXX check this out
 # LDFLAGS+=	-rdynamic
 
-COPTS.c-ada-spec.c+=			-Wno-stack-protector
-COPTS.c-attribs.c+=			-Wno-stack-protector
-COPTS.c-aux-info.c+=			-Wno-stack-protector
-COPTS.c-common.c+=			-Wno-stack-protector
-COPTS.c-cppbuiltin.c+=			-Wno-stack-protector
-COPTS.c-decl.c+=			-Wno-stack-protector
-COPTS.c-format.c+=			-Wno-stack-protector
-COPTS.c-lex.c+=				-Wno-stack-protector
-COPTS.c-ppoutput.c+=			-Wno-stack-protector
-COPTS.c-pragma.c+=			-Wno-stack-protector
-COPTS.c-typeck.c+=			-Wno-stack-protector
-COPTS.objc-act.c+=			-Wno-stack-protector
-COPTS.objc-gnu-runtime-abi-01.c+=	-Wno-stack-protector
-COPTS.objc-next-runtime-abi-01.c+=	-Wno-stack-protector
+.if 0
+COPTS.c-ada-spec.cc+=			-Wno-stack-protector
+COPTS.c-attribs.cc+=			-Wno-stack-protector
+COPTS.c-aux-info.cc+=			-Wno-stack-protector
+COPTS.c-common.cc+=			-Wno-stack-protector
+COPTS.c-cppbuiltin.cc+=			-Wno-stack-protector
+COPTS.c-decl.cc+=			-Wno-stack-protector
+COPTS.c-format.cc+=			-Wno-stack-protector
+COPTS.c-lex.cc+=			-Wno-stack-protector
+COPTS.c-ppoutput.cc+=			-Wno-stack-protector
+COPTS.c-pragma.cc+=			-Wno-stack-protector
+COPTS.c-typeck.cc+=			-Wno-stack-protector
+COPTS.objc-act.cc+=			-Wno-stack-protector
+COPTS.objc-gnu-runtime-abi-01.cc+=	-Wno-stack-protector
+COPTS.objc-next-runtime-abi-01.cc+=	-Wno-stack-protector
+.endif
 
-.if ${MACHINE_ARCH} == "vax"
+.if ${MACHINE_ARCH} == "vax" && 0
 COPTS.c-decl.c+=-O0
 COPTS.c-typeck.c+=-O0
 COPTS.c-array-notation.c+=-O0
@@ -56,7 +58,7 @@ COPTS.cc1obj-checksum.c+=-O0
 .endif
 
 .if ${MACHINE_ARCH} == "mipseb" || ${MACHINE_ARCH} == "mipsel"
-COPTS.c-common.c+=-O3
+#COPTS.cc-common.cc+=-O3
 .endif
 
 LDADD+=	${LIBMPC} ${LIBMPFR} ${LIBGMP} -lintl -lz -lm

Index: src/external/gpl3/gcc/usr.bin/cc1objplus/Makefile
diff -u src/external/gpl3/gcc/usr.bin/cc1objplus/Makefile:1.3 src/external/gpl3/gcc/usr.bin/cc1objplus/Makefile:1.4
--- src/external/gpl3/gcc/usr.bin/cc1objplus/Makefile:1.3	Tue Apr 27 14:18:25 2021
+++ src/external/gpl3/gcc/usr.bin/cc1objplus/Makefile	Tue Aug  1 05:57:54 2023
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.3 2021/04/27 14:18:25 christos Exp $
+#	$NetBSD: Makefile,v 1.4 2023/08/01 05:57:54 mrg Exp $
 
 # XXX: Pull this (G_OBJCXX_OBJS) out with mknative-gcc.  Needs some
 # minor re-org of cc1plus and perhaps cc1obj.  G_CXX_AND_OBJCXX_OBJS
@@ -17,24 +17,27 @@ G_OBJCXX_OBJS= \
 	objcp/objc-map.o \
 	${G_CXX_AND_OBJCXX_OBJS}
 
-BUILDSYMLINKS+= ${DIST}/gcc/objc/objc-act.c objcp-act.c \
-		${DIST}/gcc/objc/objc-lang.c objcp-lang.c
+BUILDSYMLINKS+= ${DIST}/gcc/objc/objc-act.cc objcp-act.cc \
+		${DIST}/gcc/objc/objc-lang.cc objcp-lang.cc
 	
 MYOBJS=		${G_OBJCXX_OBJS}
 MY2OBJS=	${MYOBJS:S,objcp/,,:S,objc/,,:S,cp/,,:S,c-family/,,:S,c/,,}
 PROG=		cc1objplus
-SRCS=		${MY2OBJS:S,known-headers.o,known-headers.cc,:S,c-spellcheck.o,c-spellcheck.cc,:S,constraint.o,constraint.cc,:S,logic.o,logic.cc,:S,coroutines.o,coroutines.cc,:Nlibcpp.a:.o=.c}
-SRCS+=		main.c ${PROG}-checksum.c
+SRCS=		${MY2OBJS:S,known-headers.o,known-headers.cc,:S,c-spellcheck.o,c-spellcheck.cc,:S,constraint.o,constraint.cc,:S,logic.o,logic.cc,:S,coroutines.o,coroutines.cc,:Nlibcpp.a:.o=.cc}
+SRCS+=		main.cc ${PROG}-checksum.cc
 
 
 CPPFLAGS+=	-I${DIST}/gcc/objc
 CPPFLAGS+=	-I${DIST}/gcc/objcp
 CPPFLAGS+=	-I${DIST}/gcc/cp
 CPPFLAGS+=	-DOBJCPLUS
-CPPFLAGS.prefix.c+=	-DPREFIX=\"/usr\"
+CPPFLAGS.prefix.cc+=	-DPREFIX=\"/usr\"
+CPPFLAGS.module.cc+=	-DTARGET_MACHINE=\"${MACHINE_GNU_PLATFORM}\" \
+			-DHOST_MACHINE=\"${MACHINE_GNU_PLATFORM}\"
 
 .include "../Makefile.backend"
 .include "../Makefile.backtrace"
+.include "../Makefile.libcody"
 .include "../Makefile.libcpp"
 .include "../Makefile.libdecnumber"
 
@@ -54,22 +57,24 @@ CHECKSUM_OBJS=	${BACKENDOBJ}/libbackend.
 # XXX: like cc1plus
 CFLAGS+=-Wno-error=stack-protector
 
-COPTS.c-ada-spec.c+=			-Wno-stack-protector
-COPTS.c-attribs.c+=			-Wno-stack-protector
-COPTS.c-aux-info.c+=			-Wno-stack-protector
-COPTS.c-common.c+=			-Wno-stack-protector
-COPTS.c-cppbuiltin.c+=			-Wno-stack-protector
-COPTS.c-decl.c+=			-Wno-stack-protector
-COPTS.c-format.c+=			-Wno-stack-protector
-COPTS.c-lex.c+=				-Wno-stack-protector
-COPTS.c-ppoutput.c+=			-Wno-stack-protector
-COPTS.c-pragma.c+=			-Wno-stack-protector
-COPTS.c-typeck.c+=			-Wno-stack-protector
-COPTS.objc-act.c+=			-Wno-stack-protector
-COPTS.objc-gnu-runtime-abi-01.c+=	-Wno-stack-protector
-COPTS.objc-next-runtime-abi-01.c+=	-Wno-stack-protector
+.if 0
+COPTS.c-ada-spec.cc+=			-Wno-stack-protector
+COPTS.c-attribs.cc+=			-Wno-stack-protector
+COPTS.c-aux-info.cc+=			-Wno-stack-protector
+COPTS.c-common.cc+=			-Wno-stack-protector
+COPTS.c-cppbuiltin.cc+=			-Wno-stack-protector
+COPTS.c-decl.cc+=			-Wno-stack-protector
+COPTS.c-format.cc+=			-Wno-stack-protector
+COPTS.c-lex.cc+=			-Wno-stack-protector
+COPTS.c-ppoutput.cc+=			-Wno-stack-protector
+COPTS.c-pragma.cc+=			-Wno-stack-protector
+COPTS.c-typeck.cc+=			-Wno-stack-protector
+COPTS.objc-act.cc+=			-Wno-stack-protector
+COPTS.objc-gnu-runtime-abi-01.cc+=	-Wno-stack-protector
+COPTS.objc-next-runtime-abi-01.cc+=	-Wno-stack-protector
+.endif
 
-.if ${MACHINE_ARCH} == "vax"
+.if ${MACHINE_ARCH} == "vax" && 0
 COPTS.c-decl.c+=-O0
 COPTS.c-typeck.c+=-O0
 COPTS.c-array-notation.c+=-O0
@@ -82,7 +87,7 @@ COPTS.decl.c+=-O0
 .endif
 
 .if ${MACHINE_ARCH} == "mipseb" || ${MACHINE_ARCH} == "mipsel"
-COPTS.c-common.c+=-O3
+#COPTS.c-common.cc+=-O3
 .endif
 
 LDADD+=	${LIBMPC} ${LIBMPFR} ${LIBGMP} -lintl -lz -lm

Index: src/external/gpl3/gcc/usr.bin/cc1plus/Makefile
diff -u src/external/gpl3/gcc/usr.bin/cc1plus/Makefile:1.17 src/external/gpl3/gcc/usr.bin/cc1plus/Makefile:1.18
--- src/external/gpl3/gcc/usr.bin/cc1plus/Makefile:1.17	Tue Apr 27 14:18:25 2021
+++ src/external/gpl3/gcc/usr.bin/cc1plus/Makefile	Tue Aug  1 05:57:54 2023
@@ -1,17 +1,20 @@
-#	$NetBSD: Makefile,v 1.17 2021/04/27 14:18:25 christos Exp $
+#	$NetBSD: Makefile,v 1.18 2023/08/01 05:57:54 mrg Exp $
 
 PROG=		cc1plus
-SRCS=		${G_CXX_OBJS:S,c-family/,,:S,cp/,,:S,constraint.o,constraint.cc,:S,logic.o,logic.cc,:S,known-headers.o,known-headers.cc,:S,c-spellcheck.o,c-spellcheck.cc,:S,coroutines.o,coroutines.cc,:Nlibcpp.a:.o=.c}
-SRCS+=		main.c ${PROG}-checksum.c
+SRCS=		${G_CXX_OBJS:S,c-family/,,:S,cp/,,:S,constraint.o,constraint.cc,:S,logic.o,logic.cc,:S,known-headers.o,known-headers.cc,:S,c-spellcheck.o,c-spellcheck.cc,:S,coroutines.o,coroutines.cc,:Nlibcpp.a:.o=.cc}
+SRCS+=		main.cc ${PROG}-checksum.cc
 
 # XXX
 NOMAN=	1
 
 CPPFLAGS+=	-I${DIST}/gcc/cp
-CPPFLAGS.prefix.c+=     -DPREFIX=\"/usr\"
+CPPFLAGS.prefix.cc+=	-DPREFIX=\"/usr\"
+CPPFLAGS.module.cc+=	-DTARGET_MACHINE=\"${MACHINE_GNU_PLATFORM}\" \
+			-DHOST_MACHINE=\"${MACHINE_GNU_PLATFORM}\"
 
 .include "../Makefile.backend"
 .include "../Makefile.backtrace"
+.include "../Makefile.libcody"
 .include "../Makefile.libcpp"
 .include "../Makefile.libdecnumber"
 
@@ -31,7 +34,7 @@ CHECKSUM_OBJS= ${LIBBACKTRACEOBJ}/libbac
 
 CFLAGS+=	-Wno-error=stack-protector
 
-.if ${MACHINE_ARCH} == "vax"
+.if ${MACHINE_ARCH} == "vax" && 0
 COPTS.call.c+=-O0
 COPTS.decl.c+=-O0
 COPTS.typeck2.c+=-O0
@@ -49,7 +52,7 @@ COPTS.cc1plus-checksum.c+=-O0
 .endif
 
 .if ${MACHINE_ARCH} == "mipseb" || ${MACHINE_ARCH} == "mipsel"
-COPTS.c-common.c+=-O3
+#COPTS.c-common.cc+=-O3
 .endif
 
 LDADD+=	${LIBMPC} ${LIBMPFR} ${LIBGMP} -lintl -lz -lm

Index: src/external/gpl3/gcc/usr.bin/common/Makefile
diff -u src/external/gpl3/gcc/usr.bin/common/Makefile:1.12 src/external/gpl3/gcc/usr.bin/common/Makefile:1.13
--- src/external/gpl3/gcc/usr.bin/common/Makefile:1.12	Fri May 19 23:28:20 2023
+++ src/external/gpl3/gcc/usr.bin/common/Makefile	Tue Aug  1 05:57:54 2023
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.12 2023/05/19 23:28:20 lukem Exp $
+#	$NetBSD: Makefile,v 1.13 2023/08/01 05:57:54 mrg Exp $
 
 HOSTPROG_CXX=	1
 LIBISPRIVATE=	yes
@@ -9,7 +9,7 @@ LIBISPRIVATE=	yes
 LIB=		common
 
 .include "${.CURDIR}/defs.mk"
-SRCS=	${G_OBJS-libcommon:S/memory-block.o/memory-block.cc/:S/diagnostic-format-json.o/diagnostic-format-json.cc/:S/sort.o/sort.cc/:S/json.o/json.cc/:.o=.c}
+SRCS=	${G_OBJS-libcommon:S/memory-block.o/memory-block.cc/:S/diagnostic-format-json.o/diagnostic-format-json.cc/:S/sort.o/sort.cc/:S/json.o/json.cc/:.o=.cc}
 
 # XXX make sure this doesn't have more than it needs
 CPPFLAGS+=	-I${GCCARCH} -I${BACKENDOBJ} -I. \
@@ -22,10 +22,10 @@ CPPFLAGS+=	-I${GCCARCH} -I${BACKENDOBJ} 
 MKPIC:=		no
 MKPICLIB:=	no
 
-COPTS.diagnostic.c=	-Wno-stack-protector
-COPTS.intl.c=		-Wno-stack-protector
+#COPTS.diagnostic.cc=	-Wno-stack-protector
+#COPTS.intl.cc=		-Wno-stack-protector
 
-version.c: ${GCCARCH}/defs.mk ${TOP}/tools/gcc/gcc-version.mk
+version.cc: ${GCCARCH}/defs.mk ${TOP}/tools/gcc/gcc-version.mk
 
 ${SRCS}: ${GCCARCH}/defs.mk
 

Index: src/external/gpl3/gcc/usr.bin/common-target/Makefile
diff -u src/external/gpl3/gcc/usr.bin/common-target/Makefile:1.13 src/external/gpl3/gcc/usr.bin/common-target/Makefile:1.14
--- src/external/gpl3/gcc/usr.bin/common-target/Makefile:1.13	Sat Jun  3 09:09:07 2023
+++ src/external/gpl3/gcc/usr.bin/common-target/Makefile	Tue Aug  1 05:57:54 2023
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.13 2023/06/03 09:09:07 lukem Exp $
+#	$NetBSD: Makefile,v 1.14 2023/08/01 05:57:54 mrg Exp $
 
 HOSTPROG_CXX=	1
 LIBISPRIVATE=	yes
@@ -9,7 +9,7 @@ LIBISPRIVATE=	yes
 LIB=		common-target
 
 .include "${.CURDIR}/arch/${GCC_MACHINE_ARCH}.mk"
-SRCS=		${G_OBJS-libcommon-target:S/common\///:.o=.c}
+SRCS=		${G_OBJS-libcommon-target:S/common\///:.o=.cc}
 
 CPPFLAGS+=	-I${GCCARCH} -I${BACKENDOBJ} -I. \
 		${G_ALL_CFLAGS:M-D*} ${G_INCLUDES:M-I*:N-I.*} \
@@ -19,12 +19,12 @@ CPPFLAGS+=	-I${GCCARCH} -I${BACKENDOBJ} 
 		-DCONFIGURE_SPECS="\"\"" \
 		-I${BACKENDOBJ}
 
-COPTS.prefix.c+=	-Wno-stack-protector
-COPTS.opts-common.c+=	-Wno-stack-protector
-COPTS.rs6000-common.c+=	-Wno-stack-protector
-COPTS.arm-common.c+=	-Wno-stack-protector
+#COPTS.prefix.cc+=	-Wno-stack-protector
+#COPTS.opts-common.cc+=	-Wno-stack-protector
+#COPTS.rs6000-common.cc+=	-Wno-stack-protector
+#COPTS.arm-common.cc+=	-Wno-stack-protector
 .if ${MACHINE_CPU} == "sh3"
-COPTS.opts.c+=		${CC_WNO_FORMAT_TRUNCATION}
+#COPTS.opts.cc+=		${CC_WNO_FORMAT_TRUNCATION}
 .endif
 
 GENPROG_ERROR_DEPENDS=errors.lo

Index: src/external/gpl3/gcc/usr.bin/cpp/Makefile
diff -u src/external/gpl3/gcc/usr.bin/cpp/Makefile:1.11 src/external/gpl3/gcc/usr.bin/cpp/Makefile:1.12
--- src/external/gpl3/gcc/usr.bin/cpp/Makefile:1.11	Sat Feb  9 07:32:50 2019
+++ src/external/gpl3/gcc/usr.bin/cpp/Makefile	Tue Aug  1 05:57:54 2023
@@ -1,9 +1,9 @@
-#	$NetBSD: Makefile,v 1.11 2019/02/09 07:32:50 mrg Exp $
+#	$NetBSD: Makefile,v 1.12 2023/08/01 05:57:54 mrg Exp $
 
 .include <bsd.init.mk>
 
 PROG=		cpp
-SRCS=		cppspec.c ${G_GCC_OBJS:.o=.c}
+SRCS=		cppspec.cc ${G_GCC_OBJS:.o=.cc}
 
 .include "../Makefile.driver"
 .include "../Makefile.target-defines"
@@ -28,7 +28,7 @@ ${SRCS}: ${GCCARCH}/defs.mk
 
 .include <bsd.info.mk>
 
-COPTS.gcc.c=	-Wno-stack-protector
+#COPTS.gcc.cc=	-Wno-stack-protector
 
 .PATH: ${DIST}/gcc ${DIST}/gcc/c-family ${DIST}/gcc/doc
 

Index: src/external/gpl3/gcc/usr.bin/frontend/Makefile
diff -u src/external/gpl3/gcc/usr.bin/frontend/Makefile:1.15 src/external/gpl3/gcc/usr.bin/frontend/Makefile:1.16
--- src/external/gpl3/gcc/usr.bin/frontend/Makefile:1.15	Fri May 19 23:28:20 2023
+++ src/external/gpl3/gcc/usr.bin/frontend/Makefile	Tue Aug  1 05:57:55 2023
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.15 2023/05/19 23:28:20 lukem Exp $
+#	$NetBSD: Makefile,v 1.16 2023/08/01 05:57:55 mrg Exp $
 
 HOSTPROG_CXX=	1
 LIBISPRIVATE=	yes
@@ -8,12 +8,12 @@ LIBISPRIVATE=	yes
 
 LIB=		frontend
 
-SRCS=		gcc.c version.c prefix.c
+SRCS=		gcc.cc prefix.cc
 
 .include "../Makefile.driver"
 .include "../Makefile.target-defines"
 
-version.c: ${GCCARCH}/defs.mk ${TOP}/tools/gcc/gcc-version.mk
+version.cc: ${GCCARCH}/defs.mk ${TOP}/tools/gcc/gcc-version.mk
 
 CPPFLAGS+=	-I${GCCARCH} -I. \
 		${G_ALL_CFLAGS:M-D*} ${G_INCLUDES:M-I*:N-I.*} \

Index: src/external/gpl3/gcc/usr.bin/g++/Makefile
diff -u src/external/gpl3/gcc/usr.bin/g++/Makefile:1.7 src/external/gpl3/gcc/usr.bin/g++/Makefile:1.8
--- src/external/gpl3/gcc/usr.bin/g++/Makefile:1.7	Sun Feb 11 02:12:29 2018
+++ src/external/gpl3/gcc/usr.bin/g++/Makefile	Tue Aug  1 05:57:55 2023
@@ -1,8 +1,8 @@
-#	$NetBSD: Makefile,v 1.7 2018/02/11 02:12:29 christos Exp $
+#	$NetBSD: Makefile,v 1.8 2023/08/01 05:57:55 mrg Exp $
 
 PROG=		gplusplus
 PROGNAME=	g++
-SRCS=		${G_GXX_OBJS:S/cp\///:.o=.c}
+SRCS=		${G_GXX_OBJS:S/cp\///:.o=.cc}
 
 NOMAN=		# Linked to gcc.1
 .include <bsd.init.mk>
@@ -18,6 +18,6 @@ DPADD+=		${LIBINTL}
 
 ${SRCS}: ${GCCARCH}/defs.mk
 
-COPTS.gcc.c=	-Wno-stack-protector
+#COPTS.gcc.cc=	-Wno-stack-protector
 
 .PATH: ${DIST}/gcc/cp ${DIST}/gcc ${DIST}/gcc/cp

Index: src/external/gpl3/gcc/usr.bin/gcc/Makefile
diff -u src/external/gpl3/gcc/usr.bin/gcc/Makefile:1.7 src/external/gpl3/gcc/usr.bin/gcc/Makefile:1.8
--- src/external/gpl3/gcc/usr.bin/gcc/Makefile:1.7	Tue Mar 15 19:12:06 2016
+++ src/external/gpl3/gcc/usr.bin/gcc/Makefile	Tue Aug  1 05:57:55 2023
@@ -1,11 +1,11 @@
-#	$NetBSD: Makefile,v 1.7 2016/03/15 19:12:06 mrg Exp $
+#	$NetBSD: Makefile,v 1.8 2023/08/01 05:57:55 mrg Exp $
 
 PROG=		gcc
-SRCS=		gccspec.c ${G_GCC_OBJS:.o=.c}
+SRCS=		gccspec.cc ${G_GCC_OBJS:.o=.cc}
 
 .include "../Makefile.target-defines"
 
-COPTS.builtins.c = -Wno-stack-protector
+#COPTS.builtins.cc = -Wno-stack-protector
 
 LINKS+=		${BINDIR}/gcc ${BINDIR}/cc 
 
@@ -24,8 +24,8 @@ ${SRCS}: ${GCCARCH}/defs.mk
 
 .include <bsd.info.mk>
 
-COPTS.gcc.c=	-Wno-stack-protector
-.if ${MACHINE_ARCH} == "vax"
+#COPTS.gcc.cc=	-Wno-stack-protector
+.if ${MACHINE_ARCH} == "vax" && 0
 COPTS.dse.c=	-O1
 .endif
 

Index: src/external/gpl3/gcc/usr.bin/gcov/Makefile
diff -u src/external/gpl3/gcc/usr.bin/gcov/Makefile:1.11 src/external/gpl3/gcc/usr.bin/gcov/Makefile:1.12
--- src/external/gpl3/gcc/usr.bin/gcov/Makefile:1.11	Sat Sep  5 14:24:26 2020
+++ src/external/gpl3/gcc/usr.bin/gcov/Makefile	Tue Aug  1 05:57:55 2023
@@ -1,9 +1,9 @@
-#	$NetBSD: Makefile,v 1.11 2020/09/05 14:24:26 mrg Exp $
+#	$NetBSD: Makefile,v 1.12 2023/08/01 05:57:55 mrg Exp $
 
 .include <bsd.init.mk>
 
 PROG=           gcov
-SRCS=		${G_GCOV_OBJS:S/json.o/json.cc/:.o=.c}
+SRCS=		${G_GCOV_OBJS:S/json.o/json.cc/:.o=.cc}
 
 CPPFLAGS+=	-I${GCCARCH} -I${BACKENDOBJ} ${G_ALL_CFLAGS:M-D*} ${G_INCLUDES:M-I*:N-I.*}
 DPADD+=		${LIBZ}
@@ -21,7 +21,7 @@ MAN=		gcov.1
 .include "../Makefile.libiberty"
 .include "../Makefile.libdecnumber"
 
-COPTS.gcov.c += -Wno-stack-protector
+#COPTS.gcov.cc += -Wno-stack-protector
 
 LDADD+=		-lintl
 DPADD+=		${LIBINTL}

Index: src/external/gpl3/gcc/usr.bin/gcov-dump/Makefile
diff -u src/external/gpl3/gcc/usr.bin/gcov-dump/Makefile:1.4 src/external/gpl3/gcc/usr.bin/gcov-dump/Makefile:1.5
--- src/external/gpl3/gcc/usr.bin/gcov-dump/Makefile:1.4	Fri Apr 23 01:56:14 2021
+++ src/external/gpl3/gcc/usr.bin/gcov-dump/Makefile	Tue Aug  1 05:57:55 2023
@@ -1,9 +1,9 @@
-#	$NetBSD: Makefile,v 1.4 2021/04/23 01:56:14 mrg Exp $
+#	$NetBSD: Makefile,v 1.5 2023/08/01 05:57:55 mrg Exp $
 
 .include <bsd.init.mk>
 
 PROG=           gcov-dump
-SRCS=		${G_GCOV_DUMP_OBJS:.o=.c}
+SRCS=		${G_GCOV_DUMP_OBJS:.o=.cc}
 
 CPPFLAGS+=	-I${GCCARCH} -I${BACKENDOBJ} ${G_ALL_CFLAGS:M-D*} ${G_INCLUDES:M-I*:N-I.*}
 

Index: src/external/gpl3/gcc/usr.bin/include/Makefile
diff -u src/external/gpl3/gcc/usr.bin/include/Makefile:1.13 src/external/gpl3/gcc/usr.bin/include/Makefile:1.14
--- src/external/gpl3/gcc/usr.bin/include/Makefile:1.13	Sun Aug 12 21:48:57 2018
+++ src/external/gpl3/gcc/usr.bin/include/Makefile	Tue Aug  1 05:57:55 2023
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.13 2018/08/12 21:48:57 mrg Exp $
+#	$NetBSD: Makefile,v 1.14 2023/08/01 05:57:55 mrg Exp $
 
 .include <bsd.init.mk>
 
@@ -17,10 +17,10 @@ INCS+=	stdatomic.h
 .if ${GCC_MACHINE_ARCH} == "i386" || ${GCC_MACHINE_ARCH} == "x86_64"
 INCS+=	mm_malloc.h
 
-# XXX we should put this in gcc/config.gcc and regenerate the i386/x86
-# mknative files
+.if !target(obj)
 mm_malloc.h: ${DIST}/gcc/config/i386/pmm_malloc.h
 	cp -f $> ${.TARGET}
+.endif
 
 CLEANFILES+=	mm_malloc.h
 .endif

Index: src/external/gpl3/gcc/usr.bin/libcpp/Makefile
diff -u src/external/gpl3/gcc/usr.bin/libcpp/Makefile:1.10 src/external/gpl3/gcc/usr.bin/libcpp/Makefile:1.11
--- src/external/gpl3/gcc/usr.bin/libcpp/Makefile:1.10	Fri May 19 23:28:21 2023
+++ src/external/gpl3/gcc/usr.bin/libcpp/Makefile	Tue Aug  1 05:57:55 2023
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.10 2023/05/19 23:28:21 lukem Exp $
+#	$NetBSD: Makefile,v 1.11 2023/08/01 05:57:55 mrg Exp $
 
 HOSTPROG_CXX=	1
 LIBISPRIVATE=	yes
@@ -7,7 +7,7 @@ LIBISPRIVATE=	yes
 
 LIB=		cpp
 
-SRCS=		${G_libcpp_a_OBJS:.o=.c}
+SRCS=		${G_libcpp_a_OBJS:.o=.cc}
 
 CPPFLAGS+=	-I${.CURDIR} -I${.CURDIR}/arch/${GCC_MACHINE_ARCH} \
 		-I${GCCARCH} -I${BACKENDOBJ} -I. \
@@ -16,7 +16,7 @@ CPPFLAGS+=	-I${.CURDIR} -I${.CURDIR}/arc
 
 .include <bsd.lib.mk>
 
-COPTS+=	-Wno-stack-protector
+#COPTS+=	-Wno-stack-protector
 
 # Force using C++ for this
 HOST_CC:=	${HOST_CXX}

Index: src/external/gpl3/gcc/usr.bin/libdecnumber/Makefile
diff -u src/external/gpl3/gcc/usr.bin/libdecnumber/Makefile:1.9 src/external/gpl3/gcc/usr.bin/libdecnumber/Makefile:1.10
--- src/external/gpl3/gcc/usr.bin/libdecnumber/Makefile:1.9	Fri May 19 23:28:21 2023
+++ src/external/gpl3/gcc/usr.bin/libdecnumber/Makefile	Tue Aug  1 05:57:56 2023
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.9 2023/05/19 23:28:21 lukem Exp $
+#	$NetBSD: Makefile,v 1.10 2023/08/01 05:57:56 mrg Exp $
 
 DIST=		${GCCDIST}
 GNUHOSTDIST=	${DIST}
@@ -14,7 +14,7 @@ SRCS=		decNumber.c decContext.c decimal3
 CPPFLAGS+=	-I${.CURDIR}/arch/${GCC_MACHINE_ARCH} -I${DIST}/libdecnumber
 CPPFLAGS+=	-I${DIST}/libgcc
 
-.if ${MACHINE_ARCH} == "vax"
+.if ${MACHINE_ARCH} == "vax" && 0
 COPTS.decNumber.c=-O0
 .endif
 

Index: src/external/gpl3/gcc/usr.bin/lto-dump/Makefile
diff -u src/external/gpl3/gcc/usr.bin/lto-dump/Makefile:1.1 src/external/gpl3/gcc/usr.bin/lto-dump/Makefile:1.2
--- src/external/gpl3/gcc/usr.bin/lto-dump/Makefile:1.1	Fri Apr 23 01:56:14 2021
+++ src/external/gpl3/gcc/usr.bin/lto-dump/Makefile	Tue Aug  1 05:57:56 2023
@@ -1,22 +1,22 @@
-#	$NetBSD: Makefile,v 1.1 2021/04/23 01:56:14 mrg Exp $
+#	$NetBSD: Makefile,v 1.2 2023/08/01 05:57:56 mrg Exp $
 
 PROG=		lto-dump
 # XXX pullout from LTO_DUMP_OBJS
-SRCS=		lto-lang.c \
-		lto-object.c \
-		attribs.c \
-		lto-partition.c \
-		lto-symtab.c \
-		lto-dump.c \
-		lto-common.c \
-		main.c
+SRCS=		lto-lang.cc \
+		lto-object.cc \
+		attribs.cc \
+		lto-partition.cc \
+		lto-symtab.cc \
+		lto-dump.cc \
+		lto-common.cc \
+		main.cc
 
 BINDIR=		/usr/bin
 
 CPPFLAGS+=	-DPREFIX=\"/usr\"
 
-COPTS.lto-lang.c+=	-Wno-stack-protector
-COPTS.lto-common.c+=	-Wno-stack-protector
+#COPTS.lto-lang.cc+=	-Wno-stack-protector
+#COPTS.lto-common.cc+=	-Wno-stack-protector
 
 .include "../Makefile.backend"
 .include "../Makefile.target-defines"
@@ -24,7 +24,7 @@ COPTS.lto-common.c+=	-Wno-stack-protecto
 .include "../Makefile.backtrace"
 .include "../Makefile.libdecnumber"
 
-.if ${MACHINE_ARCH} == "vax"
+.if ${MACHINE_ARCH} == "vax" && 0
 COPTS.lto-lang.c+=-O0
 COPTS.lto-symtab.c+=-O0
 .endif

Index: src/external/gpl3/gcc/usr.bin/lto-wrapper/Makefile
diff -u src/external/gpl3/gcc/usr.bin/lto-wrapper/Makefile:1.5 src/external/gpl3/gcc/usr.bin/lto-wrapper/Makefile:1.6
--- src/external/gpl3/gcc/usr.bin/lto-wrapper/Makefile:1.5	Mon Jun 29 08:30:42 2020
+++ src/external/gpl3/gcc/usr.bin/lto-wrapper/Makefile	Tue Aug  1 05:57:56 2023
@@ -1,11 +1,11 @@
-#	$NetBSD: Makefile,v 1.5 2020/06/29 08:30:42 lukem Exp $
+#	$NetBSD: Makefile,v 1.6 2023/08/01 05:57:56 mrg Exp $
 
 NOMAN=1
 PROG=		lto-wrapper
 # XXX pullout from LTO_WRAPPER_OBJS
-SRCS=		lto-wrapper.c \
-		collect-utils.c \
-		ggc-none.c
+SRCS=		lto-wrapper.cc \
+		collect-utils.cc \
+		ggc-none.cc
 
 BINDIR=		/usr/libexec
 
@@ -19,7 +19,7 @@ CPPFLAGS+=	-DPREFIX=\"/usr\" -I${GCCARCH
 .include "../Makefile.backtrace"
 .include "../Makefile.libiberty"
 
-COPTS.lto-wrapper.c=	-Wno-stack-protector
+#COPTS.lto-wrapper.cc=	-Wno-stack-protector
 
 LDADD+=	${LIBMPC} ${LIBMPFR} ${LIBGMP} -lintl -lz -lm
 DPADD+=	${LIBMPC} ${LIBMPFR} ${LIBGMP} ${LIBINTL} ${LIBZ} ${LIBM}

Index: src/external/gpl3/gcc/usr.bin/lto1/Makefile
diff -u src/external/gpl3/gcc/usr.bin/lto1/Makefile:1.7 src/external/gpl3/gcc/usr.bin/lto1/Makefile:1.8
--- src/external/gpl3/gcc/usr.bin/lto1/Makefile:1.7	Wed Apr 14 12:20:59 2021
+++ src/external/gpl3/gcc/usr.bin/lto1/Makefile	Tue Aug  1 05:57:56 2023
@@ -1,27 +1,27 @@
-#	$NetBSD: Makefile,v 1.7 2021/04/14 12:20:59 christos Exp $
+#	$NetBSD: Makefile,v 1.8 2023/08/01 05:57:56 mrg Exp $
 
 PROG=		lto1
-SRCS=		attribs.c \
-		lto-common.c \
-		lto-lang.c \
-		lto-object.c \
-		lto-partition.c \
-		lto-symtab.c \
-		lto.c \
-		main.c
+SRCS=		attribs.cc \
+		lto-common.cc \
+		lto-lang.cc \
+		lto-object.cc \
+		lto-partition.cc \
+		lto-symtab.cc \
+		lto.cc \
+		main.cc
 
 CPPFLAGS+=	-DPREFIX=\"/usr\"
 
-COPTS.lto.c+=		-Wno-stack-protector
-COPTS.lto-lang.c+=	-Wno-stack-protector
-COPTS.lto-common.c+=	-Wno-stack-protector
+#COPTS.lto.cc+=		-Wno-stack-protector
+#COPTS.lto-lang.cc+=	-Wno-stack-protector
+#COPTS.lto-common.cc+=	-Wno-stack-protector
 
 .include "../Makefile.backend"
 .include "../Makefile.backtrace"
 .include "../Makefile.libcpp"
 .include "../Makefile.libdecnumber"
 
-.if ${MACHINE_ARCH} == "vax"
+.if ${MACHINE_ARCH} == "vax" && 0
 COPTS.lto-lang.c+=-O0
 COPTS.lto-symtab.c+=-O0
 .endif

Added files:

Index: src/external/gpl3/gcc/Makefile.autobuild_h
diff -u /dev/null src/external/gpl3/gcc/Makefile.autobuild_h:1.1
--- /dev/null	Tue Aug  1 05:57:57 2023
+++ src/external/gpl3/gcc/Makefile.autobuild_h	Tue Aug  1 05:57:53 2023
@@ -0,0 +1,42 @@
+#	$NetBSD: Makefile.autobuild_h,v 1.1 2023/08/01 05:57:53 mrg Exp $
+
+# makefile fragment to create auto-build.h
+
+.ifndef GCC_MAKEFILE_AUTOBUILD_H
+GCC_MAKEFILE_AUTOBUILD_H=1
+
+# Yuck, we have to run configure to generate this one...
+# We use ORIGHOST_CC here because GCC's ./configure expects (and
+# depends upon) it.
+CLEANFILES+=	auto-build.h
+HOST_CFLAGS+= -I${.OBJDIR}
+HOST_CXXFLAGS+= -I${.OBJDIR}
+
+# Set this to "true" to leave .ab around
+HOST_AB_CLEAN?=	rm -rf .ab
+
+auto-build.h: gmp.h Makefile
+	${_MKTARGET_CREATE}
+	rm -rf .ab && \
+	mkdir .ab && \
+	(cd .ab && \
+		AWK=${TOOL_AWK:Q} \
+		CC=${ORIGHOST_CC:Q} CFLAGS=${HOST_CFLAGS:Q} \
+		CPPFLAGS=${HOST_CPPFLAGS:Q} \
+		CXX=${HOST_CXX:Q} CXXFLAGS=${HOST_CXXFLAGS:Q} \
+		MAKE=${TOOL_GMAKE:Q} \
+		CONFIG_SHELL=${HOST_SH:Q} \
+		gcc_cv_ld=${LD:Q} \
+		gcc_cv_as=${AS:Q} \
+		${HOST_SH} ${GNUHOSTDIST}/gcc/configure \
+			--build=`${HOST_SH} ${GNUHOSTDIST}/config.guess` \
+			--host=`${HOST_SH} ${GNUHOSTDIST}/config.guess` \
+			--target=${MACHINE_GNU_PLATFORM} && \
+		mv auto-host.h ../auto-build.h) && \
+	${HOST_AB_CLEAN}
+
+GMPDISTDIR=	${NETBSDSRCDIR}/external/lgpl3/gmp
+BUILDSYMLINKS+=	${GMPDISTDIR}/lib/libgmp/arch/${GMP_MACHINE_ARCH}/gmp.h gmp.h
+DPSRCS+=	gmp.h
+
+.endif # GCC_MAKEFILE_AUTOBUILD_H
Index: src/external/gpl3/gcc/Makefile.version_h
diff -u /dev/null src/external/gpl3/gcc/Makefile.version_h:1.1
--- /dev/null	Tue Aug  1 05:57:57 2023
+++ src/external/gpl3/gcc/Makefile.version_h	Tue Aug  1 05:57:53 2023
@@ -0,0 +1,66 @@
+#	$NetBSD: Makefile.version_h,v 1.1 2023/08/01 05:57:53 mrg Exp $
+
+# makefile fragment to build version.h
+
+.ifndef GCC_MAKEFILE_VERSION_H
+GCC_MAKEFILE_VERSION_H=1
+
+BASEVER!=		cat ${GNUHOSTDIST}/gcc/BASE-VER
+.if exists(${GNUHOSTDIST}/gcc/DEV-PHASE)
+DEVPHASE!=		cat ${GNUHOSTDIST}/gcc/DEV-PHASE
+.else
+DEVPHASE=
+.endif
+.if ${DEVPHASE} == "release" || ${DEVPHASE} == ""
+DATESTAMP=
+.else
+DATESTAMP!=		cat ${GNUHOSTDIST}/gcc/DATESTAMP
+.endif
+
+BASEVERSTR=		"\"$(BASEVER)\""
+.if !empty(DEVPHASE)
+DEVPHASESTR=		"\" $(DEVPHASE)\""
+.else
+DEVPHASESTR=		"\"\""
+.endif
+.if !empty(DATESTAMP)
+DATESTAMPSTR=		"\" $(DATESTAMP)\""
+.else
+DATESTAMPSTR=		"\"\""
+.endif
+
+.include "${NETBSDSRCDIR}/tools/gcc/gcc-version.mk"
+
+# XXX pull this out of our configs
+G_BUGURL=<http://www.NetBSD.org/support/send-pr.html>
+G_BUGURL_s="\"${G_BUGURL}\""
+G_PKGVERSION=(${NETBSD_GCC_VERSION}) 
+G_PKGVERSION_s="\"${G_PKGVERSION} \""
+
+VER_CPPFLAGS=	-DBASEVER=$(BASEVERSTR) \
+		-DDATESTAMP=$(DATESTAMPSTR) \
+		-DREVISION=$(REVISION_s) \
+		-DDEVPHASE=$(DEVPHASESTR) \
+		-DPKGVERSION=$(G_PKGVERSION_s) \
+		-DBUGURL=$(G_BUGURL_s)
+
+CPPFLAGS.genversion.cc+=	${VER_CPPFLAGS} \
+				-I${GCCARCH} \
+				-I${GCC_SUBDIR}/dist/include
+# XXXMRG for now, needs "nbmake-foo auto-build.h" in usr.bin/backend
+#BINBACKENDOBJ!=	cd ${GCC_SUBDIR}/usr.bin/backend && ${PRINTOBJDIR}
+#CPPFLAGS.genversion.cc+=	-I${BINBACKENDOBJ}
+CPPFLAGS.genversion.cc+=	-I.
+genversion.cc: auto-build.h
+# XXXMRG for now
+version.h: genversion
+	${_MKTARGET_LINK}
+	./genversion >${.TARGET}
+genversion.lo: Makefile
+genversion: genversion.lo
+	${_MKTARGET_LINK}
+	${HOST_LINK.cc} -o ${.TARGET} ${.ALLSRC} ${NBCOMPATLIB} ${HOSTLIBCPP} ${HOSTLIBIBERTY}
+
+CLEANFILES+=	version.h genversion genversion.lo
+
+.endif # GCC_MAKEFILE_VERSION_H

Index: src/external/gpl3/gcc/usr.bin/Makefile.libcody
diff -u /dev/null src/external/gpl3/gcc/usr.bin/Makefile.libcody:1.1
--- /dev/null	Tue Aug  1 05:57:57 2023
+++ src/external/gpl3/gcc/usr.bin/Makefile.libcody	Tue Aug  1 05:57:54 2023
@@ -0,0 +1,12 @@
+#	$NetBSD: Makefile.libcody,v 1.1 2023/08/01 05:57:54 mrg Exp $
+
+.ifndef _EXTERNAL_GPL3_GCC_USR_BIN_MAKEFILE_LIBCODY_
+_EXTERNAL_GPL3_GCC_USR_BIN_MAKEFILE_LIBCODY_=1
+
+.include <bsd.own.mk>
+
+LIBCODYOBJ!=		cd ${.CURDIR}/../libcody && ${PRINTOBJDIR}
+DPADD+=			${LIBCODYOBJ}/libcody.a
+LDADD+=			${LIBCODYOBJ}/libcody.a
+
+.endif

Index: src/external/gpl3/gcc/usr.bin/libcody/Makefile
diff -u /dev/null src/external/gpl3/gcc/usr.bin/libcody/Makefile:1.1
--- /dev/null	Tue Aug  1 05:57:57 2023
+++ src/external/gpl3/gcc/usr.bin/libcody/Makefile	Tue Aug  1 05:57:55 2023
@@ -0,0 +1,20 @@
+#	$NetBSD: Makefile,v 1.1 2023/08/01 05:57:55 mrg Exp $
+
+DIST=		${GCCDIST}
+GNUHOSTDIST=	${DIST}
+
+HOSTPROG_CXX=	1
+LIBISPRIVATE=   yes
+
+.include <bsd.init.mk>
+
+LIB=		cody
+
+SRCS=		buffer.cc client.cc fatal.cc netclient.cc netserver.cc packet.cc resolver.cc server.cc
+
+CPPFLAGS+=	-I${DIST}/libgcc \
+		-DSRCDIR=\"\"
+
+.include <bsd.lib.mk>
+
+.PATH: ${DIST}/libcody

Reply via email to