Module Name: src
Committed By: martin
Date: Sun Oct 8 14:35:24 UTC 2023
Modified Files:
src/crypto/external/bsd/openssh/lib [netbsd-10]: Makefile
src/distrib/utils/x_ping [netbsd-10]: Makefile
src/doc [netbsd-10]: CHANGES
src/external/apache2/argon2/lib/libargon2 [netbsd-10]: Makefile.inc
src/external/bsd/jemalloc/lib [netbsd-10]: Makefile.inc
src/external/bsd/mdocml/lib/libmandoc [netbsd-10]: Makefile
src/external/gpl3/binutils.old/lib/libbfd [netbsd-10]: Makefile
src/external/gpl3/binutils/dist/gas/config [netbsd-10]: tc-vax.c
tc-vax.h
src/external/gpl3/binutils/lib/libbfd [netbsd-10]: Makefile
src/external/gpl3/gcc/dist/gcc [netbsd-10]: dse.c function.c recog.c
reload.c rtlanal.c target.def targhooks.c targhooks.h
src/external/gpl3/gcc/dist/gcc/config/vax [netbsd-10]: builtins.md
elf.h vax.c vax.md
src/external/gpl3/gcc/dist/gcc/doc [netbsd-10]: tm.texi tm.texi.in
src/external/gpl3/gcc/lib [netbsd-10]: Makefile.sanitizer
src/external/gpl3/gcc/lib/libasan [netbsd-10]: Makefile
src/external/gpl3/gcc/lib/liblsan [netbsd-10]: Makefile
src/external/gpl3/gcc/lib/libubsan [netbsd-10]: Makefile
src/external/gpl3/gcc/usr.bin/backend [netbsd-10]: Makefile
src/external/gpl3/gcc/usr.bin/cc1 [netbsd-10]: Makefile
src/external/gpl3/gcc/usr.bin/cc1obj [netbsd-10]: Makefile
src/external/gpl3/gcc/usr.bin/cc1objplus [netbsd-10]: Makefile
src/external/gpl3/gcc/usr.bin/cc1plus [netbsd-10]: Makefile
src/external/gpl3/gcc/usr.bin/gcc [netbsd-10]: Makefile
src/external/gpl3/gcc/usr.bin/libdecnumber [netbsd-10]: Makefile
src/external/gpl3/gcc/usr.bin/lto-dump [netbsd-10]: Makefile
src/external/gpl3/gcc/usr.bin/lto1 [netbsd-10]: Makefile
src/external/gpl3/gdb.old/lib/libdecnumber [netbsd-10]: Makefile
src/external/gpl3/gdb/lib/libdecnumber [netbsd-10]: Makefile
src/external/gpl3/gdb/lib/libgdb [netbsd-10]: Makefile
src/external/mit/xorg/lib/gallium [netbsd-10]: Makefile
src/external/mit/xorg/lib/gallium.old [netbsd-10]: Makefile
src/external/mit/xorg/lib/libX11 [netbsd-10]: Makefile.libx11
src/games/gomoku [netbsd-10]: Makefile
src/games/phantasia [netbsd-10]: Makefile
src/lib/i18n_module/UTF7 [netbsd-10]: Makefile
src/lib/libbz2 [netbsd-10]: Makefile
src/lib/libc/gdtoa [netbsd-10]: Makefile.inc
src/lib/libcrypt [netbsd-10]: Makefile
src/libexec/ld.elf_so [netbsd-10]: Makefile
src/sbin/fsck_ffs [netbsd-10]: Makefile.common
src/sbin/fsdb [netbsd-10]: Makefile
src/sbin/newfs_ext2fs [netbsd-10]: Makefile
src/sbin/ping [netbsd-10]: Makefile
src/sys/arch/vax/conf [netbsd-10]: Makefile.vax
src/sys/lib/libsa [netbsd-10]: Makefile
src/sys/lib/libz [netbsd-10]: Makefile
src/sys/modules/lfs [netbsd-10]: Makefile
src/sys/rump/fs/lib/liblfs [netbsd-10]: Makefile
src/tools/gcc [netbsd-10]: Makefile
src/usr.sbin/mtrace [netbsd-10]: Makefile
Log Message:
Pull up following revision(s) (requested by rin in ticket #394):
external/gpl3/binutils/dist/gas/config/tc-vax.h: revision 1.10
tools/gcc/Makefile: revision 1.109
external/gpl3/binutils/dist/gas/config/tc-vax.c: revision 1.16
external/gpl3/binutils/dist/gas/config/tc-vax.c: revision 1.17
external/gpl3/binutils/dist/gas/config/tc-vax.c: revision 1.18
external/gpl3/gcc.old/dist/gcc/recog.c: revision 1.12
external/gpl3/gcc.old/dist/gcc/function.c: revision 1.16
external/gpl3/gcc.old/dist/gcc/dse.c: revision 1.14 - 1.16
external/gpl3/gcc.old/dist/gcc/config/vax/vax.c: revision 1.13
external/gpl3/gcc.old/dist/gcc/config/vax/vax.c: revision 1.14
external/gpl3/gcc.old/dist/gcc/config/vax/vax.c: revision 1.15
external/gpl3/gcc.old/dist/gcc/doc/tm.texi.in: revision 1.10
external/gpl3/gcc.old/dist/gcc/config/vax/vax.c: revision 1.16
external/gpl3/gcc.old/dist/gcc/config/vax/vax.c: revision 1.17
external/gpl3/gcc.old/dist/gcc/config/vax/vax.c: revision 1.18
external/gpl3/gcc.old/dist/gcc/config/vax/vax.c: revision 1.19
external/gpl3/gcc.old/dist/gcc/config/vax/vax.md: revision 1.12
external/gpl3/gcc.old/dist/gcc/config/vax/vax.md: revision 1.13
external/gpl3/gcc.old/usr.bin/backend/Makefile: revision 1.20
external/gpl3/gcc.old/dist/gcc/targhooks.c: revision 1.12
external/gpl3/gcc.old/dist/gcc/config/vax/vax.md: revision 1.14
external/gpl3/gcc.old/dist/gcc/config/vax/vax.md: revision 1.15
external/gpl3/gcc.old/dist/gcc/config/vax/builtins.md: revision 1.12
external/gpl3/gcc.old/dist/gcc/config/vax/vax.md: revision 1.16
external/gpl3/gcc.old/dist/gcc/config/vax/builtins.md: revision 1.13
external/gpl3/gcc.old/dist/gcc/doc/tm.texi: revision 1.12
external/gpl3/gcc.old/dist/gcc/config/vax/vax.md: revision 1.17
external/gpl3/gcc.old/dist/gcc/config/vax/vax.md: revision 1.18
external/gpl3/gcc.old/dist/gcc/config/vax/elf.h: revision 1.12
external/gpl3/gcc.old/dist/gcc/config/vax/elf.h: revision 1.13
external/gpl3/gcc.old/dist/gcc/targhooks.h: revision 1.12
external/gpl3/gcc.old/dist/gcc/target.def: revision 1.10
external/gpl3/gcc.old/dist/gcc/rtlanal.c: revision 1.14
external/gpl3/gcc.old/dist/gcc/reload.c: revision 1.12
external/gpl3/gcc.old/usr.bin/gcc/Makefile: revision 1.11
external/gpl3/gcc.old/usr.bin/lto-dump/Makefile: revision 1.3
external/gpl3/gcc.old/lib/Makefile.sanitizer: revision 1.7
external/gpl3/binutils.old/lib/libbfd/Makefile: revision 1.10
distrib/utils/x_ping/Makefile: revision 1.9
games/phantasia/Makefile: revision 1.38
external/apache2/argon2/lib/libargon2/Makefile.inc: revision 1.2
external/gpl3/gcc.old/lib/libubsan/Makefile: revision 1.8
external/bsd/mdocml/lib/libmandoc/Makefile: revision 1.13
sbin/ping/Makefile: revision 1.18
sbin/newfs_ext2fs/Makefile: revision 1.7
sys/lib/libz/Makefile: revision 1.24
sys/lib/libsa/Makefile: revision 1.97
external/gpl3/gcc.old/usr.bin/cc1objplus/Makefile: revision 1.3
external/gpl3/gdb/lib/libgdb/Makefile: revision 1.36
sys/modules/lfs/Makefile: revision 1.11
external/mit/xorg/lib/gallium/Makefile: revision 1.51
external/gpl3/gdb.old/lib/libdecnumber/Makefile: revision 1.10
external/mit/xorg/lib/libX11/Makefile.libx11: revision 1.26
libexec/ld.elf_so/Makefile: revision 1.148
external/bsd/jemalloc/lib/Makefile.inc: revision 1.16
external/gpl3/gcc.old/usr.bin/libdecnumber/Makefile: revision 1.14
crypto/external/bsd/openssh/lib/Makefile: revision 1.38
external/gpl3/gcc.old/usr.bin/backend/Makefile: revision 1.21
external/gpl3/gcc.old/usr.bin/cc1/Makefile: revision 1.12
external/gpl3/gcc.old/lib/libasan/Makefile: revision 1.11
external/gpl3/gcc.old/usr.bin/cc1plus/Makefile: revision 1.13
lib/libcrypt/Makefile: revision 1.36
external/gpl3/gdb/lib/libdecnumber/Makefile: revision 1.5
lib/libc/gdtoa/Makefile.inc: revision 1.13
games/gomoku/Makefile: revision 1.13
sbin/fsdb/Makefile: revision 1.43
external/gpl3/gcc.old/usr.bin/lto1/Makefile: revision 1.9
external/mit/xorg/lib/gallium.old/Makefile: revision 1.8
lib/libbz2/Makefile: revision 1.22
external/gpl3/gcc.old/usr.bin/cc1obj/Makefile: revision 1.12
usr.sbin/mtrace/Makefile: revision 1.14
external/gpl3/gcc.old/usr.bin/cc1obj/Makefile: revision 1.13
sys/arch/vax/conf/Makefile.vax: revision 1.86
sys/rump/fs/lib/liblfs/Makefile: revision 1.18
sbin/fsck_ffs/Makefile.common: revision 1.3
external/gpl3/binutils/lib/libbfd/Makefile: revision 1.27
lib/i18n_module/UTF7/Makefile: revision 1.5
external/gpl3/gcc.old/lib/liblsan/Makefile: revision 1.7
doc/CHANGES (apply patch)
(all external/gpl3/gcc.old/ changes applied to external/gpl3/gcc/)
PR 57646: Import major vax toolchain fix.
To generate a diff of this commit:
cvs rdiff -u -r1.34.6.3 -r1.34.6.4 \
src/crypto/external/bsd/openssh/lib/Makefile
cvs rdiff -u -r1.8 -r1.8.36.1 src/distrib/utils/x_ping/Makefile
cvs rdiff -u -r1.2940.2.5 -r1.2940.2.6 src/doc/CHANGES
cvs rdiff -u -r1.1 -r1.1.2.1 \
src/external/apache2/argon2/lib/libargon2/Makefile.inc
cvs rdiff -u -r1.15 -r1.15.2.1 src/external/bsd/jemalloc/lib/Makefile.inc
cvs rdiff -u -r1.12 -r1.12.10.1 \
src/external/bsd/mdocml/lib/libmandoc/Makefile
cvs rdiff -u -r1.8 -r1.8.6.1 \
src/external/gpl3/binutils.old/lib/libbfd/Makefile
cvs rdiff -u -r1.13 -r1.13.6.1 \
src/external/gpl3/binutils/dist/gas/config/tc-vax.c
cvs rdiff -u -r1.8 -r1.8.6.1 \
src/external/gpl3/binutils/dist/gas/config/tc-vax.h
cvs rdiff -u -r1.24 -r1.24.2.1 src/external/gpl3/binutils/lib/libbfd/Makefile
cvs rdiff -u -r1.15 -r1.15.2.1 src/external/gpl3/gcc/dist/gcc/dse.c
cvs rdiff -u -r1.1.1.17.2.1 -r1.1.1.17.2.2 \
src/external/gpl3/gcc/dist/gcc/function.c
cvs rdiff -u -r1.1.1.12 -r1.1.1.12.6.1 src/external/gpl3/gcc/dist/gcc/recog.c
cvs rdiff -u -r1.12 -r1.12.2.1 src/external/gpl3/gcc/dist/gcc/reload.c \
src/external/gpl3/gcc/dist/gcc/rtlanal.c
cvs rdiff -u -r1.1.1.10 -r1.1.1.10.2.1 \
src/external/gpl3/gcc/dist/gcc/target.def
cvs rdiff -u -r1.10 -r1.10.6.1 src/external/gpl3/gcc/dist/gcc/targhooks.c
cvs rdiff -u -r1.1.1.10 -r1.1.1.10.6.1 \
src/external/gpl3/gcc/dist/gcc/targhooks.h
cvs rdiff -u -r1.12 -r1.12.6.1 \
src/external/gpl3/gcc/dist/gcc/config/vax/builtins.md
cvs rdiff -u -r1.11 -r1.11.6.1 \
src/external/gpl3/gcc/dist/gcc/config/vax/elf.h
cvs rdiff -u -r1.22 -r1.22.6.1 \
src/external/gpl3/gcc/dist/gcc/config/vax/vax.c
cvs rdiff -u -r1.17 -r1.17.6.1 \
src/external/gpl3/gcc/dist/gcc/config/vax/vax.md
cvs rdiff -u -r1.1.1.13 -r1.1.1.13.2.1 \
src/external/gpl3/gcc/dist/gcc/doc/tm.texi
cvs rdiff -u -r1.1.1.12 -r1.1.1.12.2.1 \
src/external/gpl3/gcc/dist/gcc/doc/tm.texi.in
cvs rdiff -u -r1.16 -r1.16.6.1 src/external/gpl3/gcc/lib/Makefile.sanitizer
cvs rdiff -u -r1.33 -r1.33.6.1 src/external/gpl3/gcc/lib/libasan/Makefile
cvs rdiff -u -r1.8 -r1.8.6.1 src/external/gpl3/gcc/lib/liblsan/Makefile
cvs rdiff -u -r1.19 -r1.19.6.1 src/external/gpl3/gcc/lib/libubsan/Makefile
cvs rdiff -u -r1.66.2.1 -r1.66.2.2 \
src/external/gpl3/gcc/usr.bin/backend/Makefile
cvs rdiff -u -r1.20 -r1.20.6.1 src/external/gpl3/gcc/usr.bin/cc1/Makefile
cvs rdiff -u -r1.18 -r1.18.6.1 src/external/gpl3/gcc/usr.bin/cc1obj/Makefile
cvs rdiff -u -r1.3 -r1.3.6.1 \
src/external/gpl3/gcc/usr.bin/cc1objplus/Makefile
cvs rdiff -u -r1.17 -r1.17.6.1 src/external/gpl3/gcc/usr.bin/cc1plus/Makefile
cvs rdiff -u -r1.7 -r1.7.26.1 src/external/gpl3/gcc/usr.bin/gcc/Makefile
cvs rdiff -u -r1.8.2.1 -r1.8.2.2 \
src/external/gpl3/gcc/usr.bin/libdecnumber/Makefile
cvs rdiff -u -r1.1 -r1.1.6.1 src/external/gpl3/gcc/usr.bin/lto-dump/Makefile
cvs rdiff -u -r1.7 -r1.7.6.1 src/external/gpl3/gcc/usr.bin/lto1/Makefile
cvs rdiff -u -r1.8 -r1.8.6.1 \
src/external/gpl3/gdb.old/lib/libdecnumber/Makefile
cvs rdiff -u -r1.3 -r1.3.36.1 src/external/gpl3/gdb/lib/libdecnumber/Makefile
cvs rdiff -u -r1.32 -r1.32.2.1 src/external/gpl3/gdb/lib/libgdb/Makefile
cvs rdiff -u -r1.48.2.1 -r1.48.2.2 src/external/mit/xorg/lib/gallium/Makefile
cvs rdiff -u -r1.4.2.1 -r1.4.2.2 \
src/external/mit/xorg/lib/gallium.old/Makefile
cvs rdiff -u -r1.25 -r1.25.2.1 \
src/external/mit/xorg/lib/libX11/Makefile.libx11
cvs rdiff -u -r1.12 -r1.12.2.1 src/games/gomoku/Makefile
cvs rdiff -u -r1.37 -r1.37.34.1 src/games/phantasia/Makefile
cvs rdiff -u -r1.4 -r1.4.52.1 src/lib/i18n_module/UTF7/Makefile
cvs rdiff -u -r1.20 -r1.20.8.1 src/lib/libbz2/Makefile
cvs rdiff -u -r1.12 -r1.12.2.1 src/lib/libc/gdtoa/Makefile.inc
cvs rdiff -u -r1.34 -r1.34.2.1 src/lib/libcrypt/Makefile
cvs rdiff -u -r1.144.2.1 -r1.144.2.2 src/libexec/ld.elf_so/Makefile
cvs rdiff -u -r1.2 -r1.2.8.1 src/sbin/fsck_ffs/Makefile.common
cvs rdiff -u -r1.41 -r1.41.6.1 src/sbin/fsdb/Makefile
cvs rdiff -u -r1.6 -r1.6.36.1 src/sbin/newfs_ext2fs/Makefile
cvs rdiff -u -r1.17 -r1.17.36.1 src/sbin/ping/Makefile
cvs rdiff -u -r1.85 -r1.85.20.1 src/sys/arch/vax/conf/Makefile.vax
cvs rdiff -u -r1.95 -r1.95.12.1 src/sys/lib/libsa/Makefile
cvs rdiff -u -r1.23 -r1.23.32.1 src/sys/lib/libz/Makefile
cvs rdiff -u -r1.10 -r1.10.30.1 src/sys/modules/lfs/Makefile
cvs rdiff -u -r1.17 -r1.17.20.1 src/sys/rump/fs/lib/liblfs/Makefile
cvs rdiff -u -r1.105 -r1.105.2.1 src/tools/gcc/Makefile
cvs rdiff -u -r1.12 -r1.12.6.1 src/usr.sbin/mtrace/Makefile
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/crypto/external/bsd/openssh/lib/Makefile
diff -u src/crypto/external/bsd/openssh/lib/Makefile:1.34.6.3 src/crypto/external/bsd/openssh/lib/Makefile:1.34.6.4
--- src/crypto/external/bsd/openssh/lib/Makefile:1.34.6.3 Fri Aug 11 18:13:07 2023
+++ src/crypto/external/bsd/openssh/lib/Makefile Sun Oct 8 14:35:22 2023
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.34.6.3 2023/08/11 18:13:07 martin Exp $
+# $NetBSD: Makefile,v 1.34.6.4 2023/10/08 14:35:22 martin Exp $
.include <bsd.own.mk>
@@ -117,12 +117,6 @@ COPTS.${f}.c+= -Wno-pointer-sign
# XXX
COPTS.channels.c+= -fno-strict-aliasing
-# XXX
-.if ${MACHINE} == "vax"
-COPTS.poly1305.c+= -O0
-COPTS.umac.c+= -O0
-.endif
-
COPTS.hostfile.c+= ${GCC_NO_FORMAT_TRUNCATION}
COPTS.sshkey.c+= ${GCC_NO_FORMAT_TRUNCATION}
COPTS.cipher.c+= -Wno-error=deprecated-declarations
Index: src/distrib/utils/x_ping/Makefile
diff -u src/distrib/utils/x_ping/Makefile:1.8 src/distrib/utils/x_ping/Makefile:1.8.36.1
--- src/distrib/utils/x_ping/Makefile:1.8 Sat Nov 9 21:39:27 2013
+++ src/distrib/utils/x_ping/Makefile Sun Oct 8 14:35:19 2023
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.8 2013/11/09 21:39:27 christos Exp $
+# $NetBSD: Makefile,v 1.8.36.1 2023/10/08 14:35:19 martin Exp $
# Build ping without IPSEC
.include <bsd.own.mk>
@@ -12,10 +12,6 @@ CPPFLAGS+= -I${SRCDIR} -DCRUNCHOPS
DPADD= ${LIBM}
LDADD= -lm
-.if ${MACHINE_ARCH} == "vax"
-COPTS.ping.c=-O0
-.endif
-
.include <bsd.prog.mk>
.PATH: ${SRCDIR}
Index: src/doc/CHANGES
diff -u src/doc/CHANGES:1.2940.2.5 src/doc/CHANGES:1.2940.2.6
--- src/doc/CHANGES:1.2940.2.5 Sun Oct 8 13:19:34 2023
+++ src/doc/CHANGES Sun Oct 8 14:35:24 2023
@@ -1,4 +1,4 @@
-# LIST OF CHANGES FROM LAST RELEASE: <$Revision: 1.2940.2.5 $>
+# LIST OF CHANGES FROM LAST RELEASE: <$Revision: 1.2940.2.6 $>
#
#
# [Note: This file does not mention every change made to the NetBSD source tree.
@@ -796,6 +796,8 @@ Changes from NetBSD 9.0 to NetBSD 10.0:
aq(4): add support for AQC113-116 [ryo 20230114]
lua: Import version 5.4.6.
Bumped shlib minor because of API/ABI changes. [nikita 20230608]
+ gcc.old: Initial import of major vax toolchain fix by Kalvis Duckmanton.
+ [rin 20231007]
igc(4): Add initial support to Intel I225/I226 series Ethernet devices.
[knakahara, rin, msaitoh 20231006]
Index: src/external/apache2/argon2/lib/libargon2/Makefile.inc
diff -u src/external/apache2/argon2/lib/libargon2/Makefile.inc:1.1 src/external/apache2/argon2/lib/libargon2/Makefile.inc:1.1.2.1
--- src/external/apache2/argon2/lib/libargon2/Makefile.inc:1.1 Tue May 17 18:55:41 2022
+++ src/external/apache2/argon2/lib/libargon2/Makefile.inc Sun Oct 8 14:35:20 2023
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile.inc,v 1.1 2022/05/17 18:55:41 christos Exp $
+# $NetBSD: Makefile.inc,v 1.1.2.1 2023/10/08 14:35:20 martin Exp $
ARGON2DIR= ${NETBSDSRCDIR}/external/apache2/argon2/dist/phc-winner-argon2
@@ -16,7 +16,3 @@ CFLAGS+= -pthread
LDADD+=-lpthread
DPADD+=${LIBPTHREAD}
.endif
-
-.if ${MACHINE} == "vax"
-COPTS.blake2b.c+= -O0
-.endif
Index: src/external/bsd/jemalloc/lib/Makefile.inc
diff -u src/external/bsd/jemalloc/lib/Makefile.inc:1.15 src/external/bsd/jemalloc/lib/Makefile.inc:1.15.2.1
--- src/external/bsd/jemalloc/lib/Makefile.inc:1.15 Sun Aug 15 12:41:40 2021
+++ src/external/bsd/jemalloc/lib/Makefile.inc Sun Oct 8 14:35:21 2023
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile.inc,v 1.15 2021/08/15 12:41:40 rillig Exp $
+# $NetBSD: Makefile.inc,v 1.15.2.1 2023/10/08 14:35:21 martin Exp $
JEMALLOC:=${.PARSEDIR}/..
@@ -53,12 +53,6 @@ COPTS.ctl.c+=-Wno-error=stack-protector
COPTS.stats.c+=-Wno-error=stack-protector
COPTS.tcache.c+=-Wno-error=stack-protector
-.if ${MACHINE_ARCH} == "vax"
-# in merge_overlapping_regs, at regrename.c
-COPTS.arena.c+=-O0
-COPTS.extent.c+=-O0
-.endif
-
SRCS+=${JEMALLOC_SRCS}
jemalloc.d jemalloc.pico jemalloc.o jemalloc.ln jemalloc.po jemalloc.go: \
Index: src/external/bsd/mdocml/lib/libmandoc/Makefile
diff -u src/external/bsd/mdocml/lib/libmandoc/Makefile:1.12 src/external/bsd/mdocml/lib/libmandoc/Makefile:1.12.10.1
--- src/external/bsd/mdocml/lib/libmandoc/Makefile:1.12 Mon Mar 11 00:15:38 2019
+++ src/external/bsd/mdocml/lib/libmandoc/Makefile Sun Oct 8 14:35:20 2023
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.12 2019/03/11 00:15:38 christos Exp $
+# $NetBSD: Makefile,v 1.12.10.1 2023/10/08 14:35:20 martin Exp $
LIBISPRIVATE= yes
@@ -39,11 +39,6 @@ tbl_opts.c
MAN= mandoc.3
-# XXX
-.if ${MACHINE} == "vax"
-COPTS.mdoc_macro.c+=-O0
-.endif
-
COPTS.man_validate.c+=-Wno-error=array-bounds
.include <bsd.lib.mk>
Index: src/external/gpl3/binutils.old/lib/libbfd/Makefile
diff -u src/external/gpl3/binutils.old/lib/libbfd/Makefile:1.8 src/external/gpl3/binutils.old/lib/libbfd/Makefile:1.8.6.1
--- src/external/gpl3/binutils.old/lib/libbfd/Makefile:1.8 Fri Apr 3 17:51:22 2020
+++ src/external/gpl3/binutils.old/lib/libbfd/Makefile Sun Oct 8 14:35:19 2023
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.8 2020/04/03 17:51:22 christos Exp $
+# $NetBSD: Makefile,v 1.8.6.1 2023/10/08 14:35:19 martin Exp $
NOLINKLIB= # defined
NOLINT= # defined
@@ -39,10 +39,6 @@ CPPFLAGS+= -I${.CURDIR}/arch/${BFD_MACHI
-I${DIST}/bfd ${GCPPFLAGS:M-D*} ${GCPPFLAGS:M-I*:N-I.*} \
-DDEBUGDIR=\"${DEBUGDIR}\" -DBINDIR=\"${BINDIR}\"
-.if (${BFD_MACHINE_ARCH} == "vax")
-CPPFLAGS.elf.c += -O0
-.endif
-
COPTS.pei-x86_64.c += -Wno-stack-protector
COPTS.elfxx-mips.c += -Wno-stack-protector
Index: src/external/gpl3/binutils/dist/gas/config/tc-vax.c
diff -u src/external/gpl3/binutils/dist/gas/config/tc-vax.c:1.13 src/external/gpl3/binutils/dist/gas/config/tc-vax.c:1.13.6.1
--- src/external/gpl3/binutils/dist/gas/config/tc-vax.c:1.13 Fri Apr 3 23:48:47 2020
+++ src/external/gpl3/binutils/dist/gas/config/tc-vax.c Sun Oct 8 14:35:18 2023
@@ -282,6 +282,29 @@ md_apply_fix (fixS *fixP, valueT *valueP
if (fixP->fx_subsy != (symbolS *) NULL)
as_bad_where (fixP->fx_file, fixP->fx_line, _("expression too complex"));
+ if (fixP->fx_pcrel)
+ {
+ switch (fixP->fx_r_type)
+ {
+ case BFD_RELOC_32:
+ /* change the relocation type to 32 bit PC-relative */
+ fixP->fx_r_type = BFD_RELOC_32_PCREL;
+ if (fixP->fx_addsy != NULL)
+ {
+ /* Hack around bfd_install_relocation brain damage. */
+ value += fixP->fx_frag->fr_address + fixP->fx_where;
+ }
+ if (fixP->fx_addsy == abs_section_sym)
+ fixP->fx_done = 1;
+ break;
+ default:
+ break;
+ }
+ }
+
+ /*
+ * Common code for pc-relative and non-pc-relative cases
+ */
if (fixP->fx_addsy == NULL)
fixP->fx_done = 1;
@@ -2332,18 +2355,19 @@ md_create_short_jump (char *ptr,
void
md_create_long_jump (char *ptr,
- addressT from_addr ATTRIBUTE_UNUSED,
+ addressT from_addr,
addressT to_addr,
- fragS *frag,
- symbolS *to_symbol)
+ fragS *frag ATTRIBUTE_UNUSED,
+ symbolS *to_symbol ATTRIBUTE_UNUSED)
{
valueT offset;
- offset = to_addr - S_GET_VALUE (to_symbol);
- *ptr++ = VAX_JMP; /* Arbitrary jump. */
- *ptr++ = VAX_ABSOLUTE_MODE;
+ /* Account for 1 byte instruction, 1 byte of address specifier and
+ 4 bytes of offset from PC. */
+ offset = to_addr - (from_addr + 1 + 1 + 4);
+ *ptr++ = VAX_JMP;
+ *ptr++ = VAX_PC_RELATIVE_MODE;
md_number_to_chars (ptr, offset, 4);
- fix_new (frag, ptr - frag->fr_literal, 4, to_symbol, (long) 0, 0, NO_RELOC);
}
#ifdef OBJ_VMS
@@ -3557,12 +3581,39 @@ void
vax_cons_fix_new (fragS *frag, int where, unsigned int nbytes, expressionS *exp,
bfd_reloc_code_real_type r)
{
- if (r == NO_RELOC)
+ int pcrel;
+ // fix PC relative frags too ...
+ switch (r)
+ {
+ case BFD_RELOC_8_PCREL:
+ case BFD_RELOC_16_PCREL:
+ case BFD_RELOC_32_PCREL:
+ pcrel = 1;
+ /*
+ * Displacement mode addressing (of which PC relative is one
+ * type) uses the updated contents of the register as the base
+ * address. VARM, Leonard 1987, pp34
+ */
+ switch (exp->X_op)
+ {
+ case O_constant:
+ case O_symbol:
+ exp->X_add_number += nbytes;
+ break;
+ }
+ break;
+ case NO_RELOC:
r = (nbytes == 1 ? BFD_RELOC_8
: nbytes == 2 ? BFD_RELOC_16
: BFD_RELOC_32);
+ pcrel = 0;
+ break;
+ default:
+ pcrel = 0;
+ break;
+ }
- fix_new_exp (frag, where, (int) nbytes, exp, 0, r);
+ fix_new_exp (frag, where, (int) nbytes, exp, pcrel, r);
}
const char *
@@ -3600,6 +3651,11 @@ tc_vax_regname_to_dw2regnum (char *regna
void
vax_cfi_emit_pcrel_expr (expressionS *expP, unsigned int nbytes)
{
+ expressionS tmp = *expP;
+
+ tmp.X_op = O_subtract;
+ tmp.X_op_symbol = symbol_temp_new_now ();
+ expP = &tmp;
expP->X_add_number += nbytes;
emit_expr (expP, nbytes);
}
Index: src/external/gpl3/binutils/dist/gas/config/tc-vax.h
diff -u src/external/gpl3/binutils/dist/gas/config/tc-vax.h:1.8 src/external/gpl3/binutils/dist/gas/config/tc-vax.h:1.8.6.1
--- src/external/gpl3/binutils/dist/gas/config/tc-vax.h:1.8 Fri Apr 3 23:48:47 2020
+++ src/external/gpl3/binutils/dist/gas/config/tc-vax.h Sun Oct 8 14:35:18 2023
@@ -37,6 +37,8 @@
#ifdef OBJ_ELF
#define TARGET_FORMAT "elf32-vax"
+#define DIFF_EXPR_OK 1
+#define CFI_DIFF_EXPR_OK 0
#endif
#define TARGET_ARCH bfd_arch_vax
Index: src/external/gpl3/binutils/lib/libbfd/Makefile
diff -u src/external/gpl3/binutils/lib/libbfd/Makefile:1.24 src/external/gpl3/binutils/lib/libbfd/Makefile:1.24.2.1
--- src/external/gpl3/binutils/lib/libbfd/Makefile:1.24 Wed Dec 14 18:59:04 2022
+++ src/external/gpl3/binutils/lib/libbfd/Makefile Sun Oct 8 14:35:24 2023
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.24 2022/12/14 18:59:04 skrll Exp $
+# $NetBSD: Makefile,v 1.24.2.1 2023/10/08 14:35:24 martin Exp $
NOLINKLIB= # defined
NOLINT= # defined
@@ -41,10 +41,6 @@ CPPFLAGS+= -I${.CURDIR}/arch/${BFD_MACHI
-DDEBUGDIR=\"${DEBUGDIR}\" -DLIBDIR=\"${LIBDIR}\" \
-DBINDIR=\"${BINDIR}\"
-.if (${BFD_MACHINE_ARCH} == "vax")
-CPPFLAGS.elf.c += -O0
-.endif
-
COPTS.pei-x86_64.c+= -Wno-stack-protector
COPTS.elfxx-mips.c+= -Wno-stack-protector
COPTS.elf.c+= ${${ACTIVE_CC} == "gcc" && ${HAVE_GCC:U0} >= 10:? -Wno-overflow :}
Index: src/external/gpl3/gcc/dist/gcc/dse.c
diff -u src/external/gpl3/gcc/dist/gcc/dse.c:1.15 src/external/gpl3/gcc/dist/gcc/dse.c:1.15.2.1
--- src/external/gpl3/gcc/dist/gcc/dse.c:1.15 Fri Jul 22 20:22:34 2022
+++ src/external/gpl3/gcc/dist/gcc/dse.c Sun Oct 8 14:35:18 2023
@@ -301,7 +301,12 @@ static unsigned HOST_WIDE_INT
lowpart_bitmask (int n)
{
unsigned HOST_WIDE_INT mask = HOST_WIDE_INT_M1U;
-#if 1 // XXXMRG
+#ifdef NB_FIX_VAX_BACKEND
+ if (n < 1)
+ return 0;
+ if (n >= HOST_BITS_PER_WIDE_INT)
+ return mask;
+#else // XXXMRG
gcc_assert(n >= 0 && n <= HOST_BITS_PER_WIDE_INT);
if (n == 0)
return 0;
@@ -1340,6 +1345,10 @@ all_positions_needed_p (store_info *s_in
return false;
return true;
}
+#ifdef NB_FIX_VAX_BACKEND
+ if (const_start >= HOST_BITS_PER_WIDE_INT || const_start < 0)
+ return true;
+#endif
else
{
unsigned HOST_WIDE_INT mask
Index: src/external/gpl3/gcc/dist/gcc/function.c
diff -u src/external/gpl3/gcc/dist/gcc/function.c:1.1.1.17.2.1 src/external/gpl3/gcc/dist/gcc/function.c:1.1.1.17.2.2
--- src/external/gpl3/gcc/dist/gcc/function.c:1.1.1.17.2.1 Thu Jul 13 09:18:18 2023
+++ src/external/gpl3/gcc/dist/gcc/function.c Sun Oct 8 14:35:18 2023
@@ -1720,6 +1720,27 @@ instantiate_virtual_regs_in_insn (rtx_in
break;
case SUBREG:
+#ifdef NB_FIX_VAX_BACKEND
+ if (MEM_P (XEXP (x, 0)))
+ {
+ /* convert a subreg of a MEMORY operand into a
+ register operand */
+ rtx mx = XEXP (x, 0); /* memory operand */
+ rtx addr = XEXP (mx, 0);
+ instantiate_virtual_regs_in_rtx (&addr);
+ start_sequence ();
+ mx = replace_equiv_address (mx, addr, true);
+ addr = force_reg (GET_MODE (addr), addr);
+ mx = replace_equiv_address (mx, addr, true);
+ seq = get_insns ();
+ end_sequence ();
+ if (seq)
+ emit_insn_before (seq, insn);
+
+ /* generate a new subreg expression */
+ x = gen_rtx_SUBREG (GET_MODE (x), mx, SUBREG_BYTE (x));
+ }
+#endif
new_rtx = instantiate_new_reg (SUBREG_REG (x), &offset);
if (new_rtx == NULL)
continue;
@@ -1822,6 +1843,15 @@ instantiate_decl_rtl (rtx x)
return;
}
+#ifdef NB_FIX_VAX_BACKEND
+ /* If this is a SUBREG, recurse for the pieces */
+ if (GET_CODE (x) == SUBREG)
+ {
+ instantiate_decl_rtl (XEXP (x, 0));
+ return;
+ }
+#endif
+
/* If this is not a MEM, no need to do anything. Similarly if the
address is a constant or a register that is not a virtual register. */
if (!MEM_P (x))
Index: src/external/gpl3/gcc/dist/gcc/recog.c
diff -u src/external/gpl3/gcc/dist/gcc/recog.c:1.1.1.12 src/external/gpl3/gcc/dist/gcc/recog.c:1.1.1.12.6.1
--- src/external/gpl3/gcc/dist/gcc/recog.c:1.1.1.12 Sat Apr 10 22:09:26 2021
+++ src/external/gpl3/gcc/dist/gcc/recog.c Sun Oct 8 14:35:18 2023
@@ -992,7 +992,12 @@ general_operand (rtx op, machine_mode mo
??? This is a kludge. */
if (!reload_completed
&& maybe_ne (SUBREG_BYTE (op), 0)
- && MEM_P (sub))
+ && MEM_P (sub)
+#ifdef NB_FIX_VAX_BACKEND
+ && (maybe_gt (SUBREG_BYTE (op), GET_MODE_SIZE (GET_MODE (sub)))
+ || !multiple_p (SUBREG_BYTE (op), GET_MODE_SIZE (mode)))
+#endif
+ )
return 0;
if (REG_P (sub)
Index: src/external/gpl3/gcc/dist/gcc/reload.c
diff -u src/external/gpl3/gcc/dist/gcc/reload.c:1.12 src/external/gpl3/gcc/dist/gcc/reload.c:1.12.2.1
--- src/external/gpl3/gcc/dist/gcc/reload.c:1.12 Fri Jul 22 20:22:34 2022
+++ src/external/gpl3/gcc/dist/gcc/reload.c Sun Oct 8 14:35:18 2023
@@ -4529,6 +4529,50 @@ find_reloads (rtx_insn *insn, int replac
}
}
+#if NB_FIX_VAX_BACKEND
+ /*
+ * Scan the reloads again looking for a case where there is
+ * precisely one RELOAD_FOR_OPERAND_ADDRESS reload and one
+ * RELOAD_FOR_OPADDR_ADDR reload BUT they are for different
+ * operands. choose_reload_regs assumes that the
+ * RELOAD_FOR_OPADDR_ADDR and RELOAD_FOR_OPERAND_ADDRESS reloads are
+ * a pair operating on the same operand and will choose the same
+ * register for both, which is not what is wanted.
+ */
+ {
+ int n_operand_address_reloads = 0,
+ n_opaddr_addr_reloads = 0;
+ int reloadnum_for_operand_address_reload = -1,
+ reloadnum_for_opaddr_addr_reload = -1;
+
+ for (i = 0; i < n_reloads; i++)
+ {
+ switch (rld[i].when_needed)
+ {
+ case RELOAD_FOR_OPADDR_ADDR:
+ n_opaddr_addr_reloads++;
+ reloadnum_for_opaddr_addr_reload = i;
+ break;
+ case RELOAD_FOR_OPERAND_ADDRESS:
+ n_operand_address_reloads++;
+ reloadnum_for_operand_address_reload = i;
+ break;
+ default:
+ break;
+ }
+ }
+
+ if (n_operand_address_reloads == 1
+ && n_opaddr_addr_reloads == 1
+ && rld[reloadnum_for_opaddr_addr_reload].opnum
+ != rld[reloadnum_for_operand_address_reload].opnum)
+ {
+ rld[reloadnum_for_opaddr_addr_reload].when_needed
+ = RELOAD_FOR_OPERAND_ADDRESS;
+ }
+ }
+#endif
+
/* See if we have any reloads that are now allowed to be merged
because we've changed when the reload is needed to
RELOAD_FOR_OPERAND_ADDRESS or RELOAD_FOR_OTHER_ADDRESS. Only
Index: src/external/gpl3/gcc/dist/gcc/rtlanal.c
diff -u src/external/gpl3/gcc/dist/gcc/rtlanal.c:1.12 src/external/gpl3/gcc/dist/gcc/rtlanal.c:1.12.2.1
--- src/external/gpl3/gcc/dist/gcc/rtlanal.c:1.12 Fri Jul 22 20:22:34 2022
+++ src/external/gpl3/gcc/dist/gcc/rtlanal.c Sun Oct 8 14:35:18 2023
@@ -2953,6 +2953,15 @@ may_trap_p_1 (const_rtx x, unsigned flag
/* These operations don't trap even with floating point. */
break;
+ case SIGN_EXTRACT:
+ if (targetm.have_extv ())
+ return targetm.bitfield_may_trap_p (x, flags);
+ break;
+ case ZERO_EXTRACT:
+ if (targetm.have_extzv ())
+ return targetm.bitfield_may_trap_p (x, flags);
+ break;
+
default:
/* Any floating arithmetic may trap. */
if (FLOAT_MODE_P (GET_MODE (x)) && flag_trapping_math)
Index: src/external/gpl3/gcc/dist/gcc/target.def
diff -u src/external/gpl3/gcc/dist/gcc/target.def:1.1.1.10 src/external/gpl3/gcc/dist/gcc/target.def:1.1.1.10.2.1
--- src/external/gpl3/gcc/dist/gcc/target.def:1.1.1.10 Fri Jul 22 19:52:55 2022
+++ src/external/gpl3/gcc/dist/gcc/target.def Sun Oct 8 14:35:18 2023
@@ -3919,6 +3919,20 @@ passed along.",
int, (const_rtx x, unsigned flags),
default_unspec_may_trap_p)
+/* Return nonzero if evaluating SIGN_EXTRACT X or ZERO_EXTRACT X might
+ cause a trap. FLAGS has the same meaning as in rtlanal.c:
+ may_trap_p_1. */
+DEFHOOK
+(bitfield_may_trap_p,
+ "This target hook returns nonzero if @var{x}, an @code{sign_extract} or\n\
+@code{zero_extract} operation, might cause a trap. Targets can use\n\
+this hook to enhance precision of analysis for @code{sign_extract} and\n\
+@code{zero_extract} operations. You may call @code{may_trap_p_1}\n\
+to analyze inner elements of @var{x} in which case @var{flags} should be\n\
+passed along.",
+ int, (const_rtx x, unsigned flags),
+ default_bitfield_may_trap_p)
+
/* Given a register, this hook should return a parallel of registers
to represent where to find the register pieces. Define this hook
if the register and its mode are represented in Dwarf in
Index: src/external/gpl3/gcc/dist/gcc/targhooks.c
diff -u src/external/gpl3/gcc/dist/gcc/targhooks.c:1.10 src/external/gpl3/gcc/dist/gcc/targhooks.c:1.10.6.1
--- src/external/gpl3/gcc/dist/gcc/targhooks.c:1.10 Sun Apr 11 00:02:11 2021
+++ src/external/gpl3/gcc/dist/gcc/targhooks.c Sun Oct 8 14:35:18 2023
@@ -126,6 +126,12 @@ default_unspec_may_trap_p (const_rtx x,
return 0;
}
+int
+default_bitfield_may_trap_p (const_rtx x, unsigned flags)
+{
+ return 0;
+}
+
machine_mode
default_promote_function_mode (const_tree type ATTRIBUTE_UNUSED,
machine_mode mode,
Index: src/external/gpl3/gcc/dist/gcc/targhooks.h
diff -u src/external/gpl3/gcc/dist/gcc/targhooks.h:1.1.1.10 src/external/gpl3/gcc/dist/gcc/targhooks.h:1.1.1.10.6.1
--- src/external/gpl3/gcc/dist/gcc/targhooks.h:1.1.1.10 Sat Apr 10 22:09:28 2021
+++ src/external/gpl3/gcc/dist/gcc/targhooks.h Sun Oct 8 14:35:18 2023
@@ -29,6 +29,7 @@ extern bool default_legitimize_address_d
extern bool default_const_not_ok_for_debug_p (rtx);
extern int default_unspec_may_trap_p (const_rtx, unsigned);
+extern int default_bitfield_may_trap_p (const_rtx, unsigned);
extern machine_mode default_promote_function_mode (const_tree, machine_mode,
int *, const_tree, int);
extern machine_mode default_promote_function_mode_always_promote
Index: src/external/gpl3/gcc/dist/gcc/config/vax/builtins.md
diff -u src/external/gpl3/gcc/dist/gcc/config/vax/builtins.md:1.12 src/external/gpl3/gcc/dist/gcc/config/vax/builtins.md:1.12.6.1
--- src/external/gpl3/gcc/dist/gcc/config/vax/builtins.md:1.12 Sun Apr 11 00:02:15 2021
+++ src/external/gpl3/gcc/dist/gcc/config/vax/builtins.md Sun Oct 8 14:35:18 2023
@@ -32,12 +32,15 @@
(define_expand "ffssi2"
[(set (match_operand:SI 0 "nonimmediate_operand" "")
- (ffs:SI (match_operand:SI 1 "general_operand" "")))]
+ (ffs:SI (match_operand:SI 1 "general_operand" "")))
+ (set (cc0)
+ (compare (match_dup 0) (const_int 0)))
+ ]
""
"
{
rtx label = gen_label_rtx ();
- emit_insn (gen_ctzsi2 (operands[0], operands[1]));
+ emit_insn (gen_count_zero (operands[0], operands[1]));
emit_jump_insn (gen_condjump (gen_rtx_NE(VOIDmode, cc0_rtx, const0_rtx), label));
emit_move_insn (operands[0], constm1_rtx);
emit_label (label);
@@ -48,7 +51,19 @@
(define_insn "ctzsi2"
[(set (match_operand:SI 0 "nonimmediate_operand" "=rQ")
(ctz:SI (match_operand:SI 1 "general_operand" "nrQT")))
- (set (cc0) (match_dup 0))]
+ (set (cc0)
+ (compare (match_dup 0) (const_int 0)))
+ ]
+ ""
+ "ffs $0,$32,%1,%0\;tstl %0")
+
+(define_insn "count_zero"
+ [ (set (match_operand:SI 0 "nonimmediate_operand" "")
+ (ctz:SI (match_operand:SI 1 "general_operand" "")))
+ (set (cc0)
+ (compare (match_dup 0)
+ (const_int 33)))
+ ]
""
"ffs $0,$32,%1,%0")
@@ -67,7 +82,7 @@
label = gen_label_rtx ();
emit_move_insn (operands[0], const1_rtx);
- emit_jump_insn (gen_jbbssi<mode> (operands[1], const0_rtx, label, operands[1]));
+ emit_jump_insn (gen_jbbssi<mode> (operands[1], const0_rtx, label));
emit_move_insn (operands[0], const0_rtx);
emit_label (label);
DONE;
@@ -77,13 +92,13 @@
[(parallel
[(set (pc)
(if_then_else
- (ne (zero_extract:SI (match_operand:QI 0 "volatile_mem_operand" "g")
+ (ne (zero_extract:SI (match_operand:QI 0 "volatile_mem_operand" "+g")
(const_int 1)
(match_operand:SI 1 "general_operand" "nrm"))
(const_int 0))
(label_ref (match_operand 2 "" ""))
(pc)))
- (set (zero_extract:SI (match_operand:QI 3 "volatile_mem_operand" "+0")
+ (set (zero_extract:SI (match_dup 0)
(const_int 1)
(match_dup 1))
(const_int 1))])]
@@ -94,13 +109,13 @@
[(parallel
[(set (pc)
(if_then_else
- (ne (zero_extract:SI (match_operand:HI 0 "volatile_mem_operand" "Q")
+ (ne (zero_extract:SI (match_operand:HI 0 "volatile_mem_operand" "+Q")
(const_int 1)
(match_operand:SI 1 "general_operand" "nrm"))
(const_int 0))
(label_ref (match_operand 2 "" ""))
(pc)))
- (set (zero_extract:SI (match_operand:HI 3 "volatile_mem_operand" "+0")
+ (set (zero_extract:SI (match_dup 0)
(const_int 1)
(match_dup 1))
(const_int 1))])]
@@ -111,13 +126,13 @@
[(parallel
[(set (pc)
(if_then_else
- (ne (zero_extract:SI (match_operand:SI 0 "volatile_mem_operand" "Q")
+ (ne (zero_extract:SI (match_operand:SI 0 "volatile_mem_operand" "+Q")
(const_int 1)
(match_operand:SI 1 "general_operand" "nrm"))
(const_int 0))
(label_ref (match_operand 2 "" ""))
(pc)))
- (set (zero_extract:SI (match_operand:SI 3 "volatile_mem_operand" "+0")
+ (set (zero_extract:SI (match_dup 0)
(const_int 1)
(match_dup 1))
(const_int 1))])]
Index: src/external/gpl3/gcc/dist/gcc/config/vax/elf.h
diff -u src/external/gpl3/gcc/dist/gcc/config/vax/elf.h:1.11 src/external/gpl3/gcc/dist/gcc/config/vax/elf.h:1.11.6.1
--- src/external/gpl3/gcc/dist/gcc/config/vax/elf.h:1.11 Sun Apr 11 00:02:15 2021
+++ src/external/gpl3/gcc/dist/gcc/config/vax/elf.h Sun Oct 8 14:35:19 2023
@@ -45,7 +45,9 @@ along with GCC; see the file COPYING3.
count pushed by the CALLS and before the start of the saved registers. */
#define INCOMING_FRAME_SP_OFFSET 0
-/* Offset from the frame pointer register value to the top of the stack. */
+/* Offset from the frame pointer register value to the DWARF Canonical Frame
+ Address. */
+#undef FRAME_POINTER_CFA_OFFSET
#define FRAME_POINTER_CFA_OFFSET(FNDECL) 0
/* We use R2-R5 (call-clobbered) registers for exceptions. */
@@ -56,14 +58,14 @@ along with GCC; see the file COPYING3.
gen_rtx_MEM (SImode, \
plus_constant (Pmode, \
gen_rtx_REG (Pmode, FRAME_POINTER_REGNUM),\
- -4))
+ -1 * UNITS_PER_WORD))
/* Simple store the return handler into the call frame. */
#define EH_RETURN_HANDLER_RTX \
gen_rtx_MEM (Pmode, \
plus_constant (Pmode, \
gen_rtx_REG (Pmode, FRAME_POINTER_REGNUM),\
- 16))
+ RETURN_ADDRESS_OFFSET))
/* The VAX wants no space between the case instruction and the jump table. */
@@ -104,5 +106,5 @@ along with GCC; see the file COPYING3.
fputs (integer_asm_op (SIZE, FALSE), FILE); \
fprintf (FILE, "%%pcrel%d(", SIZE * 8); \
assemble_name (FILE, LABEL); \
- fprintf (FILE, "%+d)", SIZE); \
+ fputc (')', FILE); \
} while (0)
Index: src/external/gpl3/gcc/dist/gcc/config/vax/vax.c
diff -u src/external/gpl3/gcc/dist/gcc/config/vax/vax.c:1.22 src/external/gpl3/gcc/dist/gcc/config/vax/vax.c:1.22.6.1
--- src/external/gpl3/gcc/dist/gcc/config/vax/vax.c:1.22 Sun Apr 11 00:02:15 2021
+++ src/external/gpl3/gcc/dist/gcc/config/vax/vax.c Sun Oct 8 14:35:18 2023
@@ -46,6 +46,7 @@ along with GCC; see the file COPYING3.
#include "target-def.h"
static void vax_option_override (void);
+static void vax_init_builtins (void);
static bool vax_legitimate_address_p (machine_mode, rtx, bool);
static void vax_file_start (void);
static void vax_init_libfuncs (void);
@@ -63,6 +64,7 @@ static void vax_trampoline_init (rtx, tr
static poly_int64 vax_return_pops_args (tree, tree, poly_int64);
static bool vax_mode_dependent_address_p (const_rtx, addr_space_t);
static HOST_WIDE_INT vax_starting_frame_offset (void);
+static int vax_bitfield_may_trap_p (const_rtx, unsigned);
/* Initialize the GCC target structure. */
#undef TARGET_ASM_ALIGNED_HI_OP
@@ -76,6 +78,9 @@ static HOST_WIDE_INT vax_starting_frame_
#undef TARGET_INIT_LIBFUNCS
#define TARGET_INIT_LIBFUNCS vax_init_libfuncs
+#undef TARGET_INIT_BUILTINS
+#define TARGET_INIT_BUILTINS vax_init_builtins
+
#undef TARGET_ASM_OUTPUT_MI_THUNK
#define TARGET_ASM_OUTPUT_MI_THUNK vax_output_mi_thunk
#undef TARGET_ASM_CAN_OUTPUT_MI_THUNK
@@ -136,6 +141,9 @@ vax_elf_binds_local_p (const_tree exp)
#undef TARGET_HAVE_SPECULATION_SAFE_VALUE
#define TARGET_HAVE_SPECULATION_SAFE_VALUE speculation_safe_value_not_needed
+#undef TARGET_BITFIELD_MAY_TRAP_P
+#define TARGET_BITFIELD_MAY_TRAP_P vax_bitfield_may_trap_p
+
struct gcc_target targetm = TARGET_INITIALIZER;
/* Set global variables as needed for the options enabled. */
@@ -147,12 +155,19 @@ vax_option_override (void)
if (TARGET_G_FLOAT)
REAL_MODE_FORMAT (DFmode) = &vax_g_format;
- flag_dwarf2_cfi_asm = 0;
-
#ifdef SUBTARGET_OVERRIDE_OPTIONS
SUBTARGET_OVERRIDE_OPTIONS;
#endif
}
+/* Implement the TARGET_INIT_BUILTINS target hook. */
+
+static void
+vax_init_builtins (void)
+{
+#ifdef SUBTARGET_INIT_BUILTINS
+ SUBTARGET_INIT_BUILTINS;
+#endif
+}
static void
vax_add_reg_cfa_offset (rtx insn, int offset, rtx src)
@@ -182,20 +197,28 @@ vax_expand_prologue (void)
HOST_WIDE_INT size;
rtx insn;
- offset = 20;
for (regno = 0; regno < FIRST_PSEUDO_REGISTER; regno++)
if (df_regs_ever_live_p (regno) && !call_used_or_fixed_reg_p (regno))
{
mask |= 1 << regno;
- offset += 4;
}
+ if (crtl->calls_eh_return)
+ {
+ mask |= 0
+ | ( 1 << EH_RETURN_DATA_REGNO(0) )
+ | ( 1 << EH_RETURN_DATA_REGNO(1) )
+ | ( 1 << EH_RETURN_DATA_REGNO(2) )
+ | ( 1 << EH_RETURN_DATA_REGNO(3) )
+ ;
+ }
+
insn = emit_insn (gen_procedure_entry_mask (GEN_INT (mask)));
RTX_FRAME_RELATED_P (insn) = 1;
/* The layout of the CALLG/S stack frame is follows:
- <- CFA, AP
+ <- AP
r11
r10
... Registers saved as specified by MASK
@@ -205,16 +228,11 @@ vax_expand_prologue (void)
old fp
old ap
old psw
- zero
- <- FP, SP
+ condition handler <- CFA, FP, SP
+ (initially zero)
The rest of the prologue will adjust the SP for the local frame. */
- add_reg_note (insn, REG_CFA_DEF_CFA,
- plus_constant (Pmode, frame_pointer_rtx, offset));
- insn = emit_insn (gen_blockage ());
- RTX_FRAME_RELATED_P (insn) = 1;
-
#ifdef notyet
/*
* We can't do this, the dwarf code asserts and we don't have yet a
@@ -226,14 +244,21 @@ vax_expand_prologue (void)
vax_add_reg_cfa_offset (insn, 12, frame_pointer_rtx);
vax_add_reg_cfa_offset (insn, 16, pc_rtx);
- offset = 20;
+ offset = 5 * UNITS_PER_WORD; /* PSW, AP &c */
for (regno = 0; regno < FIRST_PSEUDO_REGISTER; regno++)
if (mask & (1 << regno))
{
vax_add_reg_cfa_offset (insn, offset, gen_rtx_REG (SImode, regno));
- offset += 4;
+ offset += 1 * UNITS_PER_WORD;
}
+ /* Because add_reg_note pushes the notes, adding this last means that
+ it will be processed first. This is required to allow the other
+ notes to be interpreted properly. */
+ /* The RTX here must match the instantiation of the CFA vreg */
+ add_reg_note (insn, REG_CFA_DEF_CFA,
+ plus_constant (Pmode, frame_pointer_rtx,
+ FRAME_POINTER_CFA_OFFSET(current_function_decl)));
/* Allocate the local stack frame. */
size = get_frame_size ();
size -= vax_starting_frame_offset ();
@@ -577,7 +602,7 @@ print_operand (FILE *file, rtx x, int co
else if (code == 'b' && CONST_INT_P (x))
fprintf (file, "$%d", (int) (0xff & - INTVAL (x)));
else if (code == 'M' && CONST_INT_P (x))
- fprintf (file, "$%d", ~((1 << INTVAL (x)) - 1));
+ fprintf (file, "$%d", ((~0) << (INTVAL (x))));
else if (code == 'x' && CONST_INT_P (x))
fprintf (file, HOST_WIDE_INT_PRINT_HEX, INTVAL (x));
else if (REG_P (x))
@@ -1633,13 +1658,67 @@ vax_output_int_subtract (rtx_insn *insn,
{
/* Negation is tricky. It's basically complement and increment.
Negate hi, then lo, and subtract the carry back. */
- if ((MEM_P (low[0]) && GET_CODE (XEXP (low[0], 0)) == POST_INC)
- || (MEM_P (operands[0])
- && GET_CODE (XEXP (operands[0], 0)) == POST_INC))
- fatal_insn ("illegal operand detected", insn);
- output_asm_insn ("mnegl %2,%0", operands);
+
+ /*
+ * If the source *or* the destination operands are
+ * indirect memory references with post-increment
+ * addressing, an memory reference using the base
+ * register plus an offset must be constructed to
+ * address the high word of the source or result.
+ *
+ * pre-decrement memory references are rejected by the
+ * illegal_addsub_di_memory_operand predicate
+ */
+
+ rtx earlyhiw[3];
+
+ /* high word - destination */
+ if (MEM_P (operands[0])
+ && GET_CODE (XEXP (operands[0], 0)) == POST_INC)
+ {
+ const enum machine_mode mode = GET_MODE (operands[0]);
+ rtx x = XEXP (XEXP (operands[0], 0), 0);
+ x = plus_constant (Pmode, x, GET_MODE_SIZE (mode));
+ x = gen_rtx_MEM (mode, x);
+ earlyhiw[0] = x;
+ }
+ else
+ earlyhiw[0] = operands[0];
+
+ earlyhiw[1] = operands[1]; /* easy, this is const0_rtx */
+
+ /* high word - source */
+ if (MEM_P (operands[2])
+ && GET_CODE (XEXP (operands[2], 0)) == POST_INC)
+ {
+ const enum machine_mode mode = GET_MODE (operands[2]);
+ rtx x = XEXP (XEXP (operands[2], 0), 0);
+ x = plus_constant (Pmode, x, GET_MODE_SIZE (mode));
+ x = gen_rtx_MEM (mode, x);
+ earlyhiw[2] = x;
+ }
+ else
+ earlyhiw[2] = operands[2];
+
+ output_asm_insn ("mnegl %2,%0", earlyhiw);
output_asm_insn ("mnegl %2,%0", low);
- return "sbwc $0,%0";
+
+ if (earlyhiw[2] != operands[2])
+ {
+ rtx ops[3];
+ const enum machine_mode mode = GET_MODE (operands[2]);
+
+ output_asm_insn ("sbwc $0,%0", operands);
+ /* update the source operand's base register to
+ point to the following word */
+ ops[0] = XEXP (XEXP (operands[2], 0), 0);
+ ops[1] = const0_rtx;
+ ops[2] = gen_int_mode (GET_MODE_SIZE (mode), SImode);
+ output_asm_insn ("addl2 %2,%0", ops);
+ return "";
+ }
+ else
+ return "sbwc $0,%0";
}
gcc_assert (rtx_equal_p (operands[0], operands[1]));
gcc_assert (rtx_equal_p (low[0], low[1]));
@@ -2040,6 +2119,46 @@ vax_mode_dependent_address_p (const_rtx
}
static rtx
+decompose_address_operand(rtx addr)
+{
+ enum rtx_code code = GET_CODE (addr);
+
+ switch (code)
+ {
+ case CONST:
+ return decompose_address_operand (XEXP (addr, 0));
+ case PLUS:
+ case MULT:
+ {
+ rtx op0, op1;
+ rtx temp;
+ /*
+ * Generate a temporary register, assign the result of
+ * decomposing op0 to it, then generate an op code opping (PLUS
+ * or MULT) the result of decomposing op1 to it.
+ * Return the temporary register.
+ */
+ temp = gen_reg_rtx (Pmode);
+ op0 = decompose_address_operand (XEXP (addr, 0));
+ op1 = decompose_address_operand (XEXP (addr, 1));
+
+ emit_move_insn (temp, op0);
+
+ if (code == PLUS)
+ temp = gen_rtx_PLUS (Pmode, temp, op1);
+ else if (code == MULT)
+ temp = gen_rtx_MULT (Pmode, temp, op1);
+
+ return temp;
+ }
+ break;
+ default:
+ break;
+ }
+ return addr;
+}
+
+static rtx
fixup_mathdi_operand (rtx x, machine_mode mode)
{
if (illegal_addsub_di_memory_operand (x, mode))
@@ -2054,7 +2173,7 @@ fixup_mathdi_operand (rtx x, machine_mod
addr = XEXP (XEXP (addr, 0), 0);
}
#endif
- emit_move_insn (temp, addr);
+ emit_move_insn (temp, decompose_address_operand (addr));
if (offset)
temp = gen_rtx_PLUS (Pmode, temp, offset);
x = gen_rtx_MEM (DImode, temp);
@@ -2393,3 +2512,34 @@ vax_decomposed_dimode_operand_p (rtx lo,
return rtx_equal_p(lo, hi) && lo_offset + 4 == hi_offset;
}
+
+/* Return 1 if a bitfield instruction (extv/extzv) may trap */
+static int
+vax_bitfield_may_trap_p (const_rtx x, unsigned flags)
+{
+ /* per the VARM
+ * Bitfield instructions may trap if
+ * size (arg1) GTRU 32
+ * size (arg1) NEQ 0, pos (arg 2) GTRU 31 and the field is in a register
+ * i.e. REG_P(operands[0]) is true
+ *
+ * GCC can only determine that a bitfield instruction will not trap
+ * if the size and position arguments are constants; if they aren't,
+ * the instruction must be assumed to trap.
+ */
+ rtx field = XEXP (x, 0);
+ rtx size = XEXP (x, 1);
+ rtx pos = XEXP (x, 2);
+ int retval = 0;
+
+ if (!CONST_INT_P (size) || !CONST_INT_P (pos))
+ retval = 1;
+ else if (INTVAL (size) < 0 || INTVAL (size) > GET_MODE_BITSIZE ( SImode ))
+ retval = 1;
+ else if (REG_P (field) && INTVAL (size) != 0
+ && (INTVAL (pos) < 0 || INTVAL (pos) >= GET_MODE_BITSIZE ( SImode )))
+ retval = 1;
+ else
+ retval = 0;
+ return retval;
+}
Index: src/external/gpl3/gcc/dist/gcc/config/vax/vax.md
diff -u src/external/gpl3/gcc/dist/gcc/config/vax/vax.md:1.17 src/external/gpl3/gcc/dist/gcc/config/vax/vax.md:1.17.6.1
--- src/external/gpl3/gcc/dist/gcc/config/vax/vax.md:1.17 Sun Apr 11 01:38:05 2021
+++ src/external/gpl3/gcc/dist/gcc/config/vax/vax.md Sun Oct 8 14:35:18 2023
@@ -33,6 +33,8 @@
; insn in the code.
VUNSPEC_SYNC_ISTREAM ; sequence of insns to sync the I-stream
VUNSPEC_PEM ; 'procedure_entry_mask' insn.
+
+ VUNSPEC_EH_RETURN
])
(define_constants
@@ -438,7 +440,7 @@
"vax_expand_addsub_di_operands (operands, MINUS); DONE;")
(define_insn "sbcdi3"
- [(set (match_operand:DI 0 "nonimmediate_addsub_di_operand" "=Rr,Rr")
+ [(set (match_operand:DI 0 "nonimmediate_addsub_di_operand" "=&Rr,&Rr")
(minus:DI (match_operand:DI 1 "general_addsub_di_operand" "0,I")
(match_operand:DI 2 "general_addsub_di_operand" "nRr,Rr")))]
"TARGET_QMATH"
@@ -731,7 +733,7 @@
(minus:QI (const_int 32)
(match_dup 4)))
(set (match_operand:SI 0 "nonimmediate_operand" "=g")
- (zero_extract:SI (match_operand:SI 1 "register_operand" "r")
+ (zero_extract:SI (match_operand:SI 1 "general_operand" "g")
(match_dup 3)
(match_operand:SI 2 "register_operand" "g")))]
""
@@ -739,6 +741,10 @@
{
operands[3] = gen_reg_rtx (QImode);
operands[4] = gen_lowpart (QImode, operands[2]);
+ operands[4] = gen_rtx_MINUS (QImode, GEN_INT (32), operands[4]);
+ emit_move_insn (operands[3], operands[4]);
+ emit_insn (gen_extzv (operands[0], operands[1], operands[3], operands[2]));
+ DONE;
}")
;; Rotate right on the VAX works by negating the shift count.
@@ -821,32 +827,87 @@
return \"movw %3,%0\";
}")
-(define_insn ""
- [(set (match_operand:SI 0 "nonimmediate_operand" "=&g")
- (zero_extract:SI (match_operand:SI 1 "register_operand" "ro")
+;;
+;; Register source, field width is either 8 or 16, field start
+;; is zero - simple, this is a mov[bl].
+;;
+(define_insn "*extzvQISI"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=g")
+ (zero_extract:SI (match_operand:SI 1 "register_operand" "r")
(match_operand:QI 2 "const_int_operand" "n")
(match_operand:SI 3 "const_int_operand" "n")))]
- "(INTVAL (operands[2]) == 8 || INTVAL (operands[2]) == 16)
+ "INTVAL (operands[3]) == 0
+ && INTVAL (operands[2]) == GET_MODE_BITSIZE ( QImode )"
+ "movzbl %1, %0"
+)
+
+(define_insn "*extzvHISI"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=g")
+ (zero_extract:SI (match_operand:SI 1 "register_operand" "r")
+ (match_operand:QI 2 "const_int_operand" "n")
+ (match_operand:SI 3 "const_int_operand" "n")))]
+ "INTVAL (operands[3]) == 0
+ && INTVAL (operands[2]) == GET_MODE_BITSIZE ( HImode )"
+ "movzwl %1, %0"
+)
+
+;;
+;; Register source, field width is the entire register
+;;
+(define_insn "*extzvSISI"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=g")
+ (zero_extract:SI (match_operand:SI 1 "register_operand" "r")
+ (match_operand:QI 2 "const_int_operand" "n")
+ (match_operand:SI 3 "const_int_operand" "n")
+
+ ))]
+ "INTVAL (operands[3]) == 0
+ && INTVAL (operands[2]) == GET_MODE_BITSIZE ( SImode )"
+ "*
+{
+ if (rtx_equal_p (operands[0], operands[1]))
+ return \"\"; /* no-op */
+ return \"movl %1,%0\";
+}")
+
+;; Register source, non-zero field start is handled elsewhere
+
+;; Offsettable memory, field width 8 or 16, field start on
+;; boundary matching the field width.
+
+(define_insn "*extzvQISI2"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=g")
+ (zero_extract:SI (match_operand:SI 1 "memory_operand" "o")
+ (match_operand:QI 2 "const_int_operand" "n")
+ (match_operand:SI 3 "const_int_operand" "n")))]
+ "INTVAL (operands[2]) == 8
&& INTVAL (operands[3]) % INTVAL (operands[2]) == 0
- && (REG_P (operands[1])
- || (MEM_P (operands[1])
- && ! mode_dependent_address_p (XEXP (operands[1], 0),
- MEM_ADDR_SPACE (operands[1]))))"
+ && ! mode_dependent_address_p (XEXP (operands[1], 0),
+ MEM_ADDR_SPACE (operands[1]))"
"*
{
- if (REG_P (operands[1]))
- {
- if (INTVAL (operands[3]) != 0)
- return \"extzv %3,%2,%1,%0\";
- }
- else
- operands[1]
- = adjust_address (operands[1],
- INTVAL (operands[2]) == 8 ? QImode : HImode,
- INTVAL (operands[3]) / 8);
+ operands[1]
+ = adjust_address (operands[1],
+ QImode,
+ INTVAL (operands[3]) / 8);
+ return \"movzbl %1,%0\";
+}")
- if (INTVAL (operands[2]) == 8)
- return \"movzbl %1,%0\";
+(define_insn "*extzvHISI2"
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=g")
+ (zero_extract:SI (match_operand:SI 1 "memory_operand" "o")
+ (match_operand:QI 2 "const_int_operand" "n")
+ (match_operand:SI 3 "const_int_operand" "n")))]
+ "INTVAL (operands[2]) == 16
+ && INTVAL (operands[3]) % INTVAL (operands[2]) == 0
+ && ! mode_dependent_address_p (XEXP (operands[1], 0),
+ MEM_ADDR_SPACE (operands[1]))"
+ "*
+{
+ operands[1]
+ = adjust_address (operands[1],
+ HImode,
+ INTVAL (operands[3]) / 8);
return \"movzwl %1,%0\";
}")
@@ -923,17 +984,26 @@
return \"rotl %R3,%1,%0\;cvtwl %0,%0\";
}")
+;; When the field position and size are constant and the destination
+;; is a register, extv and extzv are much slower than a rotate followed
+;; by a bicl or sign extension. Because we might end up choosing ext[z]v
+;; anyway, we can't allow immediate values for the primary source operand.
+
+;; Because some of the instruction sequences generated by this pattern
+;; overwrite the output operand part way through, the output operand
+;; must be marked earlyclobber, may only be a register or memory
+;; operand and must not have any side effects (e.g. pre/post increment)
+;;
(define_insn ""
- [(set (match_operand:SI 0 "nonimmediate_operand" "=g")
- (zero_extract:SI (match_operand:SI 1 "register_operand" "ro")
- (match_operand:QI 2 "general_operand" "g")
- (match_operand:SI 3 "general_operand" "nrmT")))]
- ""
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=&ro")
+ (zero_extract:SI (match_operand:SI 1 "register_operand" "r")
+ (match_operand:QI 2 "const_int_operand" "n")
+ (match_operand:SI 3 "const_int_operand" "n")
+
+ ))]
+ "INTVAL (operands[3]) != 0"
"*
{
- if (! CONST_INT_P (operands[3]) || ! CONST_INT_P (operands[2])
- || ! REG_P (operands[0]))
- return \"extzv %3,%2,%1,%0\";
if (INTVAL (operands[2]) == 8)
return \"rotl %R3,%1,%0\;movzbl %0,%0\";
if (INTVAL (operands[2]) == 16)
@@ -941,7 +1011,14 @@
if (INTVAL (operands[3]) & 31)
return \"rotl %R3,%1,%0\;bicl2 %M2,%0\";
if (rtx_equal_p (operands[0], operands[1]))
- return \"bicl2 %M2,%0\";
+ {
+ if (INTVAL (operands[2]) == 32)
+ return \"\"; /* no-op */
+ else
+ return \"bicl2 %M2,%0\";
+ }
+ if (INTVAL (operands[2]) == 32)
+ return \"movl %1,%0\";
return \"bicl3 %M2,%1,%0\";
}")
@@ -969,7 +1046,40 @@
""
"cmpzv %2,%1,%0,%3")
-(define_insn "extv"
+(define_expand "extv"
+ [(set (match_operand:SI 0 "general_operand" "")
+ (sign_extract:SI (match_dup 4)
+ (match_operand:QI 2 "general_operand" "")
+ (match_operand:SI 3 "general_operand" ""))
+ )]
+ ""
+ "{
+ /*
+ * If the source operand is a memory reference, and the address
+ * is a symbol, and we're in PIC mode, load the address into a
+ * register. Don't evaluate the field start or width at this time.
+ */
+ operands[4] = operands[1];
+ if (flag_pic
+ /* && !reload_completed */
+ && MEM_P (operands[1])
+ && !mode_dependent_address_p (XEXP (operands[1], 0),
+ MEM_ADDR_SPACE (operands[1]))
+ && SYMBOL_REF_P (XEXP (operands[1], 0))
+ && !SYMBOL_REF_LOCAL_P (XEXP (operands[1], 0))
+ )
+ {
+ rtx address = XEXP (operands[1], 0);
+ rtx temp = gen_reg_rtx (Pmode);
+ emit_move_insn (temp, address);
+ /* copy the original memory reference, replacing the address */
+ operands[4] = change_address (operands[1], VOIDmode, temp);
+ set_mem_align (operands[4], MEM_ALIGN (operands[1]));
+ }
+ }"
+)
+
+(define_insn ""
[(set (match_operand:SI 0 "nonimmediate_operand" "=g")
(sign_extract:SI (match_operand:QI 1 "memory_operand" "m")
(match_operand:QI 2 "general_operand" "g")
@@ -995,13 +1105,70 @@
[(set (match_operand:SI 0 "general_operand" "")
(zero_extract:SI (match_operand:SI 1 "general_operand" "")
(match_operand:QI 2 "general_operand" "")
- (match_operand:SI 3 "general_operand" "")))]
+ (match_operand:SI 3 "general_operand" ""))
+ )]
""
- "")
+ "{
+ if (CONST_INT_P (operands[1]))
+ {
+ /*
+ * extzv of a constant doesn't work, so load the constant
+ * into a register.
+ */
+ rtx temp = gen_reg_rtx (SImode);
+ emit_move_insn (temp, operands[1]);
+ operands[1] = temp;
+ }
+
+
+ /*
+ * If the source operand is a memory reference, and the address
+ * is a symbol, and we're in PIC mode, load the address into a
+ * register. Don't evaluate the field start or width at this time.
+ */
+ if (flag_pic
+ /* && !reload_completed */
+ && MEM_P (operands[1])
+ && !mode_dependent_address_p (XEXP (operands[1], 0),
+ MEM_ADDR_SPACE (operands[1]))
+ && SYMBOL_REF_P (XEXP (operands[1], 0))
+ && !SYMBOL_REF_LOCAL_P (XEXP (operands[1], 0))
+ )
+ {
+ rtx address = XEXP (operands[1], 0);
+ rtx temp = gen_reg_rtx (Pmode);
+ emit_move_insn (temp, address);
+ /* copy the original memory reference, replacing the address */
+ operands[1] = change_address (operands[1], VOIDmode, temp);
+ set_mem_align (operands[1], MEM_ALIGN (operands[1]));
+ }
+ else
+ if ((MEM_P (operands[1]) && !CONST_INT_P (operands[2]))
+ || SUBREG_P (operands[1])
+ )
+ {
+ /* Memory addresses for extzv are bytes, so load the source
+ operand into a register */
+ rtx temp = gen_reg_rtx (SImode);
+ emit_move_insn (temp, operands[1]);
+ operands[1] = temp;
+ }
+ else if (address_operand (operands[1], SImode))
+ {
+ operands[1] = force_reg (SImode, operands[1]);
+ }
+
+ }"
+)
+
+;;
+;; Operand 1 must not, under any circumstances, be an indexed operand
+;; as extzv computes indices based on the size of a byte.
+;;
(define_insn ""
- [(set (match_operand:SI 0 "nonimmediate_operand" "=g")
- (zero_extract:SI (match_operand:QI 1 "memory_operand" "m")
+ [(set (match_operand:SI 0 "nonimmediate_operand" "=&g")
+ (zero_extract:SI (match_operand:SI 1 "nonimmediate_operand" "rQ")
(match_operand:QI 2 "general_operand" "g")
(match_operand:SI 3 "general_operand" "nrmT")))]
""
@@ -1010,10 +1177,7 @@
if (! REG_P (operands[0]) || ! CONST_INT_P (operands[2])
|| ! CONST_INT_P (operands[3])
|| INTVAL (operands[2]) + INTVAL (operands[3]) > 32
- || side_effects_p (operands[1])
- || (MEM_P (operands[1])
- && mode_dependent_address_p (XEXP (operands[1], 0),
- MEM_ADDR_SPACE (operands[1]))))
+ || side_effects_p (operands[1]))
return \"extzv %3,%2,%1,%0\";
if (INTVAL (operands[2]) == 8)
return \"rotl %R3,%1,%0\;movzbl %0,%0\";
@@ -1045,12 +1209,36 @@
}")
(define_expand "insv"
- [(set (zero_extract:SI (match_operand:SI 0 "general_operand" "")
+ [(set (zero_extract:SI (match_dup 4)
(match_operand:QI 1 "general_operand" "")
(match_operand:SI 2 "general_operand" ""))
(match_operand:SI 3 "general_operand" ""))]
""
- "")
+ "{
+ /*
+ * If the destination operand is a memory reference, and the address
+ * is a symbol, and we're in PIC mode, load the address into a
+ * register. Don't evaluate the field start or width at this time.
+ */
+ operands[4] = operands[0];
+ if (flag_pic
+ /* && !reload_completed */
+ && MEM_P (operands[0])
+ && !mode_dependent_address_p (XEXP (operands[0], 0),
+ MEM_ADDR_SPACE (operands[0]))
+ && SYMBOL_REF_P (XEXP (operands[0], 0))
+ && !SYMBOL_REF_LOCAL_P (XEXP (operands[0], 0))
+ )
+ {
+ rtx address = XEXP (operands[0], 0);
+ rtx temp = gen_reg_rtx (Pmode);
+ emit_move_insn (temp, address);
+ /* copy the original memory reference, replacing the address */
+ operands[4] = change_address (operands[0], VOIDmode, temp);
+ set_mem_align (operands[4], MEM_ALIGN (operands[0]));
+ }
+
+ }")
(define_insn ""
[(set (zero_extract:SI (match_operand:QI 0 "memory_operand" "+g")
@@ -1470,6 +1658,36 @@
DONE;
}")
+;; Exception handling
+;; This is used when compiling the stack unwinding routines.
+(define_expand "eh_return"
+ [(use (match_operand 0 "general_operand"))]
+ ""
+{
+ if (GET_MODE (operands[0]) != word_mode)
+ operands[0] = convert_to_mode (word_mode, operands[0], 0);
+ emit_insn (gen_eh_set_retaddr (operands[0]));
+ DONE;
+})
+
+(define_insn_and_split "eh_set_retaddr"
+ [(unspec [(match_operand:SI 0 "general_operand")] VUNSPEC_EH_RETURN)
+ (clobber (match_scratch:SI 1 "=&r"))
+ ]
+ ""
+ "#"
+ "reload_completed"
+ [(const_int 0)]
+{
+ /* the return address for the current frame is always at 0x10(%fp) */
+ rtx tmp = plus_constant(Pmode, frame_pointer_rtx, 4 * UNITS_PER_WORD);
+ tmp = gen_rtx_MEM (word_mode, tmp);
+ MEM_VOLATILE_P(tmp) = 1;
+ tmp = gen_rtx_SET(tmp, operands[0]);
+ emit_insn(tmp);
+ DONE;
+})
+
(define_insn "nop"
[(const_int 0)]
""
Index: src/external/gpl3/gcc/dist/gcc/doc/tm.texi
diff -u src/external/gpl3/gcc/dist/gcc/doc/tm.texi:1.1.1.13 src/external/gpl3/gcc/dist/gcc/doc/tm.texi:1.1.1.13.2.1
--- src/external/gpl3/gcc/dist/gcc/doc/tm.texi:1.1.1.13 Fri Jul 22 19:53:12 2022
+++ src/external/gpl3/gcc/dist/gcc/doc/tm.texi Sun Oct 8 14:35:19 2023
@@ -11803,6 +11803,15 @@ to analyze inner elements of @var{x} in
passed along.
@end deftypefn
+@deftypefn {Target Hook} int TARGET_BITFIELD_MAY_TRAP_P (const_rtx @var{x}, unsigned @var{flags})
+This target hook returns nonzero if @var{x}, an @code{sign_extract} or
+@code{zero_extract} operation, might cause a trap. Targets can use
+this hook to enhance precision of analysis for @code{sign_extract} and
+@code{zero_extract} operations. You may call @code{may_trap_p_1}
+to analyze inner elements of @var{x} in which case @var{flags} should be
+passed along.
+@end deftypefn
+
@deftypefn {Target Hook} void TARGET_SET_CURRENT_FUNCTION (tree @var{decl})
The compiler invokes this hook whenever it changes its current function
context (@code{cfun}). You can define this function if
Index: src/external/gpl3/gcc/dist/gcc/doc/tm.texi.in
diff -u src/external/gpl3/gcc/dist/gcc/doc/tm.texi.in:1.1.1.12 src/external/gpl3/gcc/dist/gcc/doc/tm.texi.in:1.1.1.12.2.1
--- src/external/gpl3/gcc/dist/gcc/doc/tm.texi.in:1.1.1.12 Fri Jul 22 19:53:12 2022
+++ src/external/gpl3/gcc/dist/gcc/doc/tm.texi.in Sun Oct 8 14:35:19 2023
@@ -7979,6 +7979,8 @@ to by @var{ce_info}.
@hook TARGET_UNSPEC_MAY_TRAP_P
+@hook TARGET_BITFIELD_MAY_TRAP_P
+
@hook TARGET_SET_CURRENT_FUNCTION
@defmac TARGET_OBJECT_SUFFIX
Index: src/external/gpl3/gcc/lib/Makefile.sanitizer
diff -u src/external/gpl3/gcc/lib/Makefile.sanitizer:1.16 src/external/gpl3/gcc/lib/Makefile.sanitizer:1.16.6.1
--- src/external/gpl3/gcc/lib/Makefile.sanitizer:1.16 Tue Sep 15 05:19:34 2020
+++ src/external/gpl3/gcc/lib/Makefile.sanitizer Sun Oct 8 14:35:19 2023
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile.sanitizer,v 1.16 2020/09/15 05:19:34 mrg Exp $
+# $NetBSD: Makefile.sanitizer,v 1.16.6.1 2023/10/08 14:35:19 martin Exp $
SANITIZER=${GCCDIST}/libsanitizer
.PATH: ${SANITIZER}/interception ${SANITIZER}/sanitizer_common
@@ -88,22 +88,3 @@ COPTS+=-fno-builtin -fno-exceptions -fno
# Can't profile without it`
#-fomit-frame-pointer
-
-.if ${MACHINE_ARCH} == "vax"
-COPTS.sanitizer_allocator.cc += -O1
-COPTS.sanitizer_common.cc += -O1
-COPTS.sanitizer_common_libcdep.cc += -O1
-COPTS.sanitizer_coverage_libcdep.cc += -O1
-COPTS.sanitizer_coverage_mapping_libcdep.cc += -O1
-COPTS.sanitizer_deadlock_detector1.cc += -O1
-COPTS.sanitizer_mac.cc += -O1
-COPTS.sanitizer_netbsd.cc += -O1
-COPTS.sanitizer_posix.cc += -O1
-COPTS.sanitizer_printf.cc += -O1
-COPTS.sanitizer_procmaps_common.cc += -O1
-COPTS.sanitizer_stackdepot.cc += -O1
-COPTS.sanitizer_symbolizer_libcdep.cc += -O1
-COPTS.sanitizer_symbolizer_report.cc += -O1
-COPTS.ubsan_diag.cc += -O1
-COPTS.ubsan_init.cc += -O1
-.endif
Index: src/external/gpl3/gcc/lib/libasan/Makefile
diff -u src/external/gpl3/gcc/lib/libasan/Makefile:1.33 src/external/gpl3/gcc/lib/libasan/Makefile:1.33.6.1
--- src/external/gpl3/gcc/lib/libasan/Makefile:1.33 Mon Sep 14 15:01:57 2020
+++ src/external/gpl3/gcc/lib/libasan/Makefile Sun Oct 8 14:35:22 2023
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.33 2020/09/14 15:01:57 kamil Exp $
+# $NetBSD: Makefile,v 1.33.6.1 2023/10/08 14:35:22 martin Exp $
UNSUPPORTED_COMPILER.clang= # defined
NOSANITIZER= # defined
@@ -49,14 +49,6 @@ LIBDPLIBS+= m ${NETBSDSRCDIR}/lib/libm
LIBDPLIBS+= pthread ${NETBSDSRCDIR}/lib/libpthread
CPPFLAGS+=-DCAN_SANITIZE_UB=0
-.if ${MACHINE_ARCH} == "vax"
-COPTS.asan_allocator.cc += -O1
-COPTS.asan_report.cc += -O1
-COPTS.sanitizer_file.cc += -O1
-COPTS.ubsan_diag.cc += -O1
-COPTS.ubsan_init.cc += -O1
-.endif
-
.if ${MACHINE_ARCH} == "mipsel" || ${MACHINE_ARCH} == "mipseb"
COPTS.asan_interceptors.cc += -O1
.endif
Index: src/external/gpl3/gcc/lib/liblsan/Makefile
diff -u src/external/gpl3/gcc/lib/liblsan/Makefile:1.8 src/external/gpl3/gcc/lib/liblsan/Makefile:1.8.6.1
--- src/external/gpl3/gcc/lib/liblsan/Makefile:1.8 Mon Sep 14 15:01:57 2020
+++ src/external/gpl3/gcc/lib/liblsan/Makefile Sun Oct 8 14:35:24 2023
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.8 2020/09/14 15:01:57 kamil Exp $
+# $NetBSD: Makefile,v 1.8.6.1 2023/10/08 14:35:24 martin Exp $
.include <bsd.own.mk>
@@ -16,11 +16,6 @@ LSAN_SRCS+= \
lsan_linux.cc \
lsan_thread.cc
-.if ${MACHINE_ARCH} == "vax"
-COPTS.lsan_allocator.cc += -O1
-COPTS.sanitizer_file.cc += -O1
-.endif
-
LIB= lsan
SRCS+= ${LSAN_SRCS}
LIBDPLIBS+= m ${NETBSDSRCDIR}/lib/libm
Index: src/external/gpl3/gcc/lib/libubsan/Makefile
diff -u src/external/gpl3/gcc/lib/libubsan/Makefile:1.19 src/external/gpl3/gcc/lib/libubsan/Makefile:1.19.6.1
--- src/external/gpl3/gcc/lib/libubsan/Makefile:1.19 Mon Apr 12 00:05:56 2021
+++ src/external/gpl3/gcc/lib/libubsan/Makefile Sun Oct 8 14:35:20 2023
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.19 2021/04/12 00:05:56 mrg Exp $
+# $NetBSD: Makefile,v 1.19.6.1 2023/10/08 14:35:20 martin Exp $
UNSUPPORTED_COMPILER.clang= # defined
LIBISCXX = yes
@@ -26,10 +26,6 @@ UBSAN_SRCS= \
COPTS.${_s}.cc+=-frtti
.endfor
-.if ${MACHINE_ARCH} == "vax"
-COPTS.sanitizer_file.cc += -O1
-.endif
-
LIB= ubsan
SRCS+= ${UBSAN_SRCS}
LIBDPLIBS+= m ${NETBSDSRCDIR}/lib/libm
Index: src/external/gpl3/gcc/usr.bin/backend/Makefile
diff -u src/external/gpl3/gcc/usr.bin/backend/Makefile:1.66.2.1 src/external/gpl3/gcc/usr.bin/backend/Makefile:1.66.2.2
--- src/external/gpl3/gcc/usr.bin/backend/Makefile:1.66.2.1 Sun May 28 09:47:27 2023
+++ src/external/gpl3/gcc/usr.bin/backend/Makefile Sun Oct 8 14:35:19 2023
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.66.2.1 2023/05/28 09:47:27 martin Exp $
+# $NetBSD: Makefile,v 1.66.2.2 2023/10/08 14:35:19 martin Exp $
HOSTPROG_CXX= 1
LIBISPRIVATE= yes
@@ -533,68 +533,9 @@ COPTS.insn-recog.c+=-Wno-error
.if ${GCC_MACHINE_ARCH} == "vax"
CPPFLAGS+=-I${.CURDIR}/../../lib/libgcc/libgcov/arch/${GCC_MACHINE_ARCH}
-COPTS.builtins.c+=-O0
-COPTS.calls.c+=-O0
-COPTS.convert.c+=-O0
-COPTS.data-streamer-out.c+=-O0
-COPTS.dse.c+=-O0 # XXX port-vax/51967
-COPTS.dwarf2out.c+=-O0
-COPTS.expmed.c+=-O0
-COPTS.expr.c+=-O0 -Wno-error=tautological-compare
-COPTS.fixed-value.c+=-O0
-COPTS.fold-const.c+=-O0
-COPTS.generic-match.c+=-O0
-COPTS.gimple-fold.c+=-O0
-COPTS.gimple-match.c+=-O0
-COPTS.gimple-ssa-strength-reduction.c+=-O0
-COPTS.gimple-ssa-warn-restrict.c+=-O0
-COPTS.gimple.c+=-O0
-COPTS.internal-fn.c+=-O0
-COPTS.lto-streamer-out.c+=-O0
-COPTS.omp-low.c+=-O0
-COPTS.predict.c+=-O0
-COPTS.range-op.cc+=-O0
-COPTS.recog.c+=-O0
-COPTS.sanopt.c+=-O0
-COPTS.stmt.c+=-O0
-COPTS.stor-layout.c+=-O0
-COPTS.targhooks.c+=-O0
-COPTS.tree-affine.c+=-O0
-COPTS.tree-cfg.c+=-O0
-COPTS.tree-data-ref.c+=-O0
-COPTS.tree-eh.c+=-O0
-COPTS.tree-if-conv.c+=-O0
-COPTS.tree-object-size.c+=-O0
-COPTS.tree-parloops.c+=-O0
-COPTS.tree-predcom.c+=-O0
-COPTS.tree-pretty-print.c+=-O0
-COPTS.tree-ssa-alias.c+=-O0
-COPTS.tree-ssa-ccp.c+=-O0
-COPTS.tree-ssa-forwprop.c+=-O0
-COPTS.tree-ssa-loop-ivopts.c+=-O0
-COPTS.tree-ssa-loop-manip.c+=-O0
-COPTS.tree-ssa-loop-niter.c+=-O0
-COPTS.tree-ssa-math-opts.c+=-O0
-COPTS.tree-ssa-phiopt.c+= -O0
-COPTS.tree-ssa-pre.c+=-O0
-COPTS.tree-ssa-reassoc.c+=-O0
-COPTS.tree-ssa-strlen.c+=-O0
-COPTS.tree-ssa-uninit.c+=-O0
-COPTS.tree-ssa.c+=-O0
-COPTS.tree-switch-conversion.c+=-O0
-COPTS.tree-vect-data-refs.c+=-O0
-COPTS.tree-vect-loop-manip.c+=-O0
-COPTS.tree-vect-loop.c+=-O0
-COPTS.tree-vect-patterns.c+=-O0
-COPTS.tree-vect-stmts.c+=-O0
-COPTS.tree-vrp.c+=-O0
-COPTS.tree.c+=-O0
-COPTS.ubsan.c+=-O0
-COPTS.varasm.c+=-O0
-COPTS.vr-values.c+=-O0
-COPTS.web.c+=-O0
-COPTS.wide-int-range.cc+=-O0
-COPTS.wide-int.cc+=-O0
+
+COPTS.expmed.c+=-Wno-error=tautological-compare
+COPTS.expr.c+=-Wno-error=tautological-compare
.else
COPTS.tree.c= ${${ACTIVE_CC} == "clang" :? -O0 :}
.endif
@@ -622,3 +563,7 @@ CFLAGS+= -fno-exceptions -fno-rtti -fasy
.if ${MACHINE_CPU} == "aarch64"
.PATH: ${DIST}/gcc/config/arm
.endif
+
+.if ${MACHINE} == "vax"
+CPPFLAGS+= -DNB_FIX_VAX_BACKEND
+.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.20.6.1
--- 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 Sun Oct 8 14:35:22 2023
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.20 2021/04/23 22:50:06 mrg Exp $
+# $NetBSD: Makefile,v 1.20.6.1 2023/10/08 14:35:22 martin 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}
@@ -46,17 +46,6 @@ CPPFLAGS.default-c.c+= -I${BACKENDOBJ}
BUILDSYMLINKS+= ${GNUHOSTDIST}/gcc/config/sh/sh-c.cc sh-c.c
.endif
-.if ${MACHINE_CPU} == "vax"
-COPTS.c-decl.c+=-O0
-COPTS.c-typeck.c+=-O0
-COPTS.c-array-notation.c+=-O0
-COPTS.c-common.c+=-O0
-COPTS.c-ada-spec.c+=-O0
-COPTS.cilk.c+=-O0
-COPTS.c-ubsan.c+=-O0
-COPTS.cc1-checksum.c+=-O0
-.endif
-
.if ${MACHINE_ARCH} == "mipseb" || ${MACHINE_ARCH} == "mipsel"
COPTS.c-common.c+=-O3
.endif
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.18.6.1
--- 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 Sun Oct 8 14:35:23 2023
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.18 2021/04/23 22:50:06 mrg Exp $
+# $NetBSD: Makefile,v 1.18.6.1 2023/10/08 14:35:23 martin Exp $
MYOBJS= ${G_OBJC_OBJS} ${G_C_AND_OBJC_OBJS}
PROG= cc1obj
@@ -44,17 +44,6 @@ COPTS.objc-act.c+= -Wno-stack-protecto
COPTS.objc-gnu-runtime-abi-01.c+= -Wno-stack-protector
COPTS.objc-next-runtime-abi-01.c+= -Wno-stack-protector
-.if ${MACHINE_ARCH} == "vax"
-COPTS.c-decl.c+=-O0
-COPTS.c-typeck.c+=-O0
-COPTS.c-array-notation.c+=-O0
-COPTS.c-common.c+=-O0
-COPTS.c-ada-spec.c+=-O0
-COPTS.cilk.c+=-O0
-COPTS.c-ubsan.c+=-O0
-COPTS.cc1obj-checksum.c+=-O0
-.endif
-
.if ${MACHINE_ARCH} == "mipseb" || ${MACHINE_ARCH} == "mipsel"
COPTS.c-common.c+=-O3
.endif
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.3.6.1
--- 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 Sun Oct 8 14:35:21 2023
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.3 2021/04/27 14:18:25 christos Exp $
+# $NetBSD: Makefile,v 1.3.6.1 2023/10/08 14:35:21 martin 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
@@ -69,18 +69,6 @@ COPTS.objc-act.c+= -Wno-stack-protecto
COPTS.objc-gnu-runtime-abi-01.c+= -Wno-stack-protector
COPTS.objc-next-runtime-abi-01.c+= -Wno-stack-protector
-.if ${MACHINE_ARCH} == "vax"
-COPTS.c-decl.c+=-O0
-COPTS.c-typeck.c+=-O0
-COPTS.c-array-notation.c+=-O0
-COPTS.c-common.c+=-O0
-COPTS.c-ada-spec.c+=-O0
-COPTS.cilk.c+=-O0
-COPTS.c-ubsan.c+=-O0
-COPTS.cc1obj-checksum.c+=-O0
-COPTS.decl.c+=-O0
-.endif
-
.if ${MACHINE_ARCH} == "mipseb" || ${MACHINE_ARCH} == "mipsel"
COPTS.c-common.c+=-O3
.endif
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.17.6.1
--- 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 Sun Oct 8 14:35:22 2023
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.17 2021/04/27 14:18:25 christos Exp $
+# $NetBSD: Makefile,v 1.17.6.1 2023/10/08 14:35:22 martin 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}
@@ -31,23 +31,6 @@ CHECKSUM_OBJS= ${LIBBACKTRACEOBJ}/libbac
CFLAGS+= -Wno-error=stack-protector
-.if ${MACHINE_ARCH} == "vax"
-COPTS.call.c+=-O0
-COPTS.decl.c+=-O0
-COPTS.typeck2.c+=-O0
-COPTS.class.c+=-O0
-COPTS.typeck.c+=-O0
-COPTS.init.c+=-O0
-COPTS.semantics.c+=-O0
-COPTS.mangle.c+=-O0
-COPTS.constexpr.c+=-O0
-COPTS.c-common.c+=-O0
-COPTS.c-ada-spec.c+=-O0
-COPTS.cilk.c+=-O0
-COPTS.c-ubsan.c+=-O0
-COPTS.cc1plus-checksum.c+=-O0
-.endif
-
.if ${MACHINE_ARCH} == "mipseb" || ${MACHINE_ARCH} == "mipsel"
COPTS.c-common.c+=-O3
.endif
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.7.26.1
--- 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 Sun Oct 8 14:35:19 2023
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.7 2016/03/15 19:12:06 mrg Exp $
+# $NetBSD: Makefile,v 1.7.26.1 2023/10/08 14:35:19 martin Exp $
PROG= gcc
SRCS= gccspec.c ${G_GCC_OBJS:.o=.c}
@@ -25,9 +25,6 @@ ${SRCS}: ${GCCARCH}/defs.mk
.include <bsd.info.mk>
COPTS.gcc.c= -Wno-stack-protector
-.if ${MACHINE_ARCH} == "vax"
-COPTS.dse.c= -O1
-.endif
.PATH: ${DIST}/gcc ${DIST}/gcc/doc ${DIST}/gcc/c
Index: src/external/gpl3/gcc/usr.bin/libdecnumber/Makefile
diff -u src/external/gpl3/gcc/usr.bin/libdecnumber/Makefile:1.8.2.1 src/external/gpl3/gcc/usr.bin/libdecnumber/Makefile:1.8.2.2
--- src/external/gpl3/gcc/usr.bin/libdecnumber/Makefile:1.8.2.1 Sun May 28 09:47:27 2023
+++ src/external/gpl3/gcc/usr.bin/libdecnumber/Makefile Sun Oct 8 14:35:22 2023
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.8.2.1 2023/05/28 09:47:27 martin Exp $
+# $NetBSD: Makefile,v 1.8.2.2 2023/10/08 14:35:22 martin Exp $
DIST= ${GCCDIST}
GNUHOSTDIST= ${DIST}
@@ -14,10 +14,6 @@ SRCS= decNumber.c decContext.c decimal3
CPPFLAGS+= -I${.CURDIR}/arch/${GCC_MACHINE_ARCH} -I${DIST}/libdecnumber
CPPFLAGS+= -I${DIST}/libgcc
-.if ${MACHINE_ARCH} == "vax"
-COPTS.decNumber.c=-O0
-.endif
-
.include <bsd.lib.mk>
# Force using C++ for this
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.1.6.1
--- 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 Sun Oct 8 14:35:19 2023
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.1 2021/04/23 01:56:14 mrg Exp $
+# $NetBSD: Makefile,v 1.1.6.1 2023/10/08 14:35:19 martin Exp $
PROG= lto-dump
# XXX pullout from LTO_DUMP_OBJS
@@ -24,11 +24,6 @@ COPTS.lto-common.c+= -Wno-stack-protecto
.include "../Makefile.backtrace"
.include "../Makefile.libdecnumber"
-.if ${MACHINE_ARCH} == "vax"
-COPTS.lto-lang.c+=-O0
-COPTS.lto-symtab.c+=-O0
-.endif
-
LDADD+= ${LIBIBERTY} ${LIBMPC} ${LIBMPFR} ${LIBGMP} -lintl -lz -lm
DPADD+= ${LIBIBERTY} ${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.7.6.1
--- 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 Sun Oct 8 14:35:23 2023
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.7 2021/04/14 12:20:59 christos Exp $
+# $NetBSD: Makefile,v 1.7.6.1 2023/10/08 14:35:23 martin Exp $
PROG= lto1
SRCS= attribs.c \
@@ -21,11 +21,6 @@ COPTS.lto-common.c+= -Wno-stack-protecto
.include "../Makefile.libcpp"
.include "../Makefile.libdecnumber"
-.if ${MACHINE_ARCH} == "vax"
-COPTS.lto-lang.c+=-O0
-COPTS.lto-symtab.c+=-O0
-.endif
-
LDADD+= ${LIBIBERTYOBJ}/libiberty.a
DPADD+= ${LIBIBERTYOBJ}/libiberty.a
LDADD+= ${LIBIBERTY} ${LIBMPC} ${LIBMPFR} ${LIBGMP} -lintl -lz -lm
Index: src/external/gpl3/gdb.old/lib/libdecnumber/Makefile
diff -u src/external/gpl3/gdb.old/lib/libdecnumber/Makefile:1.8 src/external/gpl3/gdb.old/lib/libdecnumber/Makefile:1.8.6.1
--- src/external/gpl3/gdb.old/lib/libdecnumber/Makefile:1.8 Mon Sep 14 00:40:40 2020
+++ src/external/gpl3/gdb.old/lib/libdecnumber/Makefile Sun Oct 8 14:35:21 2023
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.8 2020/09/14 00:40:40 christos Exp $
+# $NetBSD: Makefile,v 1.8.6.1 2023/10/08 14:35:21 martin Exp $
.include <bsd.own.mk>
.include "../Makefile.inc"
@@ -18,10 +18,6 @@ CPPFLAGS+= -I${.CURDIR}/arch/${GDB_MACHI
SRCS= ${G_OBJS:.o=.c} ${G_SOURCES}
-.if ${MACHINE_ARCH} == "vax"
-COPTS.decNumber.c=-O0
-.endif
-
.PATH: ${DIST}/libdecnumber ${DIST}/libdecnumber/dpd
.include <bsd.lib.mk>
Index: src/external/gpl3/gdb/lib/libdecnumber/Makefile
diff -u src/external/gpl3/gdb/lib/libdecnumber/Makefile:1.3 src/external/gpl3/gdb/lib/libdecnumber/Makefile:1.3.36.1
--- src/external/gpl3/gdb/lib/libdecnumber/Makefile:1.3 Sat Nov 9 21:39:27 2013
+++ src/external/gpl3/gdb/lib/libdecnumber/Makefile Sun Oct 8 14:35:22 2023
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.3 2013/11/09 21:39:27 christos Exp $
+# $NetBSD: Makefile,v 1.3.36.1 2023/10/08 14:35:22 martin Exp $
.include <bsd.own.mk>
.include "../Makefile.inc"
@@ -18,10 +18,6 @@ CPPFLAGS+= -I${.CURDIR}/arch/${GDB_MACHI
SRCS= ${G_OBJS:.o=.c} ${G_SOURCES}
-.if ${MACHINE_ARCH} == "vax"
-COPTS.decNumber.c=-O0
-.endif
-
.PATH: ${DIST}/libdecnumber ${DIST}/libdecnumber/dpd
.include <bsd.lib.mk>
Index: src/external/gpl3/gdb/lib/libgdb/Makefile
diff -u src/external/gpl3/gdb/lib/libgdb/Makefile:1.32 src/external/gpl3/gdb/lib/libgdb/Makefile:1.32.2.1
--- src/external/gpl3/gdb/lib/libgdb/Makefile:1.32 Sat Sep 18 01:47:09 2021
+++ src/external/gpl3/gdb/lib/libgdb/Makefile Sun Oct 8 14:35:21 2023
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.32 2021/09/18 01:47:09 christos Exp $
+# $NetBSD: Makefile,v 1.32.2.1 2023/10/08 14:35:21 martin Exp $
NOCTF=
HOSTPROG_CXX= 1
@@ -60,12 +60,6 @@ CFLAGS:= ${CXXFLAGS} -std=gnu++17 -Wno-
ada-exp.c: ada-lex.c
-.if ${MACHINE} == "vax"
-. if ${ACTIVE_CC} == "gcc" && ${HAVE_GCC:U0} >= 8
-COPTS.read.c+= -O0
-. endif
-.endif
-
# These are generated by implicit rules and are not easy to generate
CLEANDIRFILES+= \
ada-exp.c ada-lex.c \
Index: src/external/mit/xorg/lib/gallium/Makefile
diff -u src/external/mit/xorg/lib/gallium/Makefile:1.48.2.1 src/external/mit/xorg/lib/gallium/Makefile:1.48.2.2
--- src/external/mit/xorg/lib/gallium/Makefile:1.48.2.1 Tue Feb 14 15:47:01 2023
+++ src/external/mit/xorg/lib/gallium/Makefile Sun Oct 8 14:35:21 2023
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.48.2.1 2023/02/14 15:47:01 martin Exp $
+# $NetBSD: Makefile,v 1.48.2.2 2023/10/08 14:35:21 martin Exp $
# Link the gallium mega driver.
@@ -1208,10 +1208,6 @@ SYMLINKS+= gallium_dri.so.${SHLIB_MAJOR}
COPTS+= ${${ACTIVE_CC} == "clang":? -Wa,-Av8plus :}
.endif
-.if ${MACHINE_ARCH} == "vax"
-COPTS.nir.c += -O1
-.endif
-
COPTS.u_atomic.c+= ${${ACTIVE_CC} == "gcc" && ${HAVE_GCC:U0} >= 10:? -Wno-builtin-declaration-mismatch :}
.include <bsd.lib.mk>
Index: src/external/mit/xorg/lib/gallium.old/Makefile
diff -u src/external/mit/xorg/lib/gallium.old/Makefile:1.4.2.1 src/external/mit/xorg/lib/gallium.old/Makefile:1.4.2.2
--- src/external/mit/xorg/lib/gallium.old/Makefile:1.4.2.1 Tue Feb 14 15:47:01 2023
+++ src/external/mit/xorg/lib/gallium.old/Makefile Sun Oct 8 14:35:23 2023
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.4.2.1 2023/02/14 15:47:01 martin Exp $
+# $NetBSD: Makefile,v 1.4.2.2 2023/10/08 14:35:23 martin Exp $
# Transparent struct/union broken
NOLINT=yes
@@ -1211,10 +1211,6 @@ SYMLINKS+= gallium_dri.so.${SHLIB_MAJOR}
COPTS+= ${${ACTIVE_CC} == "clang":? -Wa,-Av8plus :}
.endif
-.if ${MACHINE_ARCH} == "vax"
-COPTS.nir.c += -O1
-.endif
-
COPTS.u_atomic.c+= ${${ACTIVE_CC} == "gcc" && ${HAVE_GCC:U0} >= 10:? -Wno-builtin-declaration-mismatch :}
.include <bsd.lib.mk>
Index: src/external/mit/xorg/lib/libX11/Makefile.libx11
diff -u src/external/mit/xorg/lib/libX11/Makefile.libx11:1.25 src/external/mit/xorg/lib/libX11/Makefile.libx11:1.25.2.1
--- src/external/mit/xorg/lib/libX11/Makefile.libx11:1.25 Fri Oct 28 09:43:58 2022
+++ src/external/mit/xorg/lib/libX11/Makefile.libx11 Sun Oct 8 14:35:21 2023
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile.libx11,v 1.25 2022/10/28 09:43:58 wiz Exp $
+# $NetBSD: Makefile.libx11,v 1.25.2.1 2023/10/08 14:35:21 martin Exp $
LIB= X11
.PATH: ${X11SRCDIR.${LIB}}/src
@@ -471,11 +471,6 @@ COPTS.OpenDis.c+= -Wno-error # XXX xf86b
COPTS.XlibInt.c+= -Wno-error # XXX xcmiscstr.h
COPTS.XKBBind.c+= -Wno-deprecated-declarations # uses XKeycodeToKeysym
-# XXX
-.if ${MACHINE} == "vax"
-COPTS.lcWrap.c+= -O0
-.endif
-
CWARNFLAGS.clang+= -Wno-string-plus-int
.include "${NETBSDSRCDIR}/external/mit/xorg/tools/makekeys/Makefile.makekeys"
Index: src/games/gomoku/Makefile
diff -u src/games/gomoku/Makefile:1.12 src/games/gomoku/Makefile:1.12.2.1
--- src/games/gomoku/Makefile:1.12 Tue May 31 19:11:58 2022
+++ src/games/gomoku/Makefile Sun Oct 8 14:35:23 2023
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.12 2022/05/31 19:11:58 christos Exp $
+# $NetBSD: Makefile,v 1.12.2.1 2023/10/08 14:35:23 martin Exp $
# @(#)Makefile 8.1 (Berkeley) 7/24/94
PROG= gomoku
@@ -9,10 +9,6 @@ LDADD= -lcurses -lterminfo
HIDEGAME=hidegame
CPPFLAGS+= ${DEBUG:D-DDEBUG}
-.if ${MACHINE} == "vax"
-COPTS.pickmove.c += -O0
-.endif
-
#WARNS= 6 # would produce warnings about small integer types
LINTFLAGS+= -w # treat warnings as errors
LINTFLAGS+= -T # strict bool mode
Index: src/games/phantasia/Makefile
diff -u src/games/phantasia/Makefile:1.37 src/games/phantasia/Makefile:1.37.34.1
--- src/games/phantasia/Makefile:1.37 Sat Jun 14 20:49:37 2014
+++ src/games/phantasia/Makefile Sun Oct 8 14:35:20 2023
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.37 2014/06/14 20:49:37 mrg Exp $
+# $NetBSD: Makefile,v 1.37.34.1 2023/10/08 14:35:20 martin Exp $
# @(#)Makefile 8.1 (Berkeley) 5/31/93
.include <bsd.own.mk>
@@ -52,7 +52,3 @@ map: map.c
./map | plot > /dev/tty
.include <bsd.prog.mk>
-
-.if defined(HAVE_GCC) && ${MACHINE_ARCH} == "vax"
-COPTS.misc.c+= -O0
-.endif
Index: src/lib/i18n_module/UTF7/Makefile
diff -u src/lib/i18n_module/UTF7/Makefile:1.4 src/lib/i18n_module/UTF7/Makefile:1.4.52.1
--- src/lib/i18n_module/UTF7/Makefile:1.4 Mon Jun 20 06:52:36 2011
+++ src/lib/i18n_module/UTF7/Makefile Sun Oct 8 14:35:24 2023
@@ -1,8 +1,5 @@
-# $NetBSD: Makefile,v 1.4 2011/06/20 06:52:36 mrg Exp $
+# $NetBSD: Makefile,v 1.4.52.1 2023/10/08 14:35:24 martin Exp $
SRCPRE=citrus_
.include <bsd.lib.mk>
-.if ${MACHINE_ARCH} == "vax" && defined(HAVE_GCC)
-COPTS.citrus_utf7.c+= -O0
-.endif
Index: src/lib/libbz2/Makefile
diff -u src/lib/libbz2/Makefile:1.20 src/lib/libbz2/Makefile:1.20.8.1
--- src/lib/libbz2/Makefile:1.20 Sun Sep 29 23:44:59 2019
+++ src/lib/libbz2/Makefile Sun Oct 8 14:35:23 2023
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.20 2019/09/29 23:44:59 mrg Exp $
+# $NetBSD: Makefile,v 1.20.8.1 2023/10/08 14:35:23 martin Exp $
USE_FORT?= yes # data driven bugs?
@@ -15,11 +15,6 @@ SRCS= blocksort.c huffman.c crctable.c
INCS= bzlib.h
INCSDIR= /usr/include
-# XXX huffman.c gets mis-compiled with 2.95.3
-.if ${MACHINE_ARCH} == "vax"
-COPTS+= -O0
-.endif
-
.if defined(HAVE_GCC) && ${HAVE_GCC} >= 7 && ${ACTIVE_CC} == "gcc"
COPTS+= -Wno-error=implicit-fallthrough
.endif
Index: src/lib/libc/gdtoa/Makefile.inc
diff -u src/lib/libc/gdtoa/Makefile.inc:1.12 src/lib/libc/gdtoa/Makefile.inc:1.12.2.1
--- src/lib/libc/gdtoa/Makefile.inc:1.12 Sun Dec 4 22:35:15 2022
+++ src/lib/libc/gdtoa/Makefile.inc Sun Oct 8 14:35:22 2023
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile.inc,v 1.12 2022/12/04 22:35:15 jakllsch Exp $
+# $NetBSD: Makefile.inc,v 1.12.2.1 2023/10/08 14:35:22 martin Exp $
# gdtoa sources
.PATH: ${.CURDIR}/gdtoa
@@ -44,10 +44,3 @@ SRCS+= dmisc.c \
.if ${MACHINE_ARCH} != "vax"
SRCS+= strtord.c
.endif
-
-# XXX revisit with newer GCC.
-# Ensure numbers like 0xffff319f5fa95963 print correctly
-# ("999999999999999.98", not garbage like "?A>C>@>C:BA;A><.:<")
-.if ${MACHINE_ARCH} == "vax" && defined(HAVE_GCC)
-COPTS.misc.c+= -O0
-.endif
Index: src/lib/libcrypt/Makefile
diff -u src/lib/libcrypt/Makefile:1.34 src/lib/libcrypt/Makefile:1.34.2.1
--- src/lib/libcrypt/Makefile:1.34 Sun May 15 16:25:09 2022
+++ src/lib/libcrypt/Makefile Sun Oct 8 14:35:22 2023
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.34 2022/05/15 16:25:09 christos Exp $
+# $NetBSD: Makefile,v 1.34.2.1 2023/10/08 14:35:22 martin Exp $
USE_FORT?= yes # cryptographic software
@@ -30,9 +30,6 @@ SRCS+= crypt-argon2.c
SRCS+= ${src}
COPTS.${src}+= -fvisibility=hidden
. endfor
-. if ${MACHINE} == "vax"
-COPTS.blake2b.c+= -O0
-. endif
.endif
WARNS?= 5
Index: src/libexec/ld.elf_so/Makefile
diff -u src/libexec/ld.elf_so/Makefile:1.144.2.1 src/libexec/ld.elf_so/Makefile:1.144.2.2
--- src/libexec/ld.elf_so/Makefile:1.144.2.1 Tue Aug 1 17:03:53 2023
+++ src/libexec/ld.elf_so/Makefile Sun Oct 8 14:35:21 2023
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.144.2.1 2023/08/01 17:03:53 martin Exp $
+# $NetBSD: Makefile,v 1.144.2.2 2023/10/08 14:35:21 martin Exp $
#
# NOTE: when changing ld.so, ensure that ldd still compiles.
#
@@ -141,10 +141,6 @@ CPPFLAGS+= -DRTLD_DEFAULT_LIBRARY_PATH=\
COPTS.rtld.c+= -Wno-stack-protector
COPTS.symbol.c+=-Wno-stack-protector
-.if ${MACHINE_CPU} == "vax"
-COPTS.rtld.c+= -O0
-.endif
-
LDADD+= -Wl,--version-script=${.CURDIR}/symbols.map
LDADD+= -L${CLIBOBJ} -L${DESTDIR}${LIBDIR}
.if ${MKPICLIB} != "no"
Index: src/sbin/fsck_ffs/Makefile.common
diff -u src/sbin/fsck_ffs/Makefile.common:1.2 src/sbin/fsck_ffs/Makefile.common:1.2.8.1
--- src/sbin/fsck_ffs/Makefile.common:1.2 Mon Oct 28 22:52:43 2019
+++ src/sbin/fsck_ffs/Makefile.common Sun Oct 8 14:35:24 2023
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile.common,v 1.2 2019/10/28 22:52:43 christos Exp $
+# $NetBSD: Makefile.common,v 1.2.8.1 2023/10/08 14:35:24 martin Exp $
# @(#)Makefile 8.2 (Berkeley) 4/27/95
# shared stuff with src/distrib/utils/x_newfs for install media.
@@ -36,7 +36,3 @@ COPTS.ffs_appleufs.c+= -Wno-pointer-sign
.if ${MACHINE_ARCH} == "m68000"
COPTS.pass1.c+= -fno-tree-fre -fno-tree-lrs
.endif
-.if ${MACHINE_ARCH} == "vax"
-COPTS.pass1.c+= -O0
-COPTS.inode.c+= -O0
-.endif
Index: src/sbin/fsdb/Makefile
diff -u src/sbin/fsdb/Makefile:1.41 src/sbin/fsdb/Makefile:1.41.6.1
--- src/sbin/fsdb/Makefile:1.41 Thu Apr 15 01:56:00 2021
+++ src/sbin/fsdb/Makefile Sun Oct 8 14:35:23 2023
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.41 2021/04/15 01:56:00 mrg Exp $
+# $NetBSD: Makefile,v 1.41.6.1 2023/10/08 14:35:23 martin Exp $
# @(#)Makefile 8.1 (Berkeley) 6/5/93
.include <bsd.own.mk>
@@ -39,12 +39,6 @@ COPTS.${f}.c+= -Wno-pointer-sign
COPTS.pass1.c+= -fno-tree-fre -fno-tree-lrs
.endif
-.if ${MACHINE_ARCH} == "vax"
-COPTS.pass1.c+= -O0
-COPTS.inode.c+= -O0
-COPTS.fsdb.c+= -O0
-.endif
-
CWARNFLAGS.gcc+= ${GCC_NO_ADDR_OF_PACKED_MEMBER}
.include <bsd.prog.mk>
Index: src/sbin/newfs_ext2fs/Makefile
diff -u src/sbin/newfs_ext2fs/Makefile:1.6 src/sbin/newfs_ext2fs/Makefile:1.6.36.1
--- src/sbin/newfs_ext2fs/Makefile:1.6 Sat Nov 9 21:39:27 2013
+++ src/sbin/newfs_ext2fs/Makefile Sun Oct 8 14:35:20 2023
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.6 2013/11/09 21:39:27 christos Exp $
+# $NetBSD: Makefile,v 1.6.36.1 2023/10/08 14:35:20 martin Exp $
# @(#)Makefile 8.2 (Berkeley) 3/27/94
CWARNFLAGS+= -Wno-sign-compare
@@ -20,8 +20,4 @@ DPADD+=${LIBPROP}
.PATH: ${NETBSDSRCDIR}/sys/ufs/ext2fs ${FSCK}
-.if ${MACHINE_ARCH} == "vax"
-COPTS.mke2fs.c=-O0
-.endif
-
.include <bsd.prog.mk>
Index: src/sbin/ping/Makefile
diff -u src/sbin/ping/Makefile:1.17 src/sbin/ping/Makefile:1.17.36.1
--- src/sbin/ping/Makefile:1.17 Sat Nov 9 21:39:27 2013
+++ src/sbin/ping/Makefile Sun Oct 8 14:35:20 2023
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.17 2013/11/09 21:39:27 christos Exp $
+# $NetBSD: Makefile,v 1.17.36.1 2023/10/08 14:35:20 martin Exp $
# @(#)Makefile 8.1 (Berkeley) 6/5/93
USE_FORT?= yes # setuid
@@ -12,8 +12,4 @@ CPPFLAGS+= -DIPSEC
LDADD+= -lipsec
DPADD+= ${LIBIPSEC}
-.if ${MACHINE_ARCH} == "vax"
-COPTS.ping.c=-O0
-.endif
-
.include <bsd.prog.mk>
Index: src/sys/arch/vax/conf/Makefile.vax
diff -u src/sys/arch/vax/conf/Makefile.vax:1.85 src/sys/arch/vax/conf/Makefile.vax:1.85.20.1
--- src/sys/arch/vax/conf/Makefile.vax:1.85 Tue Sep 15 05:08:07 2020
+++ src/sys/arch/vax/conf/Makefile.vax Sun Oct 8 14:35:23 2023
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile.vax,v 1.85 2020/09/15 05:08:07 mrg Exp $
+# $NetBSD: Makefile.vax,v 1.85.20.1 2023/10/08 14:35:23 martin Exp $
# Makefile for NetBSD
#
@@ -34,7 +34,6 @@ GENASSYM_CONF= ${VAX}/vax/genassym.cf
CPPFLAGS+= -D_VAX_INLINE_
AFLAGS+= -x assembler-with-cpp -fno-pic
CFLAGS+= -fno-pic
-COPTS.wsmux.c+= ${${ACTIVE_CC} == "gcc" && ${HAVE_GCC:U0} >= 9:? -O1 :}
##
Index: src/sys/lib/libsa/Makefile
diff -u src/sys/lib/libsa/Makefile:1.95 src/sys/lib/libsa/Makefile:1.95.12.1
--- src/sys/lib/libsa/Makefile:1.95 Thu May 27 06:54:44 2021
+++ src/sys/lib/libsa/Makefile Sun Oct 8 14:35:20 2023
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.95 2021/05/27 06:54:44 mrg Exp $
+# $NetBSD: Makefile,v 1.95.12.1 2023/10/08 14:35:20 martin Exp $
LIB= sa
LIBISPRIVATE?= yes
@@ -96,7 +96,3 @@ SRCS+= ufs.c
lib${LIB}.o:: ${OBJS:O} __buildstdlib
CPPFLAGS+= -Wno-pointer-sign
-
-.if defined(HAVE_GCC) && ${MACHINE_ARCH} == "vax"
-COPTS.bootp.c+= -O0
-.endif
Index: src/sys/lib/libz/Makefile
diff -u src/sys/lib/libz/Makefile:1.23 src/sys/lib/libz/Makefile:1.23.32.1
--- src/sys/lib/libz/Makefile:1.23 Tue Jun 5 00:57:47 2018
+++ src/sys/lib/libz/Makefile Sun Oct 8 14:35:20 2023
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.23 2018/06/05 00:57:47 christos Exp $
+# $NetBSD: Makefile,v 1.23.32.1 2023/10/08 14:35:20 martin Exp $
LIB= z
LIBISPRIVATE= yes
@@ -25,7 +25,3 @@ CLEANFILES+= lib${LIB}.o
.include <bsd.lib.mk>
lib${LIB}.o:: ${OBJS:O} __buildstdlib
-
-.if defined(HAVE_GCC) && ${MACHINE_ARCH} == "vax"
-COPTS.inftrees.c+= -O0
-.endif
Index: src/sys/modules/lfs/Makefile
diff -u src/sys/modules/lfs/Makefile:1.10 src/sys/modules/lfs/Makefile:1.10.30.1
--- src/sys/modules/lfs/Makefile:1.10 Sun Feb 17 14:04:31 2019
+++ src/sys/modules/lfs/Makefile Sun Oct 8 14:35:21 2023
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.10 2019/02/17 14:04:31 rin Exp $
+# $NetBSD: Makefile,v 1.10.30.1 2023/10/08 14:35:21 martin Exp $
.include "../Makefile.inc"
@@ -18,9 +18,4 @@ SRCS+= ulfs_bmap.c ulfs_dirhash.c ulfs_i
WARNS= 3
-.if ${MACHINE} == "vax"
-# GCC 6.5 and 7.4 cannot compile this with -DDIAGNOSTIC and -O2/-O1
-COPTS.lfs_inode.c+= -O0
-.endif
-
.include <bsd.kmodule.mk>
Index: src/sys/rump/fs/lib/liblfs/Makefile
diff -u src/sys/rump/fs/lib/liblfs/Makefile:1.17 src/sys/rump/fs/lib/liblfs/Makefile:1.17.20.1
--- src/sys/rump/fs/lib/liblfs/Makefile:1.17 Mon Sep 7 03:09:53 2020
+++ src/sys/rump/fs/lib/liblfs/Makefile Sun Oct 8 14:35:24 2023
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.17 2020/09/07 03:09:53 mrg Exp $
+# $NetBSD: Makefile,v 1.17.20.1 2023/10/08 14:35:24 martin Exp $
#
.PATH: ${.CURDIR}/../../../../ufs/lfs
@@ -17,9 +17,6 @@ SRCS+= ulfs_bmap.c ulfs_dirhash.c ulfs_e
CFLAGS+= -DLFS_KERNEL_RFW
-.if ${MACHINE_ARCH} == "vax"
-COPTS.lfs_inode.c+=-O0
-.endif
.include <bsd.lib.mk>
.include <bsd.klinks.mk>
Index: src/tools/gcc/Makefile
diff -u src/tools/gcc/Makefile:1.105 src/tools/gcc/Makefile:1.105.2.1
--- src/tools/gcc/Makefile:1.105 Sat Sep 18 01:47:10 2021
+++ src/tools/gcc/Makefile Sun Oct 8 14:35:18 2023
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.105 2021/09/18 01:47:10 christos Exp $
+# $NetBSD: Makefile,v 1.105.2.1 2023/10/08 14:35:18 martin Exp $
.include <bsd.hostinit.mk>
@@ -74,6 +74,10 @@ GCC_CPPFLAGS= -DNETBSD_TOOLS -DTARGET_SY
-DTARGET_SYSTEM_ROOT_RELOCATABLE
# ${HOST_CPPFLAGS}
+.if ${MACHINE} == "vax"
+GCC_CPPFLAGS+= -DNB_FIX_VAX_BACKEND
+.endif
+
MAKE_ARGS= MACHINE= MAKEINFO=${TOOL_MAKEINFO:Q} \
LIBGCC= LIBGCC1= LIBGCC1_TEST= LIBGCC2= INSTALL_LIBGCC= \
EXTRA_PARTS= CPPFLAGS=${GCC_CPPFLAGS:Q} \
Index: src/usr.sbin/mtrace/Makefile
diff -u src/usr.sbin/mtrace/Makefile:1.12 src/usr.sbin/mtrace/Makefile:1.12.6.1
--- src/usr.sbin/mtrace/Makefile:1.12 Sun Sep 6 07:20:32 2020
+++ src/usr.sbin/mtrace/Makefile Sun Oct 8 14:35:23 2023
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.12 2020/09/06 07:20:32 mrg Exp $
+# $NetBSD: Makefile,v 1.12.6.1 2023/10/08 14:35:23 martin Exp $
# from: Id: Makefile,v 1.5 1993/06/24 05:11:16 deering Exp
.include <bsd.own.mk>
@@ -12,10 +12,6 @@ PROG= mtrace
SRCS= igmp.c inet.c kern.c mtrace.c
MAN= mtrace.8
-.if ${MACHINE_ARCH} == "vax"
-COPTS.mtrace.c=-O0
-.endif
-
BINMODE=4555
BINOWN= root