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 at redhat dot com>
- To: Eric Botcazou <ebotcazou at adacore dot com>
- Cc: binutils at sourceware dot org, David Miller <davem at davemloft dot net>
- Date: Mon, 1 Mar 2010 20:16:00 +0100
- Subject: Re: Problematic behavior of -Av8plus/-xarch=v8plus on SPARC
- References: <201003011928.40230.ebotcazou@adacore.com>
- Reply-to: Jakub Jelinek <jakub at redhat dot com>
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.
Jakub