This is the mail archive of the crossgcc@sourceware.org mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more information.


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

[PATCH] gcc: add support for the PowerPC EABI


# HG changeset patch
# User Mircea Gherzan <mgherzan@gmail.com>
# Date 1316132293 -7200
# Node ID ddb7a1b016c824a0ddaf97768d37c1a1fb287156
# Parent  eda6ef5a2532607ab7060814eb8b786bd361ab11
gcc: add support for the PowerPC EABI

diff -r eda6ef5a2532 -r ddb7a1b016c8 config/arch/powerpc.in.2
--- a/config/arch/powerpc.in.2	Mon Sep 12 12:54:45 2011 +0200
+++ b/config/arch/powerpc.in.2	Fri Sep 16 02:18:13 2011 +0200
@@ -1,8 +1,31 @@
 # powerpc specific configuration file
 
-config ARCH_POWERPC_SPE
+config ARCH_POWERPC_ABI
+    string
+    default ""     if ARCH_POWERPC_ABI_DEFAULT
+    default "eabi" if ARCH_POWERPC_ABI_EABI
+    default "spe"  if ARCH_POWERPC_ABI_SPE
+
+choice
     bool
-    prompt "Enable SPE support"
+    prompt "ABI"
+    default ARCH_POWERPC_ABI_DEFAULT
+
+config ARCH_POWERPC_ABI_DEFAULT
+    bool
+    prompt "default"
+    help
+      The default ABI (System V.4). 
+
+config ARCH_POWERPC_ABI_EABI
+    bool
+    prompt "EABI"
+    help
+      The Embedded ABI (stack alignment of 8 bytes, etc).
+
+config ARCH_POWERPC_ABI_SPE
+    bool
+    prompt "SPE"
     help
       Add support for the Signal Processing Engine.  This will set up
       the toolchain so that it supports the SPE ABI extensions. This
@@ -14,3 +37,6 @@
       will also automatically add "-mabi=spe -mspe" to your TARGET_CFLAGS,
       and "--enable-e500_double" to your CC_EXTRA_CONFIG_ARRAY, so you
       do not need to explicitly add them.
+
+endchoice
+
diff -r eda6ef5a2532 -r ddb7a1b016c8 scripts/build/arch/powerpc.sh
--- a/scripts/build/arch/powerpc.sh	Mon Sep 12 12:54:45 2011 +0200
+++ b/scripts/build/arch/powerpc.sh	Fri Sep 16 02:18:13 2011 +0200
@@ -6,14 +6,23 @@
         CT_TARGET_ARCH="powerpc64"
     fi
 
-    # Add spe in the tuple if needed
-    case "${CT_LIBC},${CT_ARCH_POWERPC_SPE}" in
-        glibc,|eglibc,)   CT_TARGET_SYS=gnu;;
-        glibc,y|eglibc,y) CT_TARGET_SYS=gnuspe;;
+    CT_TARGET_SYS="gnu"
+    case "${CT_ARCH_POWERPC_ABI}" in
+        "") ;;
+        eabi)   
+            CT_TARGET_SYS="eabi";;
+        spe)
+            case "${CT_LIBC}" in
+                glibc|eglibc)
+                    CT_TARGET_SYS="gnuspe";;
+                *)
+                    CT_TARGET_SYS="spe";;
+                    
+            esac;;
     esac
 
     # Add extra flags for SPE if needed
-    if [ "${CT_ARCH_POWERPC_SPE}" = "y" ]; then
+    if [ "${CT_ARCH_POWERPC_ABI_SPE}" = "y" ]; then
         CT_ARCH_TARGET_CFLAGS="-mabi=spe -mspe"
         CT_ARCH_CC_CORE_EXTRA_CONFIG="--enable-e500_double"
         CT_ARCH_CC_EXTRA_CONFIG="--enable-e500_double"

--
For unsubscribe information see http://sourceware.org/lists.html#faq


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