RISC-V: Normalize arch string in driver time
authorKito Cheng <kito.cheng@sifive.com>
Fri, 19 Jun 2020 08:59:52 +0000 (16:59 +0800)
committerKito Cheng <kito.cheng@sifive.com>
Mon, 22 Jun 2020 03:24:54 +0000 (11:24 +0800)
 - Normalize arch string would help the multi-lib handling, e.g. rv64gc and
   rv64g_c are both valid and same arch, but latter one would confuse
   the detection of multi-lib, earlier normalize can resolve this issue.

gcc/ChangeLog:

* config/riscv/riscv.h (ASM_SPEC): Remove riscv_expand_arch call.
(DRIVER_SELF_SPECS): New.

gcc/config/riscv/riscv.h

index cbcd574..9f67d82 100644 (file)
@@ -64,10 +64,14 @@ extern const char *riscv_expand_arch (int argc, const char **argv);
 #define ASM_SPEC "\
 %(subtarget_asm_debugging_spec) \
 %{" FPIE_OR_FPIC_SPEC ":-fpic} \
-%{march=*:-march=%:riscv_expand_arch(%*)} \
+%{march=*} \
 %{mabi=*} \
 %(subtarget_asm_spec)"
 
+#undef DRIVER_SELF_SPECS
+#define DRIVER_SELF_SPECS \
+"%{march=*:-march=%:riscv_expand_arch(%*)}"
+
 #define TARGET_DEFAULT_CMODEL CM_MEDLOW
 
 #define LOCAL_LABEL_PREFIX     "."