]> git.ipfire.org Git - thirdparty/gcc.git/commit
RISC-V: Support -march=unset
authorKito Cheng <kito.cheng@sifive.com>
Mon, 28 Jul 2025 12:49:39 +0000 (20:49 +0800)
committerKito Cheng <kito.cheng@sifive.com>
Wed, 6 Aug 2025 06:50:28 +0000 (14:50 +0800)
commitaa1ae5284da3377190c7dd1e0dbd865bb41c46e6
tree9aaa028647ebfeb4776f27aef8035142cd2f1a4d
parent87262627fd65a1a7acd80a529077f098a7e26f18
RISC-V: Support -march=unset

This patch introduces a new `-march=unset` option for RISC-V GCC that
allows users to explicitly ignore previous `-march` options and derive
the architecture string from the `-mcpu` option instead.

This feature is particularly useful for build systems and toolchain
configurations where you want to ensure the architecture is always
derived from the CPU specification rather than relying on potentially
conflicting `-march` options.

gcc/ChangeLog:

* common/config/riscv/riscv-common.cc (riscv_expand_arch):
Ignore `unset`.
* config/riscv/riscv.h (OPTION_DEFAULT_SPECS): Handle
`-march=unset`.
(ARCH_UNSET_CLEANUP_SPECS): New.
(DRIVER_SELF_SPECS): Handle -march=unset.
* doc/invoke.texi (RISC-V Options): Update documentation for
`-march=unset`.

gcc/testsuite/ChangeLog:

* gcc.target/riscv/arch-unset-1.c: New test.
* gcc.target/riscv/arch-unset-2.c: New test.
* gcc.target/riscv/arch-unset-3.c: New test.
* gcc.target/riscv/arch-unset-4.c: New test.
* gcc.target/riscv/arch-unset-5.c: New test.
gcc/common/config/riscv/riscv-common.cc
gcc/config/riscv/riscv.h
gcc/doc/invoke.texi
gcc/testsuite/gcc.target/riscv/arch-unset-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/arch-unset-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/arch-unset-3.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/arch-unset-4.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/arch-unset-5.c [new file with mode: 0644]