[rtems-tools commit] Add PowerPC patches for GCC 4.9.2

Sebastian Huber sebh at rtems.org
Fri Jan 9 14:37:55 UTC 2015


Module:    rtems-tools
Branch:    master
Commit:    3f4717852dddcf8ba56478ba98b9dbda32d87182
Changeset: http://git.rtems.org/rtems-tools/commit/?id=3f4717852dddcf8ba56478ba98b9dbda32d87182

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Fri Jan  9 15:37:25 2015 +0100

Add PowerPC patches for GCC 4.9.2

---

 ...9.2-RTEMS-Add-e6500-multilibs-for-PowerPC.patch |  71 ++++++++++++++
 ...2-RTEMS-Fix-MPC8540-multilibs-for-PowerPC.patch |  45 +++++++++
 ...2-RTEMS-Use-MULTILIB_REQUIRED-for-PowerPC.patch | 102 +++++++++++++++++++++
 3 files changed, 218 insertions(+)

diff --git a/tools/4.11/gcc/powerpc/gcc-4.9.2-RTEMS-Add-e6500-multilibs-for-PowerPC.patch b/tools/4.11/gcc/powerpc/gcc-4.9.2-RTEMS-Add-e6500-multilibs-for-PowerPC.patch
new file mode 100644
index 0000000..440e05d
--- /dev/null
+++ b/tools/4.11/gcc/powerpc/gcc-4.9.2-RTEMS-Add-e6500-multilibs-for-PowerPC.patch
@@ -0,0 +1,71 @@
+From febe0c54031b437f713716251d6788dd481d5229 Mon Sep 17 00:00:00 2001
+From: sh <sh at 138bc75d-0d04-0410-961f-82ee72b054a4>
+Date: Fri, 9 Jan 2015 14:19:47 +0000
+Subject: [PATCH 3/3] RTEMS: Add e6500 multilibs for PowerPC
+
+Use 32-bit instructions only since currently there is no demand for a
+larger address space.  Provide one multilib with FPU and AltiVec support
+and one without.
+
+gcc/ChangeLog
+
+	* config/rs6000/rtems.h (CPP_OS_RTEMS_SPEC): Define __PPC_CPU_E6500__
+	for -mcpu=e6500.
+	* config/rs6000/t-rtems: Add e6500 multilibs.
+
+
+git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_9-branch@219391 138bc75d-0d04-0410-961f-82ee72b054a4
+---
+ gcc/config/rs6000/rtems.h |  3 ++-
+ gcc/config/rs6000/t-rtems | 13 +++++++++----
+ 3 files changed, 20 insertions(+), 5 deletions(-)
+
+diff --git a/gcc/config/rs6000/rtems.h b/gcc/config/rs6000/rtems.h
+index 2402d53..0464880 100644
+--- a/gcc/config/rs6000/rtems.h
++++ b/gcc/config/rs6000/rtems.h
+@@ -52,7 +52,8 @@
+ %{mcpu=750:  %{!Dppc*: %{!Dmpc*: -Dmpc750}  } } \
+ %{mcpu=821:  %{!Dppc*: %{!Dmpc*: -Dmpc821}  } } \
+ %{mcpu=860:  %{!Dppc*: %{!Dmpc*: -Dmpc860}  } } \
+-%{mcpu=8540: %{!Dppc*: %{!Dmpc*: -Dppc8540}  } }" 
++%{mcpu=8540: %{!Dppc*: %{!Dmpc*: -Dppc8540}  } } \
++%{mcpu=e6500: -D__PPC_CPU_E6500__}"
+ 
+ #undef  SUBSUBTARGET_EXTRA_SPECS
+ #define SUBSUBTARGET_EXTRA_SPECS \
+diff --git a/gcc/config/rs6000/t-rtems b/gcc/config/rs6000/t-rtems
+index e935947..eadda0d 100644
+--- a/gcc/config/rs6000/t-rtems
++++ b/gcc/config/rs6000/t-rtems
+@@ -24,14 +24,17 @@ MULTILIB_MATCHES =
+ MULTILIB_EXCEPTIONS =
+ MULTILIB_REQUIRED =
+ 
+-MULTILIB_OPTIONS += mcpu=403/mcpu=505/mcpu=603e/mcpu=604/mcpu=860/mcpu=7400/mcpu=8540
+-MULTILIB_DIRNAMES += m403 m505 m603e m604 m860 m7400 m8540
++MULTILIB_OPTIONS += mcpu=403/mcpu=505/mcpu=603e/mcpu=604/mcpu=860/mcpu=7400/mcpu=8540/mcpu=e6500
++MULTILIB_DIRNAMES += m403 m505 m603e m604 m860 m7400 m8540 me6500
++
++MULTILIB_OPTIONS += m32
++MULTILIB_DIRNAMES += m32
+ 
+ MULTILIB_OPTIONS += msoft-float/mfloat-gprs=double
+ MULTILIB_DIRNAMES += nof gprsdouble
+ 
+-MULTILIB_OPTIONS += mno-spe
+-MULTILIB_DIRNAMES += nospe
++MULTILIB_OPTIONS += mno-spe/mno-altivec
++MULTILIB_DIRNAMES += nospe noaltivec
+ 
+ MULTILIB_MATCHES  	+= ${MULTILIB_MATCHES_ENDIAN}
+ MULTILIB_MATCHES	+= ${MULTILIB_MATCHES_SYSV}
+@@ -72,3 +75,5 @@ MULTILIB_REQUIRED += mcpu=8540
+ MULTILIB_REQUIRED += mcpu=8540/msoft-float/mno-spe
+ MULTILIB_REQUIRED += mcpu=8540/mfloat-gprs=double
+ MULTILIB_REQUIRED += mcpu=860
++MULTILIB_REQUIRED += mcpu=e6500/m32
++MULTILIB_REQUIRED += mcpu=e6500/m32/msoft-float/mno-altivec
+-- 
+1.8.4.5
+
diff --git a/tools/4.11/gcc/powerpc/gcc-4.9.2-RTEMS-Fix-MPC8540-multilibs-for-PowerPC.patch b/tools/4.11/gcc/powerpc/gcc-4.9.2-RTEMS-Fix-MPC8540-multilibs-for-PowerPC.patch
new file mode 100644
index 0000000..7dd5fd0
--- /dev/null
+++ b/tools/4.11/gcc/powerpc/gcc-4.9.2-RTEMS-Fix-MPC8540-multilibs-for-PowerPC.patch
@@ -0,0 +1,45 @@
+From c2c78a7d98b9349ea96e860e094e4a97ba0b5842 Mon Sep 17 00:00:00 2001
+From: sh <sh at 138bc75d-0d04-0410-961f-82ee72b054a4>
+Date: Fri, 9 Jan 2015 14:18:35 +0000
+Subject: [PATCH 2/3] RTEMS: Fix MPC8540 multilibs for PowerPC
+
+GCC generates SPE instructions even if -msoft-float is specified.
+Explicitly add -mno-spe to prevent generation of SPE instructions.  This
+multilib variant must not lead to a usage of the SPE.
+
+gcc/ChangeLog
+
+	* config/rs6000/t-rtems: Add -mno-spe to soft-float multilib for
+	MPC8540.
+
+
+git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_9-branch@219390 138bc75d-0d04-0410-961f-82ee72b054a4
+---
+ gcc/config/rs6000/t-rtems | 5 ++++-
+ 2 files changed, 12 insertions(+), 1 deletion(-)
+
+diff --git a/gcc/config/rs6000/t-rtems b/gcc/config/rs6000/t-rtems
+index 3ebcfaa..e935947 100644
+--- a/gcc/config/rs6000/t-rtems
++++ b/gcc/config/rs6000/t-rtems
+@@ -30,6 +30,9 @@ MULTILIB_DIRNAMES += m403 m505 m603e m604 m860 m7400 m8540
+ MULTILIB_OPTIONS += msoft-float/mfloat-gprs=double
+ MULTILIB_DIRNAMES += nof gprsdouble
+ 
++MULTILIB_OPTIONS += mno-spe
++MULTILIB_DIRNAMES += nospe
++
+ MULTILIB_MATCHES  	+= ${MULTILIB_MATCHES_ENDIAN}
+ MULTILIB_MATCHES	+= ${MULTILIB_MATCHES_SYSV}
+ # Map 405 to 403
+@@ -66,6 +69,6 @@ MULTILIB_REQUIRED += mcpu=604/msoft-float
+ MULTILIB_REQUIRED += mcpu=7400
+ MULTILIB_REQUIRED += mcpu=7400/msoft-float
+ MULTILIB_REQUIRED += mcpu=8540
+-MULTILIB_REQUIRED += mcpu=8540/msoft-float
++MULTILIB_REQUIRED += mcpu=8540/msoft-float/mno-spe
+ MULTILIB_REQUIRED += mcpu=8540/mfloat-gprs=double
+ MULTILIB_REQUIRED += mcpu=860
+-- 
+1.8.4.5
+
diff --git a/tools/4.11/gcc/powerpc/gcc-4.9.2-RTEMS-Use-MULTILIB_REQUIRED-for-PowerPC.patch b/tools/4.11/gcc/powerpc/gcc-4.9.2-RTEMS-Use-MULTILIB_REQUIRED-for-PowerPC.patch
new file mode 100644
index 0000000..02fc786
--- /dev/null
+++ b/tools/4.11/gcc/powerpc/gcc-4.9.2-RTEMS-Use-MULTILIB_REQUIRED-for-PowerPC.patch
@@ -0,0 +1,102 @@
+From 49af75fdde43dccda427eef272b3fac13cb0102c Mon Sep 17 00:00:00 2001
+From: sh <sh at 138bc75d-0d04-0410-961f-82ee72b054a4>
+Date: Fri, 9 Jan 2015 14:14:22 +0000
+Subject: [PATCH 1/3] RTEMS: Use MULTILIB_REQUIRED for PowerPC
+
+gcc/ChangeLog
+
+	* config/rs6000/t-rtems: Use MULTILIB_REQUIRED instead of
+	MULTILIB_EXCEPTIONS.
+
+
+git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_9-branch@219389 138bc75d-0d04-0410-961f-82ee72b054a4
+---
+ gcc/config/rs6000/t-rtems | 65 +++++++++++++++++------------------------------
+ 2 files changed, 32 insertions(+), 41 deletions(-)
+
+diff --git a/gcc/config/rs6000/t-rtems b/gcc/config/rs6000/t-rtems
+index 426f75a..3ebcfaa 100644
+--- a/gcc/config/rs6000/t-rtems
++++ b/gcc/config/rs6000/t-rtems
+@@ -18,16 +18,18 @@
+ # along with GCC; see the file COPYING3.  If not see
+ # <http://www.gnu.org/licenses/>.
+ 
+-MULTILIB_OPTIONS	= \
+-mcpu=403/mcpu=505/mcpu=603e/mcpu=604/mcpu=860/mcpu=7400/mcpu=8540 \
+-msoft-float/mfloat-gprs=double
++MULTILIB_OPTIONS =
++MULTILIB_DIRNAMES =
++MULTILIB_MATCHES =
++MULTILIB_EXCEPTIONS =
++MULTILIB_REQUIRED =
++
++MULTILIB_OPTIONS += mcpu=403/mcpu=505/mcpu=603e/mcpu=604/mcpu=860/mcpu=7400/mcpu=8540
++MULTILIB_DIRNAMES += m403 m505 m603e m604 m860 m7400 m8540
+ 
+-MULTILIB_DIRNAMES	= \
+-m403 m505 m603e m604 m860 m7400 m8540 \
+-nof gprsdouble
++MULTILIB_OPTIONS += msoft-float/mfloat-gprs=double
++MULTILIB_DIRNAMES += nof gprsdouble
+ 
+-# MULTILIB_MATCHES	= ${MULTILIB_MATCHES_FLOAT}
+-MULTILIB_MATCHES	=
+ MULTILIB_MATCHES  	+= ${MULTILIB_MATCHES_ENDIAN}
+ MULTILIB_MATCHES	+= ${MULTILIB_MATCHES_SYSV}
+ # Map 405 to 403
+@@ -52,37 +54,18 @@ MULTILIB_MATCHES	+= mcpu?8540=mcpu?8548
+ # (mfloat-gprs=single is implicit default)
+ MULTILIB_MATCHES	+= mcpu?8540=mcpu?8540/mfloat-gprs?single
+ 
+-# Soft-float only, default implies msoft-float
+-# NOTE: Must match with MULTILIB_MATCHES_FLOAT and MULTILIB_MATCHES
+-MULTILIB_SOFTFLOAT_ONLY = \
+-*mcpu=401/*msoft-float* \
+-*mcpu=403/*msoft-float* \
+-*mcpu=405/*msoft-float* \
+-*mcpu=801/*msoft-float* \
+-*mcpu=821/*msoft-float* \
+-*mcpu=823/*msoft-float* \
+-*mcpu=860/*msoft-float*
+-
+-# Hard-float only, take out msoft-float
+-MULTILIB_HARDFLOAT_ONLY = \
+-*mcpu=505/*msoft-float*
+-
+-# Targets which do not support gprs
+-MULTILIB_NOGPRS = \
+-mfloat-gprs=* \
+-*mcpu=403/*mfloat-gprs=* \
+-*mcpu=505/*mfloat-gprs=* \
+-*mcpu=603e/*mfloat-gprs=* \
+-*mcpu=604/*mfloat-gprs=* \
+-*mcpu=860/*mfloat-gprs=* \
+-*mcpu=7400/*mfloat-gprs=*
+-
+-MULTILIB_EXCEPTIONS =
+-
+-# Disallow -Dppc and -Dmpc without other options
+-MULTILIB_EXCEPTIONS 	+= Dppc* Dmpc*
++# Enumeration of multilibs
+ 
+-MULTILIB_EXCEPTIONS	+= \
+-${MULTILIB_SOFTFLOAT_ONLY} \
+-${MULTILIB_HARDFLOAT_ONLY} \
+-${MULTILIB_NOGPRS}
++MULTILIB_REQUIRED += msoft-float
++MULTILIB_REQUIRED += mcpu=403
++MULTILIB_REQUIRED += mcpu=505
++MULTILIB_REQUIRED += mcpu=603e
++MULTILIB_REQUIRED += mcpu=603e/msoft-float
++MULTILIB_REQUIRED += mcpu=604
++MULTILIB_REQUIRED += mcpu=604/msoft-float
++MULTILIB_REQUIRED += mcpu=7400
++MULTILIB_REQUIRED += mcpu=7400/msoft-float
++MULTILIB_REQUIRED += mcpu=8540
++MULTILIB_REQUIRED += mcpu=8540/msoft-float
++MULTILIB_REQUIRED += mcpu=8540/mfloat-gprs=double
++MULTILIB_REQUIRED += mcpu=860
+-- 
+1.8.4.5
+



More information about the vc mailing list