> Yep, if I drop the non-canonicial strings via
>
>     diff --git a/gcc/config/riscv/multilib-generator 
> b/gcc/config/riscv/multilib-generator
>     index 58b7198b243..a63a4d69c18 100755
>     --- a/gcc/config/riscv/multilib-generator
>     +++ b/gcc/config/riscv/multilib-generator
>     @@ -174,7 +174,7 @@ for cmodel in cmodels:
>          ext_combs = expand_combination(ext)
>          alts = sum([[x] + [x + y for y in ext_combs] for x in [arch] + 
> extra], [])
>          alts = filter(lambda x: len(x) != 0, alts)
>     -    alts = alts + list(map(lambda a : arch_canonicalize(a, 
> args.misa_spec), alts))
>     +    alts = list(map(lambda a : arch_canonicalize(a, args.misa_spec), 
> alts))
>
>          # Drop duplicated entry.
>          alts = unique(alts)
>
> then I can't link `-march=rv32imafdcv`, I need
> `-march=rv32imacv_zicsr_zve32f_zve32x_zve64x_zvl128b_zvl32b_zvl64b`.  That's
> kind of a headache for users to type in.

Yes, that's a headache for users, but arch string canonicalization is
hiddened at the process,
so the user could still just use rv32imafdcv at compile time and
multi-lib config.

And the driver and multilib-generator (with arch_canonicalize) script
will handle those headache in the background.

Reply via email to