[PATCH] Improve and consolidate sparc PIC assembler.
Torbjorn Granlund
tg at gmplib.org
Tue Apr 16 12:29:27 CEST 2013
David Miller <davem at davemloft.net> writes:
In talking to my Oracle contact and doing some data mining, I'm
pretty sure we were hitting bug 6274959 in the assembler. He
says lots of people hit that as well as the TLS symbol thing
we hit too.
Take a look at:
https://getupdates.oracle.com/readme/README.118683-08
and down in the "from 118683-02" section it says:
6274959 'fbe' assembler generates wrong code related to %gdop_lox10 in shared library
118683-02 is a patch which was released more than 6 years ago.
Solaris < 11 would be affected if I understand correctly.
Patched older releases would be unaffected, of course.
Even GCC requires that at least 118683-03 be installed on Solaris 10,
and that Solaris patch was released more than 4 years ago.
Presumably not if binutils is installed and --with-gnu-as --with-gnu-ld
is passed.
I think it would be rather reasonable to require that 6 year old bug
fixes in the assembler be installed, but that's of course up for
discussion.
I prefer to make GMP work with what's out there. (Sometimes it is not
realistic to work around a compiler bug, such as the bug of gcc 4.3.2
that caused mpn/generic/rootrem.c miscompile.)
Now, once I have the tarball of images created on a machine that has
the buggy assembler with the -D__PIC__ thing added to the gcc command
line, I could look and see how feasible it would be to write detection
code for this bug in the GMP acinclude.m4 macros.
That would be the best approach. If that is not viable, I think we have
to assume solaris <11 (or 12?) has this non-working reloc.
I think we should check at least one of the BSDs too.
I had my Oracle contact build my test tarball on one of his Solaris 10
systems and all the gotdata relocs and symbol types look to be
correct.
I'm going to install Solaris 10 on my SunBlade2500 but it's not going
to help me in testing this particular problem if we insist on
supporting older Solaris 10 assemblers, because the oldest Solaris 10
install image I was able to obtain has 118683-10 already integrated,
so it won't have any of the assembler bugs we ran into.
Unless it is a violation of some draconian copyright law, I can share
the 2004 assembler from the system I use. :-)
--
Torbjörn
More information about the gmp-devel
mailing list