This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Powerpc Linux build fails


> Date: Wed, 19 May 2004 13:00:08 +0930
> From: Alan Modra <amodra@bigpond.net.au>

> 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 <geoffk@geoffk.org>


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]