bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Powerpc Linux build fails


From: Geoff Keating
Subject: Re: Powerpc Linux build fails
Date: Tue, 18 May 2004 21:27:34 -0700

> Date: Wed, 19 May 2004 13:00:08 +0930
> From: Alan Modra <address@hidden>

> On Tue, May 18, 2004 at 11:06:00AM -0500, Keith Pickens wrote:
> > 
> > Sorry, I wasn't saying the change was wrong but rather that it
> > has a side effect that broke builds that have worked for a
> > long time.
> [snip]
> 
> You're correct.  You're also using the correct -mcpu option to enable
> AltiVec.  The trouble is that gcc doesn't pass -maltivec or -m7400 on to
> gas, but instead just passes -mppc.  See gcc/config/rs6000/rs6000.h
> ASM_CPU_SPEC.  Fixing gcc to pass the right options is probably the
> right thing to do, but in the meantime we have released versions of
> gcc that should work with newer binutils.  I'm inclined to make gas
> behave as if -many was given, ie. accept any recognizable powerpc
> instruction.
> 
> Geoff, what do you think?

Certainly, -many should really accept every instruction, failure to do
that is just a bug.

I am not sure about this new -mstrict.  I am sure someone is expecting
-mpower3 to really mean 'power3 only' and will get a nasty surprise
when they use a power4 instruction by mistake and their program
crashes.

It is perfectly acceptable to say "GAS version X will only work with
GCC version > Y".  People using old GCC can always use old binutils
with it.  (They can also hack their specs file to pass -many, if
that's what they really want.)

The fully-correct way to do this is to have GCC generate a directive
after option parsing, like '.machine 7400' or so, and have GAS
interpret it, otherwise you end up in specs hell.  (Doesn't ppc gas
already have a directive like that?  I seem to remember seeing such a
patch fly by...)

> opcodes/ChangeLog
>       * ppc-opc.c (insert_fxm): Enable two operand mfcr when -many as
>       well as when -mpower4.
> gas/ChangeLog
>       * config/tc-ppc.c (parse_cpu): Set PPC_OPCODE_ANY on all valid
>       options besides a new -mstrict option.
>       (md_show_usage): Update.  Correct capitalization.
>       (ppc_arch): Expand comment.
>       * doc/c-ppc.texi (PowerPC-Opts): Update.

-- 
- Geoffrey Keating <address@hidden>




reply via email to

[Prev in Thread] Current Thread [Next in Thread]