Module Name: src Committed By: mrg Date: Thu Aug 3 01:36:55 UTC 2023
Modified Files: src/external/gpl3/gcc: README.gcc12 src/external/gpl3/gcc/dist/gcc: common.opt src/external/gpl3/gcc/dist/gcc/config: netbsd.cc src/external/gpl3/gcc/dist/gcc/config/rs6000: netbsd64.h src/external/gpl3/gcc/dist/gcc/config/vax: elf.h netbsd-elf.h vax-protos.h vax.h src/external/gpl3/gcc/dist/libsanitizer/lsan: lsan_allocator.h lsan_common.cpp src/external/gpl3/gcc/dist/libsanitizer/sanitizer_common: Makefile.am Makefile.in sanitizer_interceptors_ioctl_netbsd.inc sanitizer_internal_defs.h sanitizer_linux.cpp sanitizer_platform_limits_netbsd.cpp sanitizer_platform_limits_netbsd.h src/external/gpl3/gcc/dist/libsanitizer/tsan: tsan_platform_linux.cpp src/external/gpl3/gcc/lib: Makefile Makefile.sanitizer src/external/gpl3/gcc/lib/libasan: Makefile shlib_version src/external/gpl3/gcc/lib/liblsan: Makefile shlib_version src/external/gpl3/gcc/lib/libtsan: Makefile shlib_version src/external/gpl3/gcc/lib/libubsan: Makefile shlib_version src/external/gpl3/gcc/usr.bin: Makefile.inc Log Message: many fixes for native GCC 12 builds - default to dwarf4 since out ctf tools fail with dwarf5. i tried to do this via subtarget options as other ports do, but this would require adjusting several of the targets non-netbsd code, and ideally we'll fix our tools sooner than later, so just hack it here for now. - catch up config/rs6000/netbsd64.h (mostly delete things) - remove some more upstream diffs in config/vax, though it does not work currently - libc.so link fails due to weird relocations. - include some headers to ensure types are available - add missing sanitizer netbsd files to the 'dist' tree - remove no longer present TIOCRCVFRAME and TIOCXMTFRAME interceptors - expanding the sanitizer OS/cpu defs to cover more netbsd platforms - copy across a few minor changes from gcc.old's sanitizer's (eg, disabling linux-specific code, adding netbsd specific code.) - add (untested, but building) tsan support for arm64 - re-enable the sanitzers, at least simple -fsanitize=address builds a working application on amd64 now - fix the source lists (mostly .cc -> .cpp rename here) - add some missing new defines, -f*, and -W* - bump sanitizer shlib version - apply -fno-jump-tables in some more places on m68k - update the list in README.gcc12 to note many things now work or a few things to do not work (although there are many uncommited changes at this point across the rest of 'src' and 'xsrc'.) main points are that vax, hppa, ppc, and sh3 don't build yet, but most other things are either testing and working or at least building. To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 src/external/gpl3/gcc/README.gcc12 cvs rdiff -u -r1.13 -r1.14 src/external/gpl3/gcc/dist/gcc/common.opt cvs rdiff -u -r1.1.1.1 -r1.2 src/external/gpl3/gcc/dist/gcc/config/netbsd.cc cvs rdiff -u -r1.27 -r1.28 \ src/external/gpl3/gcc/dist/gcc/config/rs6000/netbsd64.h cvs rdiff -u -r1.12 -r1.13 src/external/gpl3/gcc/dist/gcc/config/vax/elf.h cvs rdiff -u -r1.10 -r1.11 \ src/external/gpl3/gcc/dist/gcc/config/vax/netbsd-elf.h cvs rdiff -u -r1.11 -r1.12 \ src/external/gpl3/gcc/dist/gcc/config/vax/vax-protos.h cvs rdiff -u -r1.14 -r1.15 src/external/gpl3/gcc/dist/gcc/config/vax/vax.h cvs rdiff -u -r1.6 -r1.7 \ src/external/gpl3/gcc/dist/libsanitizer/lsan/lsan_allocator.h cvs rdiff -u -r1.3 -r1.4 \ src/external/gpl3/gcc/dist/libsanitizer/lsan/lsan_common.cpp cvs rdiff -u -r1.8 -r1.9 \ src/external/gpl3/gcc/dist/libsanitizer/sanitizer_common/Makefile.am \ src/external/gpl3/gcc/dist/libsanitizer/sanitizer_common/Makefile.in cvs rdiff -u -r1.6 -r1.7 \ src/external/gpl3/gcc/dist/libsanitizer/sanitizer_common/sanitizer_interceptors_ioctl_netbsd.inc cvs rdiff -u -r1.17 -r1.18 \ src/external/gpl3/gcc/dist/libsanitizer/sanitizer_common/sanitizer_internal_defs.h cvs rdiff -u -r1.3 -r1.4 \ src/external/gpl3/gcc/dist/libsanitizer/sanitizer_common/sanitizer_linux.cpp \ src/external/gpl3/gcc/dist/libsanitizer/sanitizer_common/sanitizer_platform_limits_netbsd.cpp cvs rdiff -u -r1.10 -r1.11 \ src/external/gpl3/gcc/dist/libsanitizer/sanitizer_common/sanitizer_platform_limits_netbsd.h cvs rdiff -u -r1.3 -r1.4 \ src/external/gpl3/gcc/dist/libsanitizer/tsan/tsan_platform_linux.cpp cvs rdiff -u -r1.22 -r1.23 src/external/gpl3/gcc/lib/Makefile cvs rdiff -u -r1.16 -r1.17 src/external/gpl3/gcc/lib/Makefile.sanitizer cvs rdiff -u -r1.33 -r1.34 src/external/gpl3/gcc/lib/libasan/Makefile cvs rdiff -u -r1.6 -r1.7 src/external/gpl3/gcc/lib/libasan/shlib_version cvs rdiff -u -r1.8 -r1.9 src/external/gpl3/gcc/lib/liblsan/Makefile cvs rdiff -u -r1.2 -r1.3 src/external/gpl3/gcc/lib/liblsan/shlib_version cvs rdiff -u -r1.16 -r1.17 src/external/gpl3/gcc/lib/libtsan/Makefile cvs rdiff -u -r1.2 -r1.3 src/external/gpl3/gcc/lib/libtsan/shlib_version cvs rdiff -u -r1.20 -r1.21 src/external/gpl3/gcc/lib/libubsan/Makefile cvs rdiff -u -r1.5 -r1.6 src/external/gpl3/gcc/lib/libubsan/shlib_version cvs rdiff -u -r1.37 -r1.38 src/external/gpl3/gcc/usr.bin/Makefile.inc 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/README.gcc12 diff -u src/external/gpl3/gcc/README.gcc12:1.3 src/external/gpl3/gcc/README.gcc12:1.4 --- src/external/gpl3/gcc/README.gcc12:1.3 Tue Aug 1 07:09:38 2023 +++ src/external/gpl3/gcc/README.gcc12 Thu Aug 3 01:36:53 2023 @@ -1,4 +1,4 @@ -$NetBSD: README.gcc12,v 1.3 2023/08/01 07:09:38 mrg Exp $ +$NetBSD: README.gcc12,v 1.4 2023/08/03 01:36:53 mrg Exp $ new stuff: @@ -10,7 +10,6 @@ new stuff: d gfortran libbacktrace: +dwarf5_CFLAGS = $(libbacktrace_TEST_CFLAGS) -gdwarf-5 - libcody c++tools todo: @@ -23,8 +22,8 @@ tools: does build.sh tools work? kernels: does a kernel run? y (yes), b (builds/ready), ? (not ready) libgcc: does libgcc build? native-gcc: does a full mknative-gcc complete? -sani: has sanitizer been ported to this CPU again for GCC 12 -make release: does build.sh release complete? +sani: has sanitizer been ported to this CPU again for GCC 12? b (build) y (works) +make release: does build.sh release complete? (before sanitizer - bs) runs: does the system boot with a full world? atf: does atf run / compare well switched: has port switched? y (yes), n (no/ready), ? (not ready) @@ -32,48 +31,65 @@ switched: has port switched? y (yes), n architecture tools kernels libgcc native-gcc/sani make release[2] runs atf switched ------------ ----- ------- ------ --------------- ------------ ---- --- -------- -aarch64 y y y y ? y y y ? -aarch64eb y ? ? y ? ? ? ? ? -alpha y ? ? y ? ? ? ? ? -earmv4 ? ? ? ? ? ? ? ? ? -earmv4eb ? ? ? ? ? ? ? ? ? -earmv5 y ? ? y ? ? ? ? ? -earmv5eb y ? ? y ? ? ? ? ? -earmv5hf y ? ? y ? ? ? ? ? -earmv5hfeb y ? ? y ? ? ? ? ? -earmv6 y ? ? y ? ? ? ? ? -earmv6eb y ? ? y ? ? ? ? ? -earmv6hf y ? ? y ? ? ? ? ? -earmv6hfeb y ? ? y ? ? ? ? ? -earmv7 y ? y y ? ? ? ? ? -earmv7eb y ? ? y ? ? ? ? ? -earmv7hf y ? ? y ? ? ? ? ? -earmv7hfeb y ? ? y ? ? ? ? ? -hppa y ? ? y ? ? ? ? ? -i386 y ? y y ? y ? ? ? -ia64 y y y y ? y y[3] n ? -m68000 y ? ? y ? ? ? ? ? -m68k y ? ? y ? ? ? ? ? -mipseb y ? ? y ? ? ? ? ? -mipsel y ? y y ? y ? ? ? -mips64eb y ? ? y ? ? ? ? ? -mips64el y ? ? y ? ? ? ? ? -powerpc y ? ? y ? ? ? ? ? -powerpc64 ? ? ? ? ? ? ? ? ? -sh3eb y ? ? y ? ? ? ? ? -sh3el y ? ? y ? ? ? ? ? -sparc y ? ? y ? y ? ? ? -sparc64 y ? ? y ? y ? ? ? +aarch64 y y y y b y y y ? +aarch64eb y y y y b y y y ? +alpha y b y y b y ? ? ? +earmv4 y b ? y ? ? ? ? ? +earmv4eb y b ? y ? ? ? ? ? +earmv5 y b ? y ? ? ? ? ? +earmv5eb y b ? y ? ? ? ? ? +earmv5hf y b ? y ? ? ? ? ? +earmv5hfeb y b ? y ? ? ? ? ? +earmv6 y b ? y ? ? ? ? ? +earmv6eb y b ? y ? ? ? ? ? +earmv6hf y b ? y ? ? ? ? ? +earmv6hfeb y b ? y ? ? ? ? ? +earmv7 y b y y ? ? ? ? ? +earmv7eb y b ? y ? ? ? ? ? +earmv7hf y b ? y ? ? ? ? ? +earmv7hfeb y b ? y ? ? ? ? ? +hppa y b y y ? n[5] ? ? ? +i386 y b y y y y ? ? ? +ia64 y b y y y y y[3] n ? +m68000 y n[9] y y ? bs ? ? ? +m68k y b y y ? bs ? ? ? +mipseb y b y y ? bs ? ? ? +mipsel y b y y ? bs ? ? ? +mips64eb y b y y ? bs ? ? ? +mips64el y b y y ? bs ? ? ? +powerpc y ? y y ? n[4] ? ? ? +powerpc64 y ? ? y ? ? ? ? ? +sh3eb y ? y y ? ? ? ? ? +sh3el y ? y y ? ? ? ? ? +sparc y y y y ? bs y ? ? +sparc64 y b y y b y ? ? ? vax y ? y y ? n ? ? ? -x86_64 y y y y ? y y n[1] ? -riscv32 y ? ? ? ? ? ? ? ? -riscv64 y ? ? ? ? ? ? ? ? +x86_64 y y y y y y y y ? +riscv32 y y y y ? bs ? ? ? +riscv64 y y y y ? bs ? ? ? ------------ ----- ------- ------ --------------- ------------ ---- --- architecture tools kernels libgcc native-gcc/sani make release runs atf [1]: amd64 crashed in memfd, likely bug in new code [2]: while libsanitizer is not re-ported, "make release" does not include it. [3]: GENERIC.SKI boots just as well as GCC 10. +[4]: rs6000 has a new generator for rs6000-builtins.cc and rs6000-builtins.h rs6000-vecdefines.h +[5]: GCC itself fails to build: + build-print-rtl.c: In constructor 'rtx_writer::rtx_writer(FILE*, int, bool, bool, rtx_reuse_manager*)': + build-print-rtl.c:90:3: error: class 'rtx_writer' does not have any field named 'm_rtx_reuse_manager' +[6]: rs6000 has new generator to deal with +[7]: fails to build kernels: + In file included from sys/arch/powerpc/oea/pmap64.c:4: + sys/arch/powerpc/oea/pmap.c:2186:2: error: #error PPC_OEA64 not supported +[8]: destdir.evbsh3/usr/include/ssp/string.h: In function '_int_strtod_l': + destdir.evbsh3/usr/include/ssp/string.h:82:1: error: inlining failed in call to 'always_inline' '__memcpy_ichk': target specific option mismatch + 82 | __ssp_bos_icheck3_restrict(memcpy, void *, const void *) + | ^~~~~~~~~~~~~~~~~~~~~~~~~~ + src/lib/libc/gdtoa/gdtoaimp.h:534:20: note: called from here + 534 | #define Bcopy(x,y) memcpy(&x->sign,&y->sign,y->wds*sizeof(ULong) + 2*sizeof(int)) + src/lib/libc/gdtoa/strtod.c:582:17: note: in expansion of macro 'Bcopy' + 582 | Bcopy(bd, bd0); +[9]: sun2 fails to load the kernel, probably too big again. CPU vs platform test table (for CPUs with multiple ports). this is "make release" or just kernels. @@ -82,33 +98,33 @@ values: y (yes), k (kernels only), n (f CPU platform list --- -------- ---- acorn32 cats epoc32 evbarm-eb evbarm-el hpcarm iyonix netwinder shark zaurus -earmv4: ? ? ? ? ? ? ? ? -earm: ? ? ? ? -earmhf: ? ? -earmv6: ? ? -earmv6hf: ? ? -earmv7: ? ? -earmv7hf: ? ? +earmv4: k k k k k k k y +earm: k k k k +earmhf: k k +earmv6: k k +earmv6hf: k k +earmv7: k k +earmv7hf: k k amiga atari cesfic hp300 luna68k mac68k mvme68k news68k next68k sun3 x68k -m68k: ? ? ? ? ? ? ? ? ? y ? +m68k: y k k k k k k k k k k evbmips emips ews4800mips mipsco newsmips sgimips -mipseb: ? ? ? ? ? ? +mipseb: k k k k k y evbmips algor arc cobalt hpcmips pmax -mipsel: ? ? ? ? ? r +mipsel: k k k k k y algor evbmips pmax -mips64eb: ? -mips64el: ? ? ? +mips64eb: r +mips64el: k r r amigappc bebox evbppc ibmnws macppc mvmeppc ofppc prep rs6000 sandpoint -powerpc: ? ? ? ? ? ? ? ? ? ? +powerpc: k k k k kn[6] k k k k k evbppc macppc ofppc -powerpc64: ? ? ? +powerpc64: k k n[7] dreamcast evbsh3 hpcsh landisk mmeye -sh3eb: ? ? -sh3el: ? ? ? ? +sh3eb: kn[8] k +sh3el: k kn[8] k k Index: src/external/gpl3/gcc/dist/gcc/common.opt diff -u src/external/gpl3/gcc/dist/gcc/common.opt:1.13 src/external/gpl3/gcc/dist/gcc/common.opt:1.14 --- src/external/gpl3/gcc/dist/gcc/common.opt:1.13 Sun Jul 30 05:51:11 2023 +++ src/external/gpl3/gcc/dist/gcc/common.opt Thu Aug 3 01:36:53 2023 @@ -3293,8 +3293,9 @@ gdwarf Common Driver JoinedOrMissing Negative(gdwarf-) Generate debug information in default version of DWARF format. +; XXX NetBSD ctf tools can't handle version 5 yet. gdwarf- -Common Driver Joined UInteger Var(dwarf_version) Init(5) Negative(gstabs) +Common Driver Joined UInteger Var(dwarf_version) Init(4) Negative(gstabs) Generate debug information in DWARF v2 (or later) format. gdwarf32 Index: src/external/gpl3/gcc/dist/gcc/config/netbsd.cc diff -u src/external/gpl3/gcc/dist/gcc/config/netbsd.cc:1.1.1.1 src/external/gpl3/gcc/dist/gcc/config/netbsd.cc:1.2 --- src/external/gpl3/gcc/dist/gcc/config/netbsd.cc:1.1.1.1 Sun Jul 30 05:21:02 2023 +++ src/external/gpl3/gcc/dist/gcc/config/netbsd.cc Thu Aug 3 01:36:54 2023 @@ -23,6 +23,7 @@ along with GCC; see the file COPYING3. #include "tm.h" #include "tree.h" #include "varasm.h" +#include "opts.h" #include "netbsd-protos.h" static void Index: src/external/gpl3/gcc/dist/gcc/config/rs6000/netbsd64.h diff -u src/external/gpl3/gcc/dist/gcc/config/rs6000/netbsd64.h:1.27 src/external/gpl3/gcc/dist/gcc/config/rs6000/netbsd64.h:1.28 --- src/external/gpl3/gcc/dist/gcc/config/rs6000/netbsd64.h:1.27 Tue Sep 15 05:06:56 2020 +++ src/external/gpl3/gcc/dist/gcc/config/rs6000/netbsd64.h Thu Aug 3 01:36:54 2023 @@ -1,6 +1,6 @@ /* Definitions of target machine for GNU compiler, for 64 bit PowerPC NetBSD. - Copyright (C) 2006 Free Software Foundation, Inc. + Copyright (C) 2006-2023 Free Software Foundation, Inc. Contributed by Matthew Green (m...@eterna.com.au). This file is part of GCC. @@ -93,86 +93,7 @@ extern int dot_symbols; #undef SUBSUBTARGET_OVERRIDE_OPTIONS #define SUBSUBTARGET_OVERRIDE_OPTIONS \ - do \ - { \ - if (!global_options_set.x_rs6000_alignment_flags) \ - rs6000_alignment_flags = MASK_ALIGN_NATURAL; \ - if (TARGET_64BIT) \ - { \ - if (DEFAULT_ABI != ABI_AIX) \ - { \ - rs6000_current_abi = ABI_AIX; \ - error (INVALID_64BIT, "call"); \ - } \ - dot_symbols = !strcmp (rs6000_abi_name, "aixdesc"); \ - if (ELFv2_ABI_CHECK) \ - { \ - rs6000_current_abi = ABI_ELFv2; \ - if (dot_symbols) \ - error ("%<-mcall-aixdesc%> incompatible with %<-mabi=elfv2%>"); \ - } \ - if (rs6000_isa_flags & OPTION_MASK_RELOCATABLE) \ - { \ - rs6000_isa_flags &= ~OPTION_MASK_RELOCATABLE; \ - error (INVALID_64BIT, "relocatable"); \ - } \ - if (ELFv2_ABI_CHECK) \ - { \ - rs6000_current_abi = ABI_ELFv2; \ - if (dot_symbols) \ - error ("-mcall-aixdesc incompatible with -mabi=elfv2"); \ - } \ - if (rs6000_isa_flags & OPTION_MASK_EABI) \ - { \ - rs6000_isa_flags &= ~OPTION_MASK_EABI; \ - error (INVALID_64BIT, "eabi"); \ - } \ - if (TARGET_PROTOTYPE) \ - { \ - target_prototype = 0; \ - error (INVALID_64BIT, "prototype"); \ - } \ - if ((rs6000_isa_flags & OPTION_MASK_POWERPC64) == 0) \ - { \ - rs6000_isa_flags |= OPTION_MASK_POWERPC64; \ - error ("%<-m64%> requires a PowerPC64 cpu"); \ - } \ - if ((rs6000_isa_flags_explicit \ - & OPTION_MASK_MINIMAL_TOC) != 0) \ - { \ - if (global_options_set.x_rs6000_current_cmodel \ - && rs6000_current_cmodel != CMODEL_SMALL) \ - error ("%<-mcmodel%> incompatible with other toc options"); \ - SET_CMODEL (CMODEL_SMALL); \ - } \ - else \ - { \ - if (!global_options_set.x_rs6000_current_cmodel) \ - SET_CMODEL (CMODEL_MEDIUM); \ - if (rs6000_current_cmodel != CMODEL_SMALL) \ - { \ - TARGET_NO_FP_IN_TOC = 0; \ - TARGET_NO_SUM_IN_TOC = 0; \ - } \ - } \ - } \ - else \ - { \ - if (!RS6000_BI_ARCH_P) \ - error (INVALID_32BIT, "32"); \ - if (TARGET_PROFILE_KERNEL) \ - { \ - TARGET_PROFILE_KERNEL = 0; \ - error (INVALID_32BIT, "profile-kernel"); \ - } \ - if (global_options_set.x_rs6000_current_cmodel) \ - { \ - SET_CMODEL (CMODEL_SMALL); \ - error (INVALID_32BIT, "cmodel"); \ - } \ - } \ - } \ - while (0) + do rs6000_linux64_override_options (); while (0) #undef ASM_DEFAULT_SPEC #undef ASM_SPEC @@ -253,11 +174,9 @@ extern int dot_symbols; /* PowerPC64 NetBSD word-aligns FP doubles when -malign-power is given. */ #undef ADJUST_FIELD_ALIGN #define ADJUST_FIELD_ALIGN(FIELD, TYPE, COMPUTED) \ - (rs6000_special_adjust_field_align_p ((TYPE), (COMPUTED)) \ - ? 128 \ - : (TARGET_64BIT \ - && TARGET_ALIGN_NATURAL == 0 \ - && TYPE_MODE (strip_array_types (TYPE)) == DFmode) \ + ((TARGET_64BIT \ + && TARGET_ALIGN_NATURAL == 0 \ + && TYPE_MODE (strip_array_types (TYPE)) == DFmode) \ ? MIN ((COMPUTED), 32) \ : (COMPUTED)) Index: src/external/gpl3/gcc/dist/gcc/config/vax/elf.h diff -u src/external/gpl3/gcc/dist/gcc/config/vax/elf.h:1.12 src/external/gpl3/gcc/dist/gcc/config/vax/elf.h:1.13 --- src/external/gpl3/gcc/dist/gcc/config/vax/elf.h:1.12 Sun Jul 30 05:51:30 2023 +++ src/external/gpl3/gcc/dist/gcc/config/vax/elf.h Thu Aug 3 01:36:54 2023 @@ -115,5 +115,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/netbsd-elf.h diff -u src/external/gpl3/gcc/dist/gcc/config/vax/netbsd-elf.h:1.10 src/external/gpl3/gcc/dist/gcc/config/vax/netbsd-elf.h:1.11 --- src/external/gpl3/gcc/dist/gcc/config/vax/netbsd-elf.h:1.10 Sun Jul 30 05:51:30 2023 +++ src/external/gpl3/gcc/dist/gcc/config/vax/netbsd-elf.h Thu Aug 3 01:36:54 2023 @@ -45,9 +45,8 @@ along with GCC; see the file COPYING3. #undef LINK_SPEC #define LINK_SPEC NETBSD_LINK_SPEC_ELF -#undef EXTRA_SPECS -#define EXTRA_SPECS NETBSD_SUBTARGET_EXTRA_SPECS -#undef SUBTARGET_EXTRA_SPECS +#define EXTRA_SPECS \ + { "netbsd_entry_point", NETBSD_ENTRY_POINT }, #undef INTPTR_TYPE #define INTPTR_TYPE "long int" Index: src/external/gpl3/gcc/dist/gcc/config/vax/vax-protos.h diff -u src/external/gpl3/gcc/dist/gcc/config/vax/vax-protos.h:1.11 src/external/gpl3/gcc/dist/gcc/config/vax/vax-protos.h:1.12 --- src/external/gpl3/gcc/dist/gcc/config/vax/vax-protos.h:1.11 Sun Jul 30 05:51:30 2023 +++ src/external/gpl3/gcc/dist/gcc/config/vax/vax-protos.h Thu Aug 3 01:36:54 2023 @@ -17,6 +17,8 @@ You should have received a copy of the G along with GCC; see the file COPYING3. If not see <http://www.gnu.org/licenses/>. */ +#include <stdbool.h> + extern bool legitimate_constant_address_p (rtx); extern void vax_expand_prologue (void); Index: src/external/gpl3/gcc/dist/gcc/config/vax/vax.h diff -u src/external/gpl3/gcc/dist/gcc/config/vax/vax.h:1.14 src/external/gpl3/gcc/dist/gcc/config/vax/vax.h:1.15 --- src/external/gpl3/gcc/dist/gcc/config/vax/vax.h:1.14 Tue Aug 1 06:05:13 2023 +++ src/external/gpl3/gcc/dist/gcc/config/vax/vax.h Thu Aug 3 01:36:54 2023 @@ -139,9 +139,6 @@ along with GCC; see the file COPYING3. /* Specify the registers used for certain standard purposes. The values of these macros are register numbers. */ -/* VAX PSW for DWARF-2 */ -#define PSW_REGNUM VAX_PSW_REGNUM - /* VAX pc is overloaded on a register. */ #define PC_REGNUM VAX_PC_REGNUM Index: src/external/gpl3/gcc/dist/libsanitizer/lsan/lsan_allocator.h diff -u src/external/gpl3/gcc/dist/libsanitizer/lsan/lsan_allocator.h:1.6 src/external/gpl3/gcc/dist/libsanitizer/lsan/lsan_allocator.h:1.7 --- src/external/gpl3/gcc/dist/libsanitizer/lsan/lsan_allocator.h:1.6 Sun Jul 30 05:51:42 2023 +++ src/external/gpl3/gcc/dist/libsanitizer/lsan/lsan_allocator.h Thu Aug 3 01:36:54 2023 @@ -50,7 +50,9 @@ struct ChunkMetadata { }; #if defined(__mips64) || defined(__aarch64__) || defined(__i386__) || \ - defined(__arm__) || SANITIZER_RISCV64 || defined(__hexagon__) + defined(__arm__) || SANITIZER_RISCV64 || defined(__hexagon__) || \ + ((defined(__hppa__) || defined(__sparc__)) && !defined(_LP64)) || \ + defined(__mips_o32) || defined(__mips_n32) template <typename AddressSpaceViewTy> struct AP32 { static const uptr kSpaceBeg = 0; @@ -65,7 +67,8 @@ struct AP32 { template <typename AddressSpaceView> using PrimaryAllocatorASVT = SizeClassAllocator32<AP32<AddressSpaceView>>; using PrimaryAllocator = PrimaryAllocatorASVT<LocalAddressSpaceView>; -#elif defined(__x86_64__) || defined(__powerpc64__) || defined(__s390x__) +#elif defined(__x86_64__) || defined(__powerpc64__) || defined(__s390x__) || \ + defined(__alpha__) || defined(__sparc64__) || defined(__ia64__) # if SANITIZER_FUCHSIA const uptr kAllocatorSpace = ~(uptr)0; const uptr kAllocatorSize = 0x40000000000ULL; // 4T. Index: src/external/gpl3/gcc/dist/libsanitizer/lsan/lsan_common.cpp diff -u src/external/gpl3/gcc/dist/libsanitizer/lsan/lsan_common.cpp:1.3 src/external/gpl3/gcc/dist/libsanitizer/lsan/lsan_common.cpp:1.4 --- src/external/gpl3/gcc/dist/libsanitizer/lsan/lsan_common.cpp:1.3 Mon Jul 31 01:44:55 2023 +++ src/external/gpl3/gcc/dist/libsanitizer/lsan/lsan_common.cpp Thu Aug 3 01:36:54 2023 @@ -161,7 +161,7 @@ static inline bool CanBeAHeapPointer(upt #if defined(__x86_64__) // Accept only canonical form user-space addresses. return ((p >> 47) == 0); -#elif defined(__mips64) +#elif defined(__mips64) && defined(_LP64) return ((p >> 40) == 0); #elif defined(__aarch64__) unsigned runtimeVMA = Index: src/external/gpl3/gcc/dist/libsanitizer/sanitizer_common/Makefile.am diff -u src/external/gpl3/gcc/dist/libsanitizer/sanitizer_common/Makefile.am:1.8 src/external/gpl3/gcc/dist/libsanitizer/sanitizer_common/Makefile.am:1.9 --- src/external/gpl3/gcc/dist/libsanitizer/sanitizer_common/Makefile.am:1.8 Sun Jul 30 05:51:42 2023 +++ src/external/gpl3/gcc/dist/libsanitizer/sanitizer_common/Makefile.am Thu Aug 3 01:36:54 2023 @@ -47,6 +47,7 @@ sanitizer_common_files = \ sanitizer_openbsd.cpp \ sanitizer_platform_limits_freebsd.cpp \ sanitizer_platform_limits_linux.cpp \ + sanitizer_platform_limits_netbsd.cpp \ sanitizer_platform_limits_openbsd.cpp \ sanitizer_platform_limits_posix.cpp \ sanitizer_platform_limits_solaris.cpp \ @@ -67,6 +68,7 @@ sanitizer_common_files = \ sanitizer_symbolizer_report.cpp \ sanitizer_stacktrace_printer.cpp \ sanitizer_stoptheworld_linux_libcdep.cpp \ + sanitizer_stoptheworld_netbsd_libcdep.cpp \ sanitizer_stoptheworld_mac.cpp \ sanitizer_suppressions.cpp \ sanitizer_symbolizer.cpp \ Index: src/external/gpl3/gcc/dist/libsanitizer/sanitizer_common/Makefile.in diff -u src/external/gpl3/gcc/dist/libsanitizer/sanitizer_common/Makefile.in:1.8 src/external/gpl3/gcc/dist/libsanitizer/sanitizer_common/Makefile.in:1.9 --- src/external/gpl3/gcc/dist/libsanitizer/sanitizer_common/Makefile.in:1.8 Sun Jul 30 05:51:42 2023 +++ src/external/gpl3/gcc/dist/libsanitizer/sanitizer_common/Makefile.in Thu Aug 3 01:36:54 2023 @@ -133,6 +133,7 @@ am__objects_1 = sancov_flags.lo sanitize sanitizer_netbsd.lo sanitizer_openbsd.lo \ sanitizer_platform_limits_freebsd.lo \ sanitizer_platform_limits_linux.lo \ + sanitizer_platform_limits_netbsd.lo \ sanitizer_platform_limits_openbsd.lo \ sanitizer_platform_limits_posix.lo \ sanitizer_platform_limits_solaris.lo sanitizer_posix.lo \ @@ -145,6 +146,7 @@ am__objects_1 = sancov_flags.lo sanitize sanitizer_symbolizer_mac.lo sanitizer_symbolizer_report.lo \ sanitizer_stacktrace_printer.lo \ sanitizer_stoptheworld_linux_libcdep.lo \ + sanitizer_stoptheworld_netbsd_libcdep.lo \ sanitizer_stoptheworld_mac.lo sanitizer_suppressions.lo \ sanitizer_symbolizer.lo sanitizer_symbolizer_libbacktrace.lo \ sanitizer_symbolizer_libcdep.lo \ @@ -408,6 +410,7 @@ sanitizer_common_files = \ sanitizer_openbsd.cpp \ sanitizer_platform_limits_freebsd.cpp \ sanitizer_platform_limits_linux.cpp \ + sanitizer_platform_limits_netbsd.cpp \ sanitizer_platform_limits_openbsd.cpp \ sanitizer_platform_limits_posix.cpp \ sanitizer_platform_limits_solaris.cpp \ @@ -428,6 +431,7 @@ sanitizer_common_files = \ sanitizer_symbolizer_report.cpp \ sanitizer_stacktrace_printer.cpp \ sanitizer_stoptheworld_linux_libcdep.cpp \ + sanitizer_stoptheworld_netbsd_libcdep.cpp \ sanitizer_stoptheworld_mac.cpp \ sanitizer_suppressions.cpp \ sanitizer_symbolizer.cpp \ @@ -564,6 +568,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_openbsd.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_platform_limits_freebsd.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_platform_limits_linux.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_platform_limits_netbsd.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_platform_limits_openbsd.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_platform_limits_posix.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_platform_limits_solaris.Plo@am__quote@ @@ -582,6 +587,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_stacktrace_printer.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_stacktrace_sparc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_stoptheworld_linux_libcdep.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_stoptheworld_netbsd_libcdep.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_stoptheworld_mac.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_suppressions.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_symbolizer.Plo@am__quote@ Index: src/external/gpl3/gcc/dist/libsanitizer/sanitizer_common/sanitizer_interceptors_ioctl_netbsd.inc diff -u src/external/gpl3/gcc/dist/libsanitizer/sanitizer_common/sanitizer_interceptors_ioctl_netbsd.inc:1.6 src/external/gpl3/gcc/dist/libsanitizer/sanitizer_common/sanitizer_interceptors_ioctl_netbsd.inc:1.7 --- src/external/gpl3/gcc/dist/libsanitizer/sanitizer_common/sanitizer_interceptors_ioctl_netbsd.inc:1.6 Sun Jul 30 05:51:42 2023 +++ src/external/gpl3/gcc/dist/libsanitizer/sanitizer_common/sanitizer_interceptors_ioctl_netbsd.inc Thu Aug 3 01:36:54 2023 @@ -1267,8 +1267,6 @@ static void ioctl_table_fill() { _(TIOCGFLAGS, WRITE, sizeof(int)); _(TIOCSFLAGS, READ, sizeof(int)); _(TIOCDCDTIMESTAMP, WRITE, struct_timeval_sz); - _(TIOCRCVFRAME, READ, sizeof(uptr)); - _(TIOCXMTFRAME, READ, sizeof(uptr)); _(TIOCPTMGET, WRITE, struct_ptmget_sz); _(TIOCGRANTPT, NONE, 0); _(TIOCPTSNAME, WRITE, struct_ptmget_sz); Index: src/external/gpl3/gcc/dist/libsanitizer/sanitizer_common/sanitizer_internal_defs.h diff -u src/external/gpl3/gcc/dist/libsanitizer/sanitizer_common/sanitizer_internal_defs.h:1.17 src/external/gpl3/gcc/dist/libsanitizer/sanitizer_common/sanitizer_internal_defs.h:1.18 --- src/external/gpl3/gcc/dist/libsanitizer/sanitizer_common/sanitizer_internal_defs.h:1.17 Sun Jul 30 05:51:42 2023 +++ src/external/gpl3/gcc/dist/libsanitizer/sanitizer_common/sanitizer_internal_defs.h Thu Aug 3 01:36:54 2023 @@ -139,7 +139,10 @@ namespace __sanitizer { typedef unsigned long long uptr; typedef signed long long sptr; #else -# if (SANITIZER_WORDSIZE == 64) || SANITIZER_MAC || SANITIZER_WINDOWS +# if (SANITIZER_WORDSIZE == 64) || SANITIZER_MAC || SANITIZER_WINDOWS || \ + (SANITIZER_NETBSD && \ + (defined(__sparc__) || defined(__hppa__) || defined(__arm__) || \ + (defined(__mips__) && !defined(__mips_o32)))) typedef unsigned long uptr; typedef signed long sptr; # else @@ -188,8 +191,11 @@ typedef u64 OFF64_T; #if (SANITIZER_WORDSIZE == 64) || SANITIZER_MAC typedef uptr operator_new_size_type; +#elifdef __SIZE_TYPE__ +typedef __SIZE_TYPE__ operator_new_size_type; #else -# if defined(__s390__) && !defined(__s390x__) +# if (defined(__s390__) && !defined(__s390x__)) || \ + (SANITIZER_NETBSD && (defined(__sparc__) || defined(__hppa__) || defined(__mips__))) // Special case: 31-bit s390 has unsigned long as size_t. typedef unsigned long operator_new_size_type; # else Index: src/external/gpl3/gcc/dist/libsanitizer/sanitizer_common/sanitizer_linux.cpp diff -u src/external/gpl3/gcc/dist/libsanitizer/sanitizer_common/sanitizer_linux.cpp:1.3 src/external/gpl3/gcc/dist/libsanitizer/sanitizer_common/sanitizer_linux.cpp:1.4 --- src/external/gpl3/gcc/dist/libsanitizer/sanitizer_common/sanitizer_linux.cpp:1.3 Mon Jul 31 01:44:56 2023 +++ src/external/gpl3/gcc/dist/libsanitizer/sanitizer_common/sanitizer_linux.cpp Thu Aug 3 01:36:54 2023 @@ -34,6 +34,7 @@ // format. Struct kernel_stat is defined as 'struct stat' in asm/stat.h. To // access stat from asm/stat.h, without conflicting with definition in // sys/stat.h, we use this trick. +#if SANITIZER_LINUX #if defined(__mips64) #include <asm/unistd.h> #include <sys/types.h> @@ -49,6 +50,11 @@ #include <asm/stat.h> #undef stat #endif +#endif + +#if SANITIZER_NETBSD +#include <lwp.h> +#endif #include <dlfcn.h> #include <errno.h> @@ -1778,12 +1784,15 @@ void internal_join_thread(void *th) {} #if defined(__aarch64__) // Android headers in the older NDK releases miss this definition. +#if SANITIZER_LINUX struct __sanitizer_esr_context { struct _aarch64_ctx head; uint64_t esr; }; +#endif static bool Aarch64GetESR(ucontext_t *ucontext, u64 *esr) { +#if SANITIZER_LINUX static const u32 kEsrMagic = 0x45535201; u8 *aux = reinterpret_cast<u8 *>(ucontext->uc_mcontext.__reserved); while (true) { @@ -1795,6 +1804,7 @@ static bool Aarch64GetESR(ucontext_t *uc } aux += ctx->size; } +#endif return false; } #endif @@ -1821,7 +1831,12 @@ SignalContext::WriteFlag SignalContext:: uint32_t faulty_instruction; uint32_t op_code; +#if SANITIZER_NETBSD + ucontext_t *nucontext = (ucontext_t *)ucontext; + exception_source = (uint32_t *)_UC_MACHINE_PC(nucontext); +#else exception_source = (uint32_t *)ucontext->uc_mcontext.pc; +#endif faulty_instruction = (uint32_t)(*exception_source); op_code = (faulty_instruction >> 26) & 0x3f; @@ -1879,6 +1894,8 @@ SignalContext::WriteFlag SignalContext:: // From OpenSolaris $SRC/uts/sun4/os/trap.c (get_accesstype). #if SANITIZER_SOLARIS uptr pc = ucontext->uc_mcontext.gregs[REG_PC]; +#elif SANITIZER_NETBSD + uptr pc = ucontext->uc_mcontext.__gregs[_REG_PC]; #else // Historical BSDism here. struct sigcontext *scontext = (struct sigcontext *)context; Index: src/external/gpl3/gcc/dist/libsanitizer/sanitizer_common/sanitizer_platform_limits_netbsd.cpp diff -u src/external/gpl3/gcc/dist/libsanitizer/sanitizer_common/sanitizer_platform_limits_netbsd.cpp:1.3 src/external/gpl3/gcc/dist/libsanitizer/sanitizer_common/sanitizer_platform_limits_netbsd.cpp:1.4 --- src/external/gpl3/gcc/dist/libsanitizer/sanitizer_common/sanitizer_platform_limits_netbsd.cpp:1.3 Mon Jul 31 01:44:56 2023 +++ src/external/gpl3/gcc/dist/libsanitizer/sanitizer_common/sanitizer_platform_limits_netbsd.cpp Thu Aug 3 01:36:54 2023 @@ -2342,8 +2342,6 @@ unsigned IOCTL_TIOCDRAIN = TIOCDRAIN; unsigned IOCTL_TIOCGFLAGS = TIOCGFLAGS; unsigned IOCTL_TIOCSFLAGS = TIOCSFLAGS; unsigned IOCTL_TIOCDCDTIMESTAMP = TIOCDCDTIMESTAMP; -unsigned IOCTL_TIOCRCVFRAME = TIOCRCVFRAME; -unsigned IOCTL_TIOCXMTFRAME = TIOCXMTFRAME; unsigned IOCTL_TIOCPTMGET = TIOCPTMGET; unsigned IOCTL_TIOCGRANTPT = TIOCGRANTPT; unsigned IOCTL_TIOCPTSNAME = TIOCPTSNAME; Index: src/external/gpl3/gcc/dist/libsanitizer/sanitizer_common/sanitizer_platform_limits_netbsd.h diff -u src/external/gpl3/gcc/dist/libsanitizer/sanitizer_common/sanitizer_platform_limits_netbsd.h:1.10 src/external/gpl3/gcc/dist/libsanitizer/sanitizer_common/sanitizer_platform_limits_netbsd.h:1.11 --- src/external/gpl3/gcc/dist/libsanitizer/sanitizer_common/sanitizer_platform_limits_netbsd.h:1.10 Mon Jul 31 01:44:56 2023 +++ src/external/gpl3/gcc/dist/libsanitizer/sanitizer_common/sanitizer_platform_limits_netbsd.h Thu Aug 3 01:36:54 2023 @@ -2195,8 +2195,6 @@ extern unsigned IOCTL_TIOCDRAIN; extern unsigned IOCTL_TIOCGFLAGS; extern unsigned IOCTL_TIOCSFLAGS; extern unsigned IOCTL_TIOCDCDTIMESTAMP; -extern unsigned IOCTL_TIOCRCVFRAME; -extern unsigned IOCTL_TIOCXMTFRAME; extern unsigned IOCTL_TIOCPTMGET; extern unsigned IOCTL_TIOCGRANTPT; extern unsigned IOCTL_TIOCPTSNAME; Index: src/external/gpl3/gcc/dist/libsanitizer/tsan/tsan_platform_linux.cpp diff -u src/external/gpl3/gcc/dist/libsanitizer/tsan/tsan_platform_linux.cpp:1.3 src/external/gpl3/gcc/dist/libsanitizer/tsan/tsan_platform_linux.cpp:1.4 --- src/external/gpl3/gcc/dist/libsanitizer/tsan/tsan_platform_linux.cpp:1.3 Mon Jul 31 01:44:58 2023 +++ src/external/gpl3/gcc/dist/libsanitizer/tsan/tsan_platform_linux.cpp Thu Aug 3 01:36:54 2023 @@ -408,6 +408,8 @@ static uptr UnmangleLongJmpSp(uptr mangl #if SANITIZER_NETBSD # ifdef __x86_64__ # define LONG_JMP_SP_ENV_SLOT 6 +# elifdef __aarch64__ +# define LONG_JMP_SP_ENV_SLOT 1 # else # error unsupported # endif Index: src/external/gpl3/gcc/lib/Makefile diff -u src/external/gpl3/gcc/lib/Makefile:1.22 src/external/gpl3/gcc/lib/Makefile:1.23 --- src/external/gpl3/gcc/lib/Makefile:1.22 Tue Aug 1 05:57:56 2023 +++ src/external/gpl3/gcc/lib/Makefile Thu Aug 3 01:36:54 2023 @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.22 2023/08/01 05:57:56 mrg Exp $ +# $NetBSD: Makefile,v 1.23 2023/08/03 01:36:54 mrg Exp $ .include <bsd.own.mk> @@ -11,16 +11,13 @@ 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 # to all 64-bit architectures. -.if ${MACHINE} == "amd64" +.if ${MACHINE} == "amd64" || ${MACHINE_CPU} == "aarch64" SUBDIR+= libtsan .endif -.endif # 0 .endif 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.17 --- src/external/gpl3/gcc/lib/Makefile.sanitizer:1.16 Tue Sep 15 05:19:34 2020 +++ src/external/gpl3/gcc/lib/Makefile.sanitizer Thu Aug 3 01:36:54 2023 @@ -1,73 +1,76 @@ -# $NetBSD: Makefile.sanitizer,v 1.16 2020/09/15 05:19:34 mrg Exp $ +# $NetBSD: Makefile.sanitizer,v 1.17 2023/08/03 01:36:54 mrg Exp $ SANITIZER=${GCCDIST}/libsanitizer .PATH: ${SANITIZER}/interception ${SANITIZER}/sanitizer_common INTERCEPTION_SRCS= \ -interception_linux.cc \ -interception_mac.cc \ -interception_type_test.cc \ -interception_win.cc + interception_linux.cpp \ + interception_mac.cpp \ + interception_win.cpp \ + interception_type_test.cpp # XXXmknative SANITIZER_SRCS+= \ - sancov_flags.cc \ - sanitizer_allocator.cc \ - sanitizer_allocator_checks.cc \ - sanitizer_allocator_report.cc \ - sanitizer_common.cc \ - sanitizer_common_libcdep.cc \ - sanitizer_coverage_libcdep_new.cc \ - sanitizer_deadlock_detector1.cc \ - sanitizer_deadlock_detector2.cc \ - sanitizer_errno.cc \ - sanitizer_file.cc \ - sanitizer_flag_parser.cc \ - sanitizer_flags.cc \ - sanitizer_libc.cc \ - sanitizer_libignore.cc \ - sanitizer_linux.cc \ - sanitizer_linux_libcdep.cc \ - sanitizer_linux_s390.cc \ - sanitizer_mac.cc \ - sanitizer_netbsd.cc \ - sanitizer_openbsd.cc \ - sanitizer_persistent_allocator.cc \ - sanitizer_platform_limits_linux.cc \ - sanitizer_platform_limits_netbsd.cc \ - sanitizer_platform_limits_openbsd.cc \ - sanitizer_platform_limits_solaris.cc \ - sanitizer_posix.cc \ - sanitizer_posix_libcdep.cc \ - sanitizer_printf.cc \ - sanitizer_procmaps_bsd.cc \ - sanitizer_procmaps_common.cc \ - sanitizer_procmaps_linux.cc \ - sanitizer_procmaps_mac.cc \ - sanitizer_procmaps_solaris.cc \ - sanitizer_rtems.cc \ - sanitizer_solaris.cc \ - sanitizer_stackdepot.cc \ - sanitizer_stacktrace.cc \ - sanitizer_stacktrace_libcdep.cc \ - sanitizer_stacktrace_printer.cc \ - sanitizer_stacktrace_sparc.cc \ - sanitizer_stoptheworld_linux_libcdep.cc \ - sanitizer_stoptheworld_netbsd_libcdep.cc \ - sanitizer_suppressions.cc \ - sanitizer_symbolizer.cc \ - sanitizer_symbolizer_libbacktrace.cc \ - sanitizer_symbolizer_libcdep.cc \ - sanitizer_symbolizer_mac.cc \ - sanitizer_symbolizer_posix_libcdep.cc \ - sanitizer_symbolizer_report.cc \ - sanitizer_symbolizer_win.cc \ - sanitizer_termination.cc \ - sanitizer_thread_registry.cc \ - sanitizer_tls_get_addr.cc \ - sanitizer_unwind_linux_libcdep.cc \ - sanitizer_unwind_win.cc \ - sanitizer_win.cc + sancov_flags.cpp \ + sanitizer_allocator.cpp \ + sanitizer_allocator_checks.cpp \ + sanitizer_allocator_report.cpp \ + sanitizer_common.cpp \ + sanitizer_common_libcdep.cpp \ + sanitizer_coverage_libcdep_new.cpp \ + sanitizer_deadlock_detector1.cpp \ + sanitizer_deadlock_detector2.cpp \ + sanitizer_errno.cpp \ + sanitizer_file.cpp \ + sanitizer_flags.cpp \ + sanitizer_flag_parser.cpp \ + sanitizer_libc.cpp \ + sanitizer_libignore.cpp \ + sanitizer_linux.cpp \ + sanitizer_linux_libcdep.cpp \ + sanitizer_linux_s390.cpp \ + sanitizer_mac.cpp \ + sanitizer_mac_libcdep.cpp \ + sanitizer_mutex.cpp \ + sanitizer_netbsd.cpp \ + sanitizer_openbsd.cpp \ + sanitizer_platform_limits_freebsd.cpp \ + sanitizer_platform_limits_linux.cpp \ + sanitizer_platform_limits_netbsd.cpp \ + sanitizer_platform_limits_openbsd.cpp \ + sanitizer_platform_limits_posix.cpp \ + sanitizer_platform_limits_solaris.cpp \ + sanitizer_posix.cpp \ + sanitizer_posix_libcdep.cpp \ + sanitizer_printf.cpp \ + sanitizer_procmaps_bsd.cpp \ + sanitizer_procmaps_common.cpp \ + sanitizer_procmaps_linux.cpp \ + sanitizer_procmaps_mac.cpp \ + sanitizer_procmaps_solaris.cpp \ + sanitizer_solaris.cpp \ + sanitizer_stackdepot.cpp \ + sanitizer_stacktrace.cpp \ + sanitizer_stacktrace_libcdep.cpp \ + sanitizer_stacktrace_sparc.cpp \ + sanitizer_symbolizer_mac.cpp \ + sanitizer_symbolizer_report.cpp \ + sanitizer_stacktrace_printer.cpp \ + sanitizer_stoptheworld_linux_libcdep.cpp \ + sanitizer_stoptheworld_netbsd_libcdep.cpp \ + sanitizer_stoptheworld_mac.cpp \ + sanitizer_suppressions.cpp \ + sanitizer_symbolizer.cpp \ + sanitizer_symbolizer_libbacktrace.cpp \ + sanitizer_symbolizer_libcdep.cpp \ + sanitizer_symbolizer_posix_libcdep.cpp \ + sanitizer_symbolizer_win.cpp \ + sanitizer_termination.cpp \ + sanitizer_thread_registry.cpp \ + sanitizer_tls_get_addr.cpp \ + sanitizer_unwind_linux_libcdep.cpp \ + sanitizer_unwind_win.cpp \ + sanitizer_win.cpp # The linux build does this to avoid preinit sections on shared libraries CSHLIBFLAGS+= -DPIC @@ -77,16 +80,29 @@ SRCS+= ${INTERCEPTION_SRCS} ${SANITIZER_ CPPFLAGS+=-I${SANITIZER}/include -I${SANITIZER} CPPFLAGS.sanitizer_netbsd.cc+=-I${GCCDIST}/gcc/ginclude CPPFLAGS+=-D_DEBUG -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -CPPFLAGS+=-D__STDC_LIMIT_MACROS -DSANITIZER_HAS_EXCEPTIONS=1 -CPPFLAGS+=-DSANITIZER_NEEDS_SEGV=1 +CPPFLAGS+=-D__STDC_LIMIT_MACROS +CPPFLAGS+=-DASAN_NEEDS_SEGV=1 +CPPFLAGS+=-DASAN_HAS_CXA_RETHROW_PRIMARY_EXCEPTION=0 #CPPFLAGS+=-DCAN_SANITIZE_UB=0 LIBDPLIBS+= pthread ${.CURDIR}/../../../../../lib/libpthread -COPTS+=-std=gnu++11 -fsized-deallocation -fvisibility=hidden -COPTS+=-fno-builtin -fno-exceptions -fno-rtti -funwind-tables +COPTS+=-fPIC -fno-builtin -fno-exceptions -fno-rtti +COPTS+=-funwind-tables -fvisibility=hidden -fno-ipa-icf +#COPTS+=-fsized-deallocation +COPTS+=-std=gnu++14 + +# XXX is this mis-compiled, and supposed to be some weak-symbol override thing? +.for _f in asan_suppressions.cpp sancov_flags.cpp +#COPTS.${_f}+=-Wno-error=address +COPTS.${_f}+=-Wno-address +.endfor +# XXX +COPTS.sanitizer_posix.cpp+=-Wno-error=maybe-uninitialized +COPTS.tsan_rtl_access.cpp+=-Wno-error=maybe-uninitialized +COPTS.ubsan_handlers_cxx.cpp+=-Wno-error=maybe-uninitialized -# Can't profile without it` +# Can't profile without it #-fomit-frame-pointer .if ${MACHINE_ARCH} == "vax" 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.34 --- src/external/gpl3/gcc/lib/libasan/Makefile:1.33 Mon Sep 14 15:01:57 2020 +++ src/external/gpl3/gcc/lib/libasan/Makefile Thu Aug 3 01:36:55 2023 @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.33 2020/09/14 15:01:57 kamil Exp $ +# $NetBSD: Makefile,v 1.34 2023/08/03 01:36:55 mrg Exp $ UNSUPPORTED_COMPILER.clang= # defined NOSANITIZER= # defined @@ -12,53 +12,55 @@ NOSANITIZER= # defined # XXXmknative ASAN_SRCS= \ - asan_activation.cc \ - asan_allocator.cc \ - asan_debugging.cc \ - asan_descriptions.cc \ - asan_errors.cc \ - asan_fake_stack.cc \ - asan_flags.cc \ - asan_globals.cc \ - asan_interceptors.cc \ - asan_interceptors_memintrinsics.cc \ - asan_linux.cc \ - asan_mac.cc \ - asan_malloc_linux.cc \ - asan_malloc_mac.cc \ - asan_malloc_win.cc \ - asan_memory_profile.cc \ - asan_new_delete.cc \ - asan_poisoning.cc \ - asan_posix.cc \ - asan_report.cc \ - asan_rtl.cc \ - asan_shadow_setup.cc \ - asan_stack.cc \ - asan_stats.cc \ - asan_suppressions.cc \ - asan_thread.cc \ - asan_win.cc \ - asan_win_dll_thunk.cc \ - asan_win_dynamic_runtime_thunk.cc + asan_activation.cpp \ + asan_allocator.cpp \ + asan_debugging.cpp \ + asan_descriptions.cpp \ + asan_errors.cpp \ + asan_fake_stack.cpp \ + asan_flags.cpp \ + asan_globals.cpp \ + asan_interceptors.cpp \ + asan_interceptors_memintrinsics.cpp \ + asan_linux.cpp \ + asan_mac.cpp \ + asan_malloc_linux.cpp \ + asan_malloc_mac.cpp \ + asan_malloc_win.cpp \ + asan_memory_profile.cpp \ + asan_new_delete.cpp \ + asan_poisoning.cpp \ + asan_posix.cpp \ + asan_premap_shadow.cpp \ + asan_report.cpp \ + asan_rtl.cpp \ + asan_shadow_setup.cpp \ + asan_stack.cpp \ + asan_stats.cpp \ + asan_suppressions.cpp \ + asan_thread.cpp \ + asan_win.cpp \ + asan_win_dll_thunk.cpp \ + asan_win_dynamic_runtime_thunk.cpp \ + asan_interceptors_vfork.S LIB= asan -SRCS+= ${ASAN_SRCS} lsan_common.cc lsan_common_linux.cc +SRCS+= ${ASAN_SRCS} lsan_common.cpp lsan_common_linux.cpp LIBDPLIBS+= rt ${NETBSDSRCDIR}/lib/librt 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 +COPTS.asan_allocator.cpp += -O1 +COPTS.asan_report.cpp += -O1 +COPTS.sanitizer_file.cpp += -O1 +COPTS.ubsan_diag.cpp += -O1 +COPTS.ubsan_init.cpp += -O1 .endif .if ${MACHINE_ARCH} == "mipsel" || ${MACHINE_ARCH} == "mipseb" -COPTS.asan_interceptors.cc += -O1 +COPTS.asan_interceptors.cpp += -O1 .endif .include <bsd.lib.mk> Index: src/external/gpl3/gcc/lib/libasan/shlib_version diff -u src/external/gpl3/gcc/lib/libasan/shlib_version:1.6 src/external/gpl3/gcc/lib/libasan/shlib_version:1.7 --- src/external/gpl3/gcc/lib/libasan/shlib_version:1.6 Wed Oct 2 02:54:34 2019 +++ src/external/gpl3/gcc/lib/libasan/shlib_version Thu Aug 3 01:36:55 2023 @@ -1,2 +1,2 @@ -major=5 +major=6 minor=0 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.9 --- src/external/gpl3/gcc/lib/liblsan/Makefile:1.8 Mon Sep 14 15:01:57 2020 +++ src/external/gpl3/gcc/lib/liblsan/Makefile Thu Aug 3 01:36:55 2023 @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.8 2020/09/14 15:01:57 kamil Exp $ +# $NetBSD: Makefile,v 1.9 2023/08/03 01:36:55 mrg Exp $ .include <bsd.own.mk> @@ -8,17 +8,21 @@ .PATH: ${SANITIZER}/lsan ${SANITIZER}/asan LSAN_SRCS+= \ - lsan.cc \ - lsan_allocator.cc \ - lsan_common.cc \ - lsan_common_linux.cc \ - lsan_interceptors.cc \ - lsan_linux.cc \ - lsan_thread.cc + lsan_common.cpp \ + lsan_common_linux.cpp \ + lsan_common_mac.cpp \ + lsan.cpp \ + lsan_linux.cpp \ + lsan_mac.cpp \ + lsan_malloc_mac.cpp \ + lsan_allocator.cpp \ + lsan_interceptors.cpp \ + lsan_thread.cpp \ + lsan_posix.cpp .if ${MACHINE_ARCH} == "vax" -COPTS.lsan_allocator.cc += -O1 -COPTS.sanitizer_file.cc += -O1 +#COPTS.lsan_allocator.cpp += -O1 +#COPTS.sanitizer_file.cpp += -O1 .endif LIB= lsan Index: src/external/gpl3/gcc/lib/liblsan/shlib_version diff -u src/external/gpl3/gcc/lib/liblsan/shlib_version:1.2 src/external/gpl3/gcc/lib/liblsan/shlib_version:1.3 --- src/external/gpl3/gcc/lib/liblsan/shlib_version:1.2 Fri Feb 1 10:31:55 2019 +++ src/external/gpl3/gcc/lib/liblsan/shlib_version Thu Aug 3 01:36:55 2023 @@ -1,2 +1,2 @@ -major=2 +major=3 minor=0 Index: src/external/gpl3/gcc/lib/libtsan/Makefile diff -u src/external/gpl3/gcc/lib/libtsan/Makefile:1.16 src/external/gpl3/gcc/lib/libtsan/Makefile:1.17 --- src/external/gpl3/gcc/lib/libtsan/Makefile:1.16 Sun Apr 25 23:12:54 2021 +++ src/external/gpl3/gcc/lib/libtsan/Makefile Thu Aug 3 01:36:55 2023 @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.16 2021/04/25 23:12:54 christos Exp $ +# $NetBSD: Makefile,v 1.17 2023/08/03 01:36:55 mrg Exp $ UNSUPPORTED_COMPILER.clang= # defined NOSANITIZER= # defined @@ -13,44 +13,43 @@ NOCOMPAT= # defined # XXXmknative TSAN_SRCS= \ - tsan_clock.cc \ - tsan_debugging.cc \ - tsan_external.cc \ - tsan_fd.cc \ - tsan_flags.cc \ - tsan_ignoreset.cc \ - tsan_interceptors.cc \ - tsan_interceptors_mac.cc \ - tsan_interface_ann.cc \ - tsan_interface_atomic.cc \ - tsan_interface.cc \ - tsan_interface_java.cc \ - tsan_libdispatch_mac.cc \ - tsan_malloc_mac.cc \ - tsan_md5.cc \ - tsan_mman.cc \ - tsan_mutex.cc \ - tsan_mutexset.cc \ - tsan_new_delete.cc \ - tsan_platform_linux.cc \ - tsan_platform_mac.cc \ - tsan_platform_posix.cc \ - tsan_platform_windows.cc \ - tsan_report.cc \ - tsan_rtl.cc \ - tsan_rtl_mutex.cc \ - tsan_rtl_proc.cc \ - tsan_rtl_report.cc \ - tsan_rtl_thread.cc \ - tsan_stack_trace.cc \ - tsan_stat.cc \ - tsan_suppressions.cc \ - tsan_symbolize.cc \ - tsan_sync.cc + tsan_clock.cpp \ + tsan_debugging.cpp \ + tsan_external.cpp \ + tsan_fd.cpp \ + tsan_flags.cpp \ + tsan_ignoreset.cpp \ + tsan_interceptors_posix.cpp \ + tsan_interceptors_mac.cpp \ + tsan_interface_ann.cpp \ + tsan_interface_atomic.cpp \ + tsan_interface.cpp \ + tsan_interface_java.cpp \ + tsan_malloc_mac.cpp \ + tsan_md5.cpp \ + tsan_mman.cpp \ + tsan_mutexset.cpp \ + tsan_new_delete.cpp \ + tsan_platform_linux.cpp \ + tsan_platform_mac.cpp \ + tsan_platform_posix.cpp \ + tsan_platform_windows.cpp \ + tsan_report.cpp \ + tsan_rtl.cpp \ + tsan_rtl_access.cpp \ + tsan_rtl_mutex.cpp \ + tsan_rtl_proc.cpp \ + tsan_rtl_report.cpp \ + tsan_rtl_thread.cpp \ + tsan_stack_trace.cpp \ + tsan_suppressions.cpp \ + tsan_symbolize.cpp \ + tsan_sync.cpp \ + tsan_vector_clock.cpp .if ${MACHINE_ARCH} == "x86_64" TSAN_SRCS+= tsan_rtl_amd64.S -.elif ${MACHINE_ARCH} == "aarch64" +.elif ${MACHINE_CPU} == "aarch64" TSAN_SRCS+= tsan_rtl_aarch64.S .elif ${MACHINE_MIPS64} TSAN_SRCS+= tsan_rtl_mips64.S @@ -66,6 +65,6 @@ LIBDPLIBS+= rt ${NETBSDSRCDIR}/lib/librt LIBDPLIBS+= m ${NETBSDSRCDIR}/lib/libm LIBDPLIBS+= pthread ${NETBSDSRCDIR}/lib/libpthread CPPFLAGS+=-DCAN_SANITIZE_UB=0 -COPTS.tsan_interceptors.cc += -Wno-unused-function +COPTS.tsan_interceptors.cpp += -Wno-unused-function .include <bsd.lib.mk> Index: src/external/gpl3/gcc/lib/libtsan/shlib_version diff -u src/external/gpl3/gcc/lib/libtsan/shlib_version:1.2 src/external/gpl3/gcc/lib/libtsan/shlib_version:1.3 --- src/external/gpl3/gcc/lib/libtsan/shlib_version:1.2 Fri Feb 1 10:31:55 2019 +++ src/external/gpl3/gcc/lib/libtsan/shlib_version Thu Aug 3 01:36:55 2023 @@ -1,2 +1,2 @@ -major=1 +major=2 minor=0 Index: src/external/gpl3/gcc/lib/libubsan/Makefile diff -u src/external/gpl3/gcc/lib/libubsan/Makefile:1.20 src/external/gpl3/gcc/lib/libubsan/Makefile:1.21 --- src/external/gpl3/gcc/lib/libubsan/Makefile:1.20 Sat Jun 3 21:31:46 2023 +++ src/external/gpl3/gcc/lib/libubsan/Makefile Thu Aug 3 01:36:55 2023 @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.20 2023/06/03 21:31:46 lukem Exp $ +# $NetBSD: Makefile,v 1.21 2023/08/03 01:36:55 mrg Exp $ UNSUPPORTED_COMPILER.clang= # defined LIBISCXX = yes @@ -12,22 +12,23 @@ LIBISCXX = yes # XXXmknative UBSAN_SRCS= \ - ubsan_diag.cc \ - ubsan_flags.cc \ - ubsan_handlers.cc \ - ubsan_init.cc \ - ubsan_monitor.cc \ - ubsan_type_hash.cc \ - ubsan_type_hash_itanium.cc \ - ubsan_type_hash_win.cc \ - ubsan_value.cc + ubsan_diag.cpp \ + ubsan_flags.cpp \ + ubsan_handlers.cpp \ + ubsan_handlers_cxx.cpp \ + ubsan_init.cpp \ + ubsan_monitor.cpp \ + ubsan_type_hash.cpp \ + ubsan_type_hash_itanium.cpp \ + ubsan_type_hash_win.cpp \ + ubsan_value.cpp .for _s in ubsan_handlers_cxx ubsan_type_hash ubsan_type_hash_itanium -COPTS.${_s}.cc+=-frtti +COPTS.${_s}.cpp+=-frtti .endfor .if ${MACHINE_ARCH} == "vax" -COPTS.sanitizer_file.cc += -O1 +COPTS.sanitizer_file.cpp += -O1 .endif LIB= ubsan @@ -35,9 +36,9 @@ SRCS+= ${UBSAN_SRCS} LIBDPLIBS+= m ${NETBSDSRCDIR}/lib/libm LIBDPLIBS+= rt ${NETBSDSRCDIR}/lib/librt LIBDPLIBS+= pthread ${NETBSDSRCDIR}/lib/libpthread -CPPFLAGS+=-DCAN_SANITIZE_UB=1 +CPPFLAGS+=-DCAN_SANITIZE_UB=1 -DUBSAN_CAN_USE_CXXABI=1 # XXX -COPTS.ubsan_handlers.cc+=${CC_WNO_MAYBE_UNINITIALIZED} +COPTS.ubsan_handlers.cpp+=${CC_WNO_MAYBE_UNINITIALIZED} .include <bsd.lib.mk> Index: src/external/gpl3/gcc/lib/libubsan/shlib_version diff -u src/external/gpl3/gcc/lib/libubsan/shlib_version:1.5 src/external/gpl3/gcc/lib/libubsan/shlib_version:1.6 --- src/external/gpl3/gcc/lib/libubsan/shlib_version:1.5 Wed Oct 2 02:54:35 2019 +++ src/external/gpl3/gcc/lib/libubsan/shlib_version Thu Aug 3 01:36:55 2023 @@ -1,2 +1,2 @@ -major=4 +major=5 minor=0 Index: src/external/gpl3/gcc/usr.bin/Makefile.inc diff -u src/external/gpl3/gcc/usr.bin/Makefile.inc:1.37 src/external/gpl3/gcc/usr.bin/Makefile.inc:1.38 --- src/external/gpl3/gcc/usr.bin/Makefile.inc:1.37 Tue Aug 1 05:57:53 2023 +++ src/external/gpl3/gcc/usr.bin/Makefile.inc Thu Aug 3 01:36:55 2023 @@ -1,4 +1,4 @@ -# $NetBSD: Makefile.inc,v 1.37 2023/08/01 05:57:53 mrg Exp $ +# $NetBSD: Makefile.inc,v 1.38 2023/08/03 01:36:55 mrg Exp $ .ifndef _EXTERNAL_GPL3_GCC_USR_BIN_MAKEFILE_INC_ _EXTERNAL_GPL3_GCC_USR_BIN_MAKEFILE_INC_=1 @@ -84,4 +84,10 @@ COPTS+=-Wno-narrowing -Wno-unused # Lots trigger this. CFLAGS+= -Wno-format-diag +# Avoid jump tables that don't fit. +.if ${GCC_MACHINE_ARCH} == "m68000" || ${GCC_MACHINE_ARCH} == "m68k" || \ + ${GCC_MACHINE_ARCH} == "coldfire" +COPTS.c-omp.cc+=-fno-jump-tables +.endif + .endif