[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