This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: RedHat 7.1/mips update
- To: jim at jtan dot com
- Subject: Re: RedHat 7.1/mips update
- From: "H . J . Lu" <hjl at lucon dot org>
- Date: Fri, 26 Oct 2001 00:10:25 -0700
- Cc: binutils at sourceware dot cygnus dot com
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.