Szabolcs Nagy <szabolcs.n...@arm.com> writes: > Add the musl dynamic linker names for mips r6. > > It seems DRIVER_SELF_SPECS sets the default mips isa > (MIPS_DEFAULT_ISA_LEVEL_SPEC) on *-mti-linux* or *-mti-elf, but not on > gnu linux targets (see config/mips/mti-linux.h vs config/mips/gnu- > user.h). > > Is that ok? It seems broken, but i didn't try to fix that.
The default ISA for a non-vendor configuration normally comes from a --with-arch=<blah> configure time option which gets injected irrespective of the MIPS_ISA_DEFAULT option. You are right that there is an inconsistency where the driver self-specs are not aware of the default ISA when it is specified as part of the cpu in the triple. I generally advise people to specify the target ISA via --with-arch so hopefully most people won't be affected. I'll look at fixing this when I do some multilib work I have pending. > If the toolchain is configured with mipsisa32r6-linux-musl the dynlinker > name is wrong unless one explicitly passes > -mips32r6 to gcc (same for the assembler and linker: they don't get - > mips32r6 by default). > > gcc/ > 2016-08-24 Szabolcs Nagy <szabolcs.n...@arm.com> > > * config/mips/linux.h (MUSL_DYNAMIC_LINKER32): Update. > (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERN32): Update. diff --git a/gcc/config/mips/linux.h b/gcc/config/mips/linux.h index fa253b6..2d79715 100644 --- a/gcc/config/mips/linux.h +++ b/gcc/config/mips/linux.h @@ -38,10 +38,13 @@ along with GCC; see the file COPYING3. If not see "%{mnan=2008:/lib32/ld-uClibc-mipsn8.so.0;:/lib32/ld-uClibc.so.0}" #undef MUSL_DYNAMIC_LINKER32 -#define MUSL_DYNAMIC_LINKER32 "/lib/ld-musl-mips%{EL:el}%{msoft-float:-sf}.so.1" +#define MUSL_DYNAMIC_LINKER32 \ + "/lib/ld-musl-mips%{mips32r6:r6}%{EL:el}%{msoft-float:-sf}.so.1 This should be %{mips32r6|mips64r6:r6} as you can target o32 from a 64-bit architecture. Otherwise, OK. Thanks for the patch, Matthew