This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: Problematic behavior of -Av8plus/-xarch=v8plus on SPARC
From: Jakub Jelinek <jakub@redhat.com>
Date: Mon, 1 Mar 2010 20:16:00 +0100
> On Mon, Mar 01, 2010 at 07:28:40PM +0100, Eric Botcazou wrote:
>> That part isn't because, when -flto is specified, GCC can generate essentially
>> empty assembly files (containing only strings) that are thus assembled into v8
>> object files by gas, while regular assembly files are assembled into v8+ ones.
>> As a result, lto1 chokes when trying to load them together.
>>
>> Now the Sun assembler (at least Sun WorkShop 6 2001/04/02 and 2003/12/18)
>> behaves differently: while you need to specify -xarch=v8plus to assemble v9
>> insns, if you specify it, you get a v8+ object file whatever its contents.
>>
>> What should we do here? Teach lto1 that v8 and v8+ are essentially the same,
>> change the behavior of -Av8plus/-xarch=v8plus to match that of Sun as, or
>> something else?
>
> I'd say treat them essentially the same (like e.g. glibc and binutils do).
> I don't think lto1 needs to care about the difference, for ld (ld.so etc.)
> merging only EM_SPARC objects together means resulting EM_SPARC,
> as soon as there is at least one EM_SPARC32PLUS object the result is
> EM_SPARC32PLUS. And, EM_SPARCV9 is incompatible with those other two.
I agree.