https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104853
--- Comment #6 from rvalue <i at rvalue dot moe> --- I've got some verbose output from gcc, and it seems that a duplicate `-march` is passed to `as` $ gcc -c test.c -march=rv64g --verbose Using built-in specs. COLLECT_GCC=/usr/sbin/gcc Target: riscv64-unknown-linux-gnu Configured with: /build/gcc/src/gcc/configure --enable-languages=c,c++,fortran,go,lto,objc,obj-c++,d --enable-bootstrap --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://bugs.archlinux.org/ --with-linker-hash-style=gnu --with-system-zlib --enable-__cxa_atexit --enable-cet=auto --enable-checking=release --enable-clocale=gnu --enable-default-pie --enable-default-ssp --enable-gnu-indirect-function --enable-gnu-unique-object --enable-linker-build-id --enable-lto --disable-multilib --enable-plugin --enable-shared --enable-threads=posix --disable-libssp --disable-libstdcxx-pch --disable-werror --with-build-config=bootstrap-lto --enable-link-serialization=1 gdc_include_dir=/usr/include/dlang/gdc Thread model: posix Supported LTO compression algorithms: zlib zstd gcc version 11.2.0 (GCC) COLLECT_GCC_OPTIONS='-c' '-march=rv64g' '-v' '-mabi=lp64d' '-march=rv64imafd' /usr/lib/gcc/riscv64-unknown-linux-gnu/11.2.0/cc1 -quiet -v test.c -quiet -dumpbase test.c -dumpbase-ext .c -march=rv64g -mabi=lp64d -march=rv64imafd -version -o /tmp/ccCK3sIZ.s GNU C17 (GCC) version 11.2.0 (riscv64-unknown-linux-gnu) compiled by GNU C version 11.2.0, GMP version 6.2.1, MPFR version 4.1.0-p13, MPC version 1.2.1, isl version isl-0.24-GMP GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 ignoring nonexistent directory "/usr/lib/gcc/riscv64-unknown-linux-gnu/11.2.0/../../../../riscv64-unknown-linux-gnu/include" #include "..." search starts here: #include <...> search starts here: /usr/lib/gcc/riscv64-unknown-linux-gnu/11.2.0/include /usr/local/include /usr/lib/gcc/riscv64-unknown-linux-gnu/11.2.0/include-fixed /usr/include End of search list. GNU C17 (GCC) version 11.2.0 (riscv64-unknown-linux-gnu) compiled by GNU C version 11.2.0, GMP version 6.2.1, MPFR version 4.1.0-p13, MPC version 1.2.1, isl version isl-0.24-GMP GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 Compiler executable checksum: 42e88359d8058cfa8524073dbb277472 COLLECT_GCC_OPTIONS='-c' '-march=rv64g' '-v' '-mabi=lp64d' '-march=rv64imafd' as -v --traditional-format -fpic -march=rv64g -march=rv64imafd -mabi=lp64d -o test.o /tmp/ccCK3sIZ.s GNU assembler version 2.38 (riscv64-unknown-linux-gnu) using BFD version (GNU Binutils) 2.38 test.c: Assembler messages: test.c:2: Error: unrecognized opcode `fence.i'