Home | History | Annotate | Line # | Download | only in gcc.old
      1 $NetBSD: README.gcc12,v 1.2 2025/09/07 04:08:23 mrg Exp $
      2 
      3 
      4 new stuff:
      5 	libmpx
      6 	liboffloadmic
      7 	libvtv
      8 	libcet
      9 	libphobos
     10 	d
     11 	gfortran
     12 	libbacktrace: +dwarf5_CFLAGS = $(libbacktrace_TEST_CFLAGS) -gdwarf-5
     13 	c++tools
     14 
     15 todo:
     16 	- audit all uses of new warning-disable variables and
     17 	  convert some from -Wno- to -Wno-error=
     18 
     19 arch/feature list.
     20 
     21 tools:		does build.sh tools work?
     22 kernels:	does a kernel run?  y (yes), b (builds/ready), p (partially), ? (not ready)
     23 libgcc:		does libgcc build?
     24 native-gcc:	does a full mknative-gcc complete?
     25 sani:		has sanitizer been ported to this CPU again for GCC 12?  b (build) y (works)
     26 make release:	does build.sh release complete?  (before sanitizer - bs)
     27 runs:		does the system boot with a full world?
     28 atf:		does atf run / compare well
     29 switched:	has port switched?  y (yes), n (no/ready), ? (not ready)
     30 
     31 
     32 architecture	tools	kernels	libgcc	native-gcc/sani	make release	runs	atf	switched
     33 ------------	-----	-------	------	---------------	------------	----	---	--------
     34 aarch64		y	y	y	y	y[17]	y		y	y	y
     35 aarch64eb	y	y	y	y	y[17]	y		y	y	y
     36 alpha		y	y	y	y	b	y		y	y	y
     37 earmv4		y	b	?	y	?	?		?	?	y
     38 earmv4eb	y	b	?	y	?	?		?	?	y
     39 earmv5		y	y	y	y	b	y		y	y	y
     40 earmv5eb	y	y	y	y	b	y		y	y	y
     41 earmv5hf	y	b	?	y	?	?		?	?	y
     42 earmv5hfeb	y	b	?	y	?	?		?	?	y
     43 earmv6		y	b	?	y	?	?		?	?	y
     44 earmv6eb	y	b	?	y	?	?		?	?	y
     45 earmv6hf	y	y	y	y	b	y		y	y	y
     46 earmv6hfeb	y	y	y	y	b	y		y	y	y
     47 earmv7		y	b	y	y	?	?		?	?	y
     48 earmv7eb	y	b	?	y	?	?		?	?	y
     49 earmv7hf	y	y	y	y	b	y		y	y	y
     50 earmv7hfeb	y	y	y	y	b	y		y	y	y
     51 hppa		y	y	y	y	?	y		y	y	y
     52 i386		y	y	y	y	y	y		y	y	y
     53 ia64		y	b	y	y	y	y		y[3]	n	y
     54 m68000		y	y	y	y	b	n		y[14]	?	y
     55 m68k		y	y	y	y	b	y		y[14]	y[14]	y
     56 mipseb		y	b	y	y	b	y		y	y	y
     57 mipsel		y	b	y	y	b	y		y	?	y
     58 mips64eb	y	b	y	y	b	y		y	y	y
     59 mips64el	y	b	y	y	b	y		y	?	y
     60 powerpc		y	y	y	y	y	y		y	y	y
     61 powerpc64	y	?	?	y	b	b		?	?	y
     62 sh3eb		y	?	y	y	b	y		?	?	y
     63 sh3el		y	y	y	y	b	y		y	y	y
     64 sparc		y	y	y	y	n[26]	y		y	y	y
     65 sparc64		y	b	y	y	n[16]	y		y	?	y
     66 vax		y	y	y	y	n[23]	n		n[24,25] ?	?
     67 x86_64		y	y	y	y	y[13]	y		y	y	y
     68 riscv32		y	y	y	y	b	y		n[2]	?	y
     69 riscv64		y	y	y	y	b	y		y	y	y
     70 ------------	-----	-------	------	---------------	------------	----	---
     71 architecture	tools	kernels	libgcc	native-gcc/sani	make release	runs	atf
     72 
     73 [2]: riscv32 kernels are not really implemented yet, not GCC 12 issue.
     74 [3]: GENERIC.SKI boots just as well as GCC 10.
     75 [13]: on amd64, with very basic test, lsan, ubsan, and asan work, but tsan crashes at start up:
     76       ThreadSanitizer: CHECK failed: tsan_rtl.cpp:149 "((reinterpret_cast<uptr>(this) % 64)) == ((0))" (0x10, 0x0) (tid=21499)
     77       ThreadSanitizer:DEADLYSIGNAL
     78       ==21499==ERROR: ThreadSanitizer: SEGV on unknown address 0x000000000017 (pc 0x7f7ff4e5e14e bp 0x7f7fffffdbd0 sp 0x7f7fffffdb40 T21499)
     79       ==21499==The signal is caused by a READ memory access.
     80       ==21499==Hint: address points to the zero page.
     81       ThreadSanitizer:DEADLYSIGNAL
     82       ThreadSanitizer: nested bug in the same thread, aborting.
     83 [14]: "dd count=1", "env LC_CTYPE=en_US.UTF-8 locale", and "tests/crypto/libcrypto/h_evp_test evpmd_blake.txt" abort.
     84       adding -fno-stack-protector to strsuftoll.c, citrus_module.c, and blake2_prov.c, respectively, works around the problem.
     85       -- workarounds commited.
     86 [16]: sanitizers crash early:
     87       Program received signal SIGSEGV, Segmentation fault.
     88       (gdb) bt
     89       #0  0x000000004064265c in __sanitizer::CheckASLR () at /usr/src/external/gpl3/gcc/dist/libsanitizer/sanitizer_common/sanitizer_linux.cpp:2181
     90       #1  0xffffffffffffc704 in ?? ()
     91       Backtrace stopped: previous frame identical to this frame (corrupt stack?)
     92       -- some wip patches make this less bad
     93 [17]: (NOT A REGRESSION) libtsan is newly introduced, which fails with:
     94       FATAL: ThreadSanitizer: unexpected memory mapping 0x200100000-0x200101000
     95 [23]: sanitizers fail to build:
     96       sanitizer_flag_parser.h:141:72: error: format '%zx' expects argument of type 'size_t', but argument 4 has type 'unsigned int' [-Werror=format=]
     97 [24]: (NOT A REGRESSION) c++ exception handling is broken. mechanically applying
     98       http://www.execsw.org/netbsd/changeset.cgi?id=20140318T234341Z.c59ac4642e7d4b345f6dc5aa9887e9e1f9aa459a#src/gnu/dist/gcc4/gcc/config/vax/vax.c
     99       does not help (with adjustments for gcc 10.5.0, which is broken, too):
    100       (gdb) invalid-command
    101       [1]   Illegal instruction (core dumped) gdb
    102 [25]: (maybe not related to [24]) native gcc is broken:
    103       simh# cc hello.c
    104       during RTL pass: final
    105       hello.c: In function 'main':
    106       hello.c:9:1: internal compiler error: Segmentation fault
    107 [26]: divide by zero with ubsan hits CheckLocked assertion failure, and stalls at LockSlow indefinitely:
    108       (gdb) bt
    109       #0 __sanitizer::StaticSpinMutex::LockSlow at sanitizer_mutex.cpp:24
    110       ...
    111       #17 __ubsan::ScopedReport::CheckLocked ubsan_diag.h:255
    112       #18 __ubsan::Diag::~Diag ubsan_diag.cpp:347
    113       #19 handleDivremOverflowImpl ubsan_diag.h:210
    114       #20 __ubsan::__ubsan_handle_divrem_overflow ubsan_handlers.cpp:320 
    115 
    116 
    117 CPU vs platform test table (for CPUs with multiple ports).  this is "make release" or just kernels.
    118 values:		y (yes), k (kernels only), n (failed), r (running), ? (not attempted), nx (yes, no x11), nk (no kernels available)
    119 
    120 CPU		platform list
    121 ---		-------- ----
    122 		acorn32		cats	epoc32	evbarm-eb	evbarm-el	hpcarm		iyonix		netwinder	shark 		zaurus
    123 earmv4:		k		k	k	k		k		k		 		k		y		 
    124 earm:		 		 	 	nx		nx		 		k		 		 		k
    125 earmhf:		 		 	 	k		k		 		 		 		 		 
    126 earmv6:		 		 	 	k		k
    127 earmv6hf:	 		 	 	nx		nx
    128 earmv7:		 		 	 	k		k
    129 earmv7hf:	 		 	 	nx		nx
    130 
    131 		amiga		atari	cesfic	hp300		luna68k		mac68k		mvme68k		news68k		next68k		sun3	x68k
    132 m68k:		nx		k	k	k		k		nx		k		k		k		nx 	k
    133 
    134 		evbmips		emips		ews4800mips	mipsco		newsmips	sgimips
    135 mipseb:		k		k		k		k		k		y
    136 
    137 		evbmips		algor		arc		cobalt		hpcmips		pmax
    138 mipsel:		k		k		k		k		k		y
    139 
    140 		algor		evbmips		pmax
    141 mips64eb:	 		y		 
    142 mips64el:	k		y		y
    143 
    144 		amigappc	bebox	evbppc	ibmnws		macppc		mvmeppc		ofppc		prep		rs6000		sandpoint
    145 powerpc:	k		k	k	k		y		k		k		k		k		k
    146 
    147 		evbppc		macppc		ofppc
    148 powerpc64:	nk		nk		nk
    149 
    150 		dreamcast	evbsh3		hpcsh		landisk		mmeye
    151 sh3eb:		 		y		 		 		k
    152 sh3el:		k		y		k		k
    153