RISC-V fordítás + linkelés

Érdekes megállapítás: gcc-12 esetén RISC-V processzorokra a -march= kapcsoló már elkezd különbözni fordítás és linkelés esetén. Amennyiben speciálisabb Zxxx kiterjesztést használunk (azaz bármi CSR-t, azaz ilyen-olyan megszakításokkal dolgozunk!), akkor azt immáron már "kéri" a fordító, ellenben a linker meg meghülyül ha ottmarad ez.

Avagy (tldr):

$(CC) -march=rv32emac_zicsr ...
$(LD) -march=rv32emac ...

és akkor így már jó. Ez így csak szűk egy óra szopás volt kideríteni de cserébe azért nem is mondhatnám hogy ne lenne benne nyomokban logika. Mondjuk az M extension vs. Zmul extension vs. $(CC) -fno-div vs. picolibc kapcsolatát még meg néztem meg (vagyis nem mertem megnézni), de majd máskor azt is. 

Ugyanitt javallanám a picolibc (és minden egyéb hasonló, newlib, ARM, stb.) csomagok csomagolóinak hogy ilyen beágyazott cuccmányoknál a kismillió libc/libm-architektúrát akár külön-külön is csomagolhatnák :) Nem mintha ne férne el az az egy-másfél-sok giga, de ha a háromtucatból csak 1-2 kell a gyarkolatban, akkor minek...