mirror of
https://github.com/tinygo-org/tinygo.git
synced 2026-07-26 06:38:42 +00:00
a2a638c198
cc1as: change AssemblerInvocation.Triple from std::string to llvm::Triple, matching upstream LLVM 22 and fixing deprecation warnings for lookupTarget, createMCRegInfo, createMCAsmInfo, and createMCSubtargetInfo. interp: always use ConstNamedStruct in rawValue.toLLVMValue instead of falling back to ConstStruct for unnamed structs. LLVM 22 uses anonymous identified struct types where previous versions used literal structs; ConstStruct creates a literal type that doesn't match, causing an "initializer type mismatch" panic for globals like fmt.ppFree. compileopts: add build-tag-guarded feature patching for pre-LLVM 20 (strip +bulk-memory-opt and +call-indirect-overlong from wasm features) and restructure into three files covering all LLVM version ranges. targets: strip redundant negative features from RISC-V target JSONs (esp32c3, esp32c6, fe310, k210, riscv-qemu, tkey). These ~190 negative features per target listed every extension LLVM knows about that the target doesn't use, but LLVM disables them by default. They became stale across LLVM versions, causing "not a recognized feature" warnings. Keep only positive features and -relax. Signed-off-by: deadprogram <ron@hybridgroup.com>
22 lines
485 B
JSON
22 lines
485 B
JSON
{
|
|
"inherits": [
|
|
"riscv32"
|
|
],
|
|
"features": "+32bit,+a,+c,+m,+zaamo,+zalrsc,+zihintpause,+zmmul,-relax",
|
|
"build-tags": [
|
|
"virt",
|
|
"qemu"
|
|
],
|
|
"scheduler": "cores",
|
|
"default-stack-size": 16384,
|
|
"cflags": [
|
|
"-march=rv32imaczihintpause",
|
|
"-DTINYGO_CORES=4"
|
|
],
|
|
"ldflags": [
|
|
"--defsym=__num_stacks=4"
|
|
],
|
|
"linkerscript": "targets/riscv-qemu.ld",
|
|
"emulator": "qemu-system-riscv32 -machine virt,aclint=on -smp 4 -nographic -bios none -device virtio-rng-device -kernel {}"
|
|
}
|