64-bit Solaris and shared libraries

Jakub Jelinek jakub@redhat.com
Sat Mar 29 22:36:00 GMT 2003


On Fri, Mar 28, 2003 at 07:07:11PM -0800, Anthony Green wrote:
> 64-bit Solaris systems require 0 in e_flags of the ELF header (implying
> RMO code).

0 is TSO.

>  gas currently defaults to TSO for sparc64, so you can't use

By default RMO.

> gcc to create a working .so without also using -Wa,-TSO.
> 
> Should gas be changed to always default to TSO? Or should GCC pass -TSO
> to the assembler was suggested here:

I think this is what should be done. Add -TSO if no -Wa,-PSO or -Wa,-RMO
is specified on the command line to sparc64-solaris specs.

> 
> 	http://gcc.gnu.org/ml/gcc-bugs/2002-09/msg00742.html
> 
> Modifying gas certainly seems like a safe choice.

But unnecessarily punishes all other sparc64 OSes - there is just one
sparc64 gas for Slowlaris, Linux, *BSD, ...
Most of the code out there certainly can work as RMO, and e.g. thread
libraries implementing synchronization primitives has to use membar
anyway so that they do work in all 3 models.

	Jakub



More information about the Binutils mailing list