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 3 of 5] arch/mips: add option for MIPS ABIs


# HG changeset patch
# User "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
# Date 1284322444 -7200
# Node ID 034de6dca38f1c48fe296c871b2ce53d1c4dc35c
# Parent  24aacb93191d95d8291e32e327c3f5ea4040276c
arch/mips: add option for MIPS ABIs

This adds selection for one of the o32, n32 and n64 ABIs.
Later, we can easily use those boolean options, rather than
relying on a user-supplied string option.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>

diff --git a/config/arch/mips.in b/config/arch/mips.in
--- a/config/arch/mips.in
+++ b/config/arch/mips.in
@@ -8,7 +8,6 @@
     select ARCH_SUPPORTS_BOTH_ENDIAN
     select ARCH_DEFAULT_BE
     select ARCH_SUPPORT_ARCH
-    select ARCH_SUPPORT_ABI
     select ARCH_SUPPORT_TUNE
     help
       The MIPS architecture, as defined by:
diff --git a/config/arch/mips.in.2 b/config/arch/mips.in.2
new file mode 100644
--- /dev/null
+++ b/config/arch/mips.in.2
@@ -0,0 +1,38 @@
+# MIPS specific config options
+
+choice
+    bool
+    prompt "ABI"
+
+config ARCH_mips_o32
+    bool
+    prompt "o32"
+    depends on ARCH_32
+    help
+      This is the -mabi=32 gcc option.
+
+config ARCH_mips_n32
+    bool
+    prompt "n32"
+    depends on ARCH_64
+    help
+      This is the -mabi=n32 gcc option.
+
+config ARCH_mips_n64
+    bool
+    prompt "n64"
+    depends on ARCH_64
+    help
+      This is the -mabi=64 gcc option.
+
+# Not supported on Linux:
+# o64   : seems related to *BSD
+# eabi  : seems related to bare-metal
+
+endchoice
+
+config ARCH_mips_ABI
+    string
+    default "32"    if ARCH_mips_o32
+    default "n32"   if ARCH_mips_n32
+    default "64"    if ARCH_mips_n64
diff --git a/scripts/build/arch/mips.sh b/scripts/build/arch/mips.sh
--- a/scripts/build/arch/mips.sh
+++ b/scripts/build/arch/mips.sh
@@ -14,4 +14,8 @@
         y,) CT_ARCH_ENDIAN_CFLAG="-EB";;
         ,y) CT_ARCH_ENDIAN_CFLAG="-EL";;
     esac
+
+    # Override ABI flags
+    CT_ARCH_ABI_CFLAG="-mabi=${CT_ARCH_mips_ABI}"
+    CT_ARCH_WITH_ABI="--with-abi=${CT_ARCH_mips_ABI}"
 }



--
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]