$NetBSD arch/feature list. tools: does build.sh tools work? kernels: does a kernel run? y (yes), b (builds/ready), p (partially), ? (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 14? 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) architecture tools kernels libgcc native-gcc/sani make release runs atf switched ------------ ----- ------- ------ --------------- ------------ ---- --- -------- aarch64 y y y y y y y ? ? aarch64eb y y y y y y n[5] ? ? alpha y b y y y y[11] ? ? ? earmv4 y b y y y y ? ? ? earmv4eb y b y y y y ? ? ? earmv5 y y y y y y y y ? earmv5eb y y y y y y y y ? earmv5hf y b y y y y ? ? ? earmv5hfeb y b y y y y ? ? ? earmv6 y b y y y y ? ? ? earmv6eb y b y y y y ? ? ? earmv6hf y y y y y y y y ? earmv6hfeb y y y y y y y y ? earmv7 y b y y y y ? ? ? earmv7eb y b y y y y ? ? ? earmv7hf y y y y y y y y ? earmv7hfeb y y y y y y y y ? hppa y b y y y y y y ? i386 y b y y y y ? ? ? ia64 y y[8] y y n[12] ? y ? ? m68000 y b y y y n[9] ? ? ? m68k y b y y y y[2] y ? ? mipseb y ? y y ? ? ? ? ? mipsel y ? y y ? n[6] ? ? ? mips64eb y y y y y y y ? ? mips64el y b y y y y ? ? ? powerpc y b y y y y n[1] ? ? powerpc64 y b y y y y ? ? ? sh3eb y b y y n[10] ? ? ? ? sh3el y b y y n[10] ? ? ? ? sparc y y y y y y y y ? sparc64 y y y y y y y y ? vax y y y y y y y y ? x86_64 y y y y y y y y ? riscv32 y n[7] y y y y ? ? ? riscv64 y b y y y y ? ? ? ------------ ----- ------- ------ --------------- ------------ ---- --- architecture tools kernels libgcc native-gcc/sani make release runs atf [1]: gcc 14 defines _ARCH_PPC64 with "-mcpu=970 -m32", which gcc 12 did not, and it breaks some assumptions we have about that being in a 64-bit environment only. [2]: new GCC generated files are too huge, eg: {standard input}: Assembler messages: {standard input}:60465: Warning: .word .L5289-.L5291+00000000 didn't fit [5]: after extracting base, 'tar + gzip' combo sometimes crashes. kernel works. eg: pax -rzpe -f /ns3/base.tgz pax -rzpe -f /ns3/comp.tgz gzip: error writing to output: Broken pipe [1] Abort trap (core dumped) ${doit} pax -rzpe ${verbose} -f "${setfile}" most things seem to work when used in a chroot. for above it is pax (or tar) that crashes. [6]: mips o32 also has gdb vs atomic issue: libgdb.a(minsyms.o): in function `minimal_symbol_reader::install()': minsyms.c:(.text+0x4224): undefined reference to `__atomic_test_and_set' [7]: riscv32 kernels are not really implemented yet, not GCC 12 issue. [8]: GENERIC.SKI boots just as well as GCC 10. [9]: Calculated size of `ramdisk.fs.tmp': 614400 bytes, 167 inodes ... 32,nbmakefs: Writing inode 151 (work/./etc/protocols), bytes 0 + 118: No space left on device [10]: sh3 has missing symbol error in gdb. does does 32-bit mips. minsyms.c:(.text+0x2414): undefined reference to `__atomic_test_and_set' [11]: alpha needs an -O0 for mopd's file.c to avoid an ICE. [12]: libstdc++ has a weird build issue: ld: /var/obj/ia64/usr/src3/destdir.ia64/usr/lib/libstdc++.so: undefined reference to `__glibcxx_backtrace_simple' --- these are GCC 12 issues, but some will remain -- [XX]: on amd64, with very basic test, lsan, ubsan, and asan work, but tsan crashes at start up: ThreadSanitizer: CHECK failed: tsan_rtl.cpp:149 "((reinterpret_cast(this) % 64)) == ((0))" (0x10, 0x0) (tid=21499) ThreadSanitizer:DEADLYSIGNAL ==21499==ERROR: ThreadSanitizer: SEGV on unknown address 0x000000000017 (pc 0x7f7ff4e5e14e bp 0x7f7fffffdbd0 sp 0x7f7fffffdb40 T21499) ==21499==The signal is caused by a READ memory access. ==21499==Hint: address points to the zero page. ThreadSanitizer:DEADLYSIGNAL ThreadSanitizer: nested bug in the same thread, aborting. [XX]: "dd count=1", "env LC_CTYPE=en_US.UTF-8 locale", and "tests/crypto/libcrypto/h_evp_test evpmd_blake.txt" abort. adding -fno-stack-protector to strsuftoll.c, citrus_module.c, and blake2_prov.c, respectively, works around the problem. -- workarounds commited. [XX]: sanitizers crash early: Program received signal SIGSEGV, Segmentation fault. (gdb) bt #0 0x000000004064265c in __sanitizer::CheckASLR () at /usr/src/external/gpl3/gcc/dist/libsanitizer/sanitizer_common/sanitizer_linux.cpp:2181 #1 0xffffffffffffc704 in ?? () Backtrace stopped: previous frame identical to this frame (corrupt stack?) -- some wip patches make this less bad [XX]: (NOT A REGRESSION) libtsan is newly introduced, which fails with: FATAL: ThreadSanitizer: unexpected memory mapping 0x200100000-0x200101000 [XX]: sanitizers fail to build: sanitizer_flag_parser.h:141:72: error: format '%zx' expects argument of type 'size_t', but argument 4 has type 'unsigned int' [-Werror=format=] [XX]: (NOT A REGRESSION) c++ exception handling is broken. mechanically applying http://www.execsw.org/netbsd/changeset.cgi?id=20140318T234341Z.c59ac4642e7d4b345f6dc5aa9887e9e1f9aa459a#src/gnu/dist/gcc4/gcc/config/vax/vax.c does not help (with adjustments for gcc 10.5.0, which is broken, too): (gdb) invalid-command [1] Illegal instruction (core dumped) gdb [XX]: (maybe not related to [24]) native gcc is broken: simh# cc hello.c during RTL pass: final hello.c: In function 'main': hello.c:9:1: internal compiler error: Segmentation fault [XX]: divide by zero with ubsan hits CheckLocked assertion failure, and stalls at LockSlow indefinitely: (gdb) bt #0 __sanitizer::StaticSpinMutex::LockSlow at sanitizer_mutex.cpp:24 ... #17 __ubsan::ScopedReport::CheckLocked ubsan_diag.h:255 #18 __ubsan::Diag::~Diag ubsan_diag.cpp:347 #19 handleDivremOverflowImpl ubsan_diag.h:210 #20 __ubsan::__ubsan_handle_divrem_overflow ubsan_handlers.cpp:320 CPU vs platform test table (for CPUs with multiple ports). this is "make release" or just kernels. values: y (yes), k (kernels only), n (failed), r (running), ? (not attempted), nx (yes, no x11), nk (no kernels available) CPU platform list --- -------- ---- acorn32 cats epoc32 evbarm-eb evbarm-el hpcarm iyonix netwinder shark zaurus earmv4: k k k y y k k y earm: y y k k earmhf: y y earmv6: y y earmv6hf: y y earmv7: y y earmv7hf: y y amiga atari cesfic hp300 luna68k mac68k mvme68k news68k next68k sun3 x68k m68k: y k k k k k k k k k k evbmips emips ews4800mips mipsco newsmips sgimips mipseb: k k k k k k evbmips algor arc cobalt hpcmips pmax mipsel: k k k k k k algor evbmips pmax mips64eb: y mips64el: y y y amigappc bebox evbppc ibmnws macppc mvmeppc ofppc prep rs6000 sandpoint powerpc: k k k k y k k k k k evbppc macppc ofppc powerpc64: y k n dreamcast evbsh3 hpcsh landisk mmeye sh3eb: k k sh3el: k k k k