Patchwork Add powerpc64-linux configuration options

login
register
mail settings
Submitter Michael Meissner
Date May 24, 2012, 5:45 p.m.
Message ID <20120524174540.GA27198@ibm-tiger.the-meissners.org>
Download mbox | patch
Permalink /patch/161173/
State New
Headers show

Comments

Michael Meissner - May 24, 2012, 5:45 p.m.
On Wed, May 23, 2012 at 10:59:10PM +0000, Joseph S. Myers wrote:
> On Wed, 23 May 2012, Michael Meissner wrote:
> 
> > An alternative would be for the powerpc64-linux case, should we just delete the
> > software floating emulation multilib and stop using the -mstrict-align, since
> > Linux only runs in big endian mode.  The software emulation multilib would be
> > built for other powerpc varients and -mstrict-align would be used there as
> > well.
> 
> I support deleting the soft-float multilib; it can't be used as-is because 
> it requires its own libc, in its own sysroot, and the configuration 
> doesn't use a separate sysroot for it.  As for -mstrict-align, again if 
> someone wants -mstrict-align libraries I think they should set up a 
> multilib using that option (or a CPU option that implies it) rather than 
> trying to make the libraries from a compiler configured for some CPU 
> compatible with another CPU they wouldn't normally be compatible with.

This alternative patch just disables building the 32-bit softfloat multlib, and
removes the -mstrict-align in the powerpc64-linux case.

I have bootstrapped it and had no regressions.

David, which patch do you prefer?

2012-05-24  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/t-linux64: Delete the 32-bit multilib that uses
	software floating point emulation.  No longer build the multilibs
	with -mstrict-align.
Alan Modra - May 25, 2012, 1 a.m.
On Thu, May 24, 2012 at 01:45:41PM -0400, Michael Meissner wrote:
> This alternative patch just disables building the 32-bit softfloat multlib, and
> removes the -mstrict-align in the powerpc64-linux case.
> 
> I have bootstrapped it and had no regressions.
> 
> David, which patch do you prefer?
> 
> 2012-05-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
> 
> 	* config/rs6000/t-linux64: Delete the 32-bit multilib that uses
> 	software floating point emulation.  No longer build the multilibs
> 	with -mstrict-align.

I like this patch.  I like it because all uses of MULTILIB_EXTRA_OPTS
are suspect.  Why?  The option is not applied to the default multilib!
That means that prior to this patch you get different libraries
depending on the compiler default.  For example, a powerpc-linux gcc
defaulting to -m32 builds the 32-bit libraries without -mstrict-align,
while a powerpc64-linux gcc defaulting to -m64 builds the 32-bit
libraries with -mstrict-align.  This is confusing to say the least,
and I recall seeing libstdc++ test failures due to the difference.

I've had "MULTILIB_EXTRA_OPTS =" in my t-linux64 for quite some time.

Patch

Index: gcc/config/rs6000/t-linux64
===================================================================
--- gcc/config/rs6000/t-linux64	(revision 187805)
+++ gcc/config/rs6000/t-linux64	(working copy)
@@ -26,10 +26,7 @@ 
 # it doesn't tell anything about the 32bit libraries on those systems.  Set
 # MULTILIB_OSDIRNAMES according to what is found on the target.
 
-MULTILIB_OPTIONS        = m64/m32 msoft-float
-MULTILIB_DIRNAMES       = 64 32 nof
-MULTILIB_EXTRA_OPTS     = fPIC mstrict-align
-MULTILIB_EXCEPTIONS     = m64/msoft-float
-MULTILIB_EXCLUSIONS     = m64/!m32/msoft-float
-MULTILIB_OSDIRNAMES	= ../lib64 $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib) nof
-MULTILIB_MATCHES        = $(MULTILIB_MATCHES_FLOAT)
+MULTILIB_OPTIONS        = m64/m32
+MULTILIB_DIRNAMES       = 64 32
+MULTILIB_EXTRA_OPTS     = fPIC
+MULTILIB_OSDIRNAMES	= ../lib64 $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)