This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [patch] [powerpc] add multiarch definitions for powerpc-linux-gnu


Am 21.11.2012 03:40, schrieb David Edelsohn:
> The following patch adds the multiarch definitions for -linux-gnu. Tested using
> a Debian/Ubuntu package build. Ok for the trunk?
> 
>   Matthias
> 
> 2012-11-14  Matthias Klose  <doko@ubuntu.com>
> 
> 	* config/rs6000/t-linux64: Add multiarch names in MULTILIB_OSDIRNAMES.
> 	* config/rs6000/t-linux: New file; define MULTIARCH_DIRNAME for hard
> 	float configurations.
> 	* config/rs6000/t-fprules (SOFT_FLOAT_CPUS): New macro.
> 	(MULTILIB_MATCHES_FLOAT): Define in terms of SOFT_FLOAT_CPUS.
> 	* config/rs6000/t-spe: Define MULTIARCH_DIRNAME for linux targets.
> 	* config.gcc <powerpc-*-linux* | powerpc64-*-linux*> (tmake_file):
> 	Include rs6000/t-linux for 32bit non-biarch configurations.
> 	* configure.ac (with_cpu): Substitute variable.
> 	* configure: Regenerate.
> 	* Makefile.in (with_cpu): New macro.
> 
> And add e300c2 to the list of soft-float configurations
> 
> Okay.

thanks, committed.

  Matthias


2012-11-20  Matthias Klose  <doko@ubuntu.com>

	* configure.ac: Substitute `with_cpu'.
	* configure: Regenerate.
	* Makefile.in: Define `with_cpu'.
	* config/rs6000/t-linux64: Add multiarch names in MULTILIB_OSDIRNAMES.
	* config/rs6000/t-linux: New file; define MULTIARCH_DIRNAME.
	* config/rs6000/t-fprules (SOFT_FLOAT_CPUS): New macro. Add e300c2
	to the list.
	(MULTILIB_MATCHES_FLOAT): Define in terms of SOFT_FLOAT_CPUS.
	* config/rs6000/t-spe: Define MULTIARCH_DIRNAME.
	* config.gcc <powerpc-*-linux* | powerpc64-*-linux*> (tmake_file):
	Include rs6000/t-linux for 32bit non-biarch configurations.

Index: config.gcc
===================================================================
--- config.gcc	(revision 193685)
+++ config.gcc	(working copy)
@@ -2059,6 +2059,7 @@
 		;;
 	    *)
 		tm_file="${tm_file} rs6000/linux.h glibc-stdint.h"
+		tmake_file="$tmake_file rs6000/t-linux"
 		;;
 	esac
 	case ${target} in
Index: configure.ac
===================================================================
--- configure.ac	(revision 193685)
+++ configure.ac	(working copy)
@@ -636,6 +636,7 @@
 AC_MSG_RESULT($enable_multiarch$ma_msg_suffix)
 
 # needed for setting the multiarch name for soft-float/hard-float ABIs
+AC_SUBST(with_cpu)
 AC_SUBST(with_float)
 
 # Enable __cxa_atexit for C++.
Index: Makefile.in
===================================================================
--- Makefile.in	(revision 193685)
+++ Makefile.in	(working copy)
@@ -532,6 +532,7 @@
 
 # Multiarch support
 enable_multiarch = @enable_multiarch@
+with_cpu = @with_cpu@
 with_float = @with_float@
 ifeq ($(enable_multiarch),yes)
   if_multiarch = $(1)
Index: config/rs6000/t-linux
===================================================================
--- config/rs6000/t-linux	(revision 0)
+++ config/rs6000/t-linux	(revision 0)
@@ -0,0 +1,5 @@
+# do not define the multiarch name if configured for a soft-float cpu
+# or soft-float.
+ifeq (,$(filter $(with_cpu),$(SOFT_FLOAT_CPUS))$(findstring soft,$(with_float))
+MULTIARCH_DIRNAME = powerpc-linux-gnu
+endif
Index: config/rs6000/t-linux64
===================================================================
--- config/rs6000/t-linux64	(revision 193685)
+++ config/rs6000/t-linux64	(working copy)
@@ -29,4 +29,5 @@
 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)
+MULTILIB_OSDIRNAMES	= ../lib64$(call if_multiarch,:powerpc64-linux-gnu)
+MULTILIB_OSDIRNAMES    += $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)$(call if_multiarch,:powerpc-linux-gnu)
Index: config/rs6000/t-fprules
===================================================================
--- config/rs6000/t-fprules	(revision 193685)
+++ config/rs6000/t-fprules	(working copy)
@@ -16,17 +16,8 @@
 # along with GCC; see the file COPYING3.  If not see
 # <http://www.gnu.org/licenses/>.
 
-MULTILIB_MATCHES_FLOAT	= msoft-float=mcpu?401 \
-			  msoft-float=mcpu?403 \
-			  msoft-float=mcpu?405 \
-			  msoft-float=mcpu?440 \
-			  msoft-float=mcpu?464 \
-			  msoft-float=mcpu?476 \
-			  msoft-float=mcpu?ec603e \
-			  msoft-float=mcpu?801 \
-			  msoft-float=mcpu?821 \
-			  msoft-float=mcpu?823 \
-			  msoft-float=mcpu?860
+SOFT_FLOAT_CPUS = e300c2 401 403 405 440 464 476 ec603e 801 821 823 860
+MULTILIB_MATCHES_FLOAT = $(foreach cpu, $(SOFT_FLOAT_CPUS), msoft-float=mcpu?$(cpu))
 
 # Build the libraries for both hard and soft floating point by default
 
Index: config/rs6000/t-spe
===================================================================
--- config/rs6000/t-spe	(revision 193685)
+++ config/rs6000/t-spe	(working copy)
@@ -71,3 +71,7 @@
 			  mabi=altivec/mlittle \
 			  maltivec/mlittle \
 			  maltivec/mabi=altivec/mlittle
+
+ifneq (,$(findstring linux, $(target)))
+MULTIARCH_DIRNAME = powerpc-linux-gnuspe$(if $(findstring rs6000/e500-double.h, $(tm_file)),,v1)
+endif

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]