[PATCH] Improve and consolidate sparc PIC assembler.

David Miller 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 mailing list