171 lines
7.1 KiB
Plaintext
171 lines
7.1 KiB
Plaintext
$NetBSD: README.gcc12,v 1.20 2023/10/22 00:09:20 mrg Exp $
|
|
|
|
|
|
new stuff:
|
|
libmpx
|
|
liboffloadmic
|
|
libvtv
|
|
libcet
|
|
libphobos
|
|
d
|
|
gfortran
|
|
libbacktrace: +dwarf5_CFLAGS = $(libbacktrace_TEST_CFLAGS) -gdwarf-5
|
|
c++tools
|
|
|
|
todo:
|
|
- audit all uses of new warning-disable variables and
|
|
convert some from -Wno- to -Wno-error=
|
|
|
|
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 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)
|
|
|
|
|
|
architecture tools kernels libgcc native-gcc/sani make release runs atf switched
|
|
------------ ----- ------- ------ --------------- ------------ ---- --- --------
|
|
aarch64 y y y y y[17] y y y ?
|
|
aarch64eb y y y y y[17] y y y ?
|
|
alpha y y y y b y y y ?
|
|
earmv4 y b ? y ? ? ? ? ?
|
|
earmv4eb y b ? y ? ? ? ? ?
|
|
earmv5 y y y y b y y y ?
|
|
earmv5eb y y y y b y y y ?
|
|
earmv5hf y b ? y ? ? ? ? ?
|
|
earmv5hfeb y b ? y ? ? ? ? ?
|
|
earmv6 y b ? y ? ? ? ? ?
|
|
earmv6eb y b ? y ? ? ? ? ?
|
|
earmv6hf y y y y b y y y ?
|
|
earmv6hfeb y y y y b y y y ?
|
|
earmv7 y b y y ? ? ? ? ?
|
|
earmv7eb y b ? y ? ? ? ? ?
|
|
earmv7hf y y y y b y y y ?
|
|
earmv7hfeb y y y y b y y y ?
|
|
hppa y y y y ? y ? ? ?
|
|
i386 y y y y n[18] y y n[19] ?
|
|
ia64 y b y y y y y[3] n ?
|
|
m68000 y y y y n[11] n y[14] ? ?
|
|
m68k y y y y b y y[14] y[14] ?
|
|
mipseb y b y y b y ? ? ?
|
|
mipsel y b y y b y ? ? ?
|
|
mips64eb y b y y b y ? ? ?
|
|
mips64el y b y y b y ? ? ?
|
|
powerpc y y y y ? n[4] ? ? ?
|
|
powerpc64 y ? ? y ? ? ? ? ?
|
|
sh3eb y ? y y b y ? ? ?
|
|
sh3el y n[20] y y b y n[22] ? ?
|
|
sparc y y y y n[21] y y y ?
|
|
sparc64 y b y y n[16] y y ? ?
|
|
vax y y y y n[23] n n[24,25] ? ?
|
|
x86_64 y y y y y[13] y y y ?
|
|
riscv32 y y y y b y n[2] ? ?
|
|
riscv64 y y y y b y y y ?
|
|
------------ ----- ------- ------ --------------- ------------ ---- ---
|
|
architecture tools kernels libgcc native-gcc/sani make release runs atf
|
|
|
|
[2]: riscv32 kernels are not really implemented yet, not GCC 12 issue.
|
|
[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
|
|
[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
|
|
[11]: sanitizers don't build yet.
|
|
[13]: 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<uptr>(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.
|
|
[14]: "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.
|
|
[16]: 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?)
|
|
[17]: (NOT A REGRESSION) libtsan is newly introduced, which fails with:
|
|
FATAL: ThreadSanitizer: unexpected memory mapping 0x200100000-0x200101000
|
|
[18]: *san requires 64-bit atomic ops:
|
|
ld: /usr/lib/libasan.so: undefined reference to `__sync_val_compare_and_swap_8'
|
|
If lib*san is compiled with -march=i586, all tests in usr.bin/{cc,c++} successfully pass.
|
|
[19]: kernel freezes with garbage parmanently output to console, after lib/libc/sys/t_ptrace_wait:syscall_signal_on_sce fails:
|
|
syscall_signal_on_sce: [[ 3013.0266693] sorry pid 1847 was killed: orphanes
|
|
ss
|
|
ss
|
|
ss
|
|
...
|
|
[20]: kernel needs -O1 for ffs32() and ffs_nodealloccg() for multi-user boot. Even if the whole kernel is built with -O1, it panics during ATF:
|
|
kernel/t_sysv (92/935): 3 test cases
|
|
msg: [ 3981.4751382] panic: kernel diagnostic assertion "msghdr->msg_spot >= 0" failed: file "../../../../kern/sysv_msg.c", line 426
|
|
[21]: asan has v7/v8/atomic issues:
|
|
ld: /usr/lib/libasan.so: undefined reference to `__sync_val_compare_and_swap_8'
|
|
nm shows some more:
|
|
U __sync_add_and_fetch_4
|
|
U __sync_fetch_and_add_4
|
|
U __sync_lock_test_and_set_4
|
|
U __sync_val_compare_and_swap_1
|
|
U __sync_val_compare_and_swap_4
|
|
liblsan and libubsan are mssing the _4 and _8 versions, too.
|
|
[22]: single-user shell crashes. if userland is built with DBG=-O1, it boots into multi-user mode.
|
|
however, at least db(3) is broken, by which files are corrupted when edited by vi(1).
|
|
[23]: 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=]
|
|
[24]: (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
|
|
[25]: (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
|
|
|
|
|
|
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)
|
|
|
|
CPU platform list
|
|
--- -------- ----
|
|
acorn32 cats epoc32 evbarm-eb evbarm-el hpcarm iyonix netwinder shark zaurus
|
|
earmv4: k k k k k k k y
|
|
earm: nx nx k k
|
|
earmhf: k k
|
|
earmv6: k k
|
|
earmv6hf: nx nx
|
|
earmv7: k k
|
|
earmv7hf: nx nx
|
|
|
|
amiga atari cesfic hp300 luna68k mac68k mvme68k news68k next68k sun3 x68k
|
|
m68k: nx k k k k nx k k k nx k
|
|
|
|
evbmips emips ews4800mips mipsco newsmips sgimips
|
|
mipseb: k k k k k y
|
|
|
|
evbmips algor arc cobalt hpcmips pmax
|
|
mipsel: k k k k k y
|
|
|
|
algor evbmips pmax
|
|
mips64eb: y
|
|
mips64el: k y y
|
|
|
|
amigappc bebox evbppc ibmnws macppc mvmeppc ofppc prep rs6000 sandpoint
|
|
powerpc: k k k k kn[4] k k k k k
|
|
|
|
evbppc macppc ofppc
|
|
powerpc64: k k n[7]
|
|
|
|
dreamcast evbsh3 hpcsh landisk mmeye
|
|
sh3eb: y k
|
|
sh3el: k y k k
|