[PATCH] Improve and consolidate sparc PIC assembler.
davem at davemloft.net
Sun Apr 14 03:16:05 CEST 2013
From: Torbjorn Granlund <tg at gmplib.org>
Date: Sun, 14 Apr 2013 01:41:13 +0200
> I haven't really tried to understand the situation, but I would at least
> like to understand why the PIC/LEA changes caused to much regression.
You can do a build on Solaris right before my changes, and see in what
section clz_table is.
> Or put differently: Why did things use to work before the improvements?
Probably because the linker is only caring that clz_table is in the
TLS section when we try to use a relocation which is incompatible with
the usual kinds of linker relaxation relocation done on TLS symbols.
Normally the %tls_*() relocs are used with TLS symbols.
So we didn't properly mark object types, and the Solaris assembler
uses a terrible default for symbol types, adding up to symbols
inadvertantly ending up in the TLS section.
More information about the gmp-devel