RedHat 7.1/mips update
H . J . Lu
hjl@lucon.org
Fri Oct 26 00:10:00 GMT 2001
On Thu, Oct 25, 2001 at 08:48:36PM -0400, Jim Paris wrote:
> > It is intentional. Do what the message says. I only have to check my
> > arch/mips/Makefile from -mcpu=xxx to -mtune=xxx.
>
> The line relevant to my architecture in arch/mips/Makefile used:
>
> -mcpu=4100 -mips2 -Wa,--trap
>
> The new binutils doesn't allow this; the -mcpu is ignored, so I get:
>
> {standard input}:91: Error: opcode not supported on this processor: R6000 (MIPS2) `standby'
> {standard input}:178: Error: opcode not supported on this processor: R6000 (MIPS2) `hibernate'
>
> So, I try changing it to
>
> -mtune=4100 -mips2 -Wa,--trap
>
> as you suggest here; binutils stops complaining about incompatible
> parameters, but I get the same build error. What I'm currently using
> is:
>
> -march=r4100 -Wa,-m4100,--trap
>
> which elimiates the errors, but has the side effect that everything is
> now MIPS3. I don't really know much about the different ISA levels;
> is it preferable to compile the kernel as MIPS2 for some reason, and
> if so, how do I do that while still getting the R4100 instructions?
I agree. It seems no way to set the ELF e_flags field to indicate
an object file containing this MIPS ISA plus instructions from that
MIPS cpu. The problem is we are setting both EF_MIPS_ARCH and
EF_MIPS_MACH in bfd. I believe they should be set by the assembler
instead. I'd like to add bfd_mips_elf[32|64]_set_isa () and to set the
EF_MIPS_ARCH field and let bfd set the EF_MIPS_MACH field only. Then
we should allow
-march=r4100 -mips2
which means to use instructions from mips2 plus those from r4100.
H.J.
More information about the Binutils
mailing list