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

Joel Sherrill joel.sherrill at oarcorp.com
Fri Jan 9 15:34:23 UTC 2015


Is this patch on the gcc 4.9 branch and head?

--joel

On 1/9/2015 8:37 AM, Sebastian Huber wrote:
> 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
> +
>
> _______________________________________________
> vc mailing list
> vc at rtems.org
> http://lists.rtems.org/mailman/listinfo/vc

-- 
Joel Sherrill, Ph.D.             Director of Research & Development
joel.sherrill at OARcorp.com        On-Line Applications Research
Ask me about RTEMS: a free RTOS  Huntsville AL 35805
Support Available                (256) 722-9985



More information about the devel mailing list