ext-toolchain: MIPS: Select correct endianness for the target
authorMarkos Chandras <markos.chandras@imgtec.com>
Mon, 14 Oct 2013 09:52:25 +0000 (10:52 +0100)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Wed, 30 Oct 2013 17:51:37 +0000 (18:51 +0100)
Previously, an external-toolchain on a mipsel/mips64el target
didn't select the appriopriate endianness but
it asked the user to set the correct CFLAGS on his/her own.
We fix this by appending "-EL" to the toolchain wrapper options
if the user has selected a mipsel/mips64el target.

[Thomas: remove unneeded test on BR2_ENDIAN, since mipsel and mips64el
are always little-endian, and add the corresponding big endian case.]

Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
toolchain/toolchain-external/Config.in
toolchain/toolchain-external/ext-toolchain-wrapper.c
toolchain/toolchain-external/toolchain-external.mk

index 48b5865103550bd0e0065f6e8946b5f1d144dcfc..646f918be2e14489e91ab6ac001db22394081917 100644 (file)
@@ -213,12 +213,10 @@ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS201305
            - MIPS32 O32 little endian glibc
              Select a MIPS generic core
              Disable BR2_SOFT_FLOAT
-             Set BR2_TARGET_OPTIMIZATION to -EL
            - MIPS64 little endian glibc
              Select a MIPS64 generic core
              Select the n64 ABI
              Disable BR2_SOFT_FLOAT
-             Set BR2_TARGET_OPTIMIZATION to -EL
            - MIPS32 big endian soft float glibc
              Select a MIPS generic core
              Select BR2_SOFT_FLOAT
@@ -229,12 +227,10 @@ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS201305
            - MIPS32 little endian soft float glibc
              Select a MIPS generic core
              Select BR2_SOFT_FLOAT
-             Set BR2_TARGET_OPTIMIZATION to -EL
            - MIPS64 little endian soft float glibc
              Select a MIPS64 generic core
              Select the n64 ABI
              Select BR2_SOFT_FLOAT
-             Set BR2_TARGET_OPTIMIZATION to -EL
            - MIPS32 big endian microMIPS glibc
              Select a MIPS generic core
              Disable BR2_SOFT_FLOAT
@@ -242,7 +238,7 @@ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS201305
            - MIPS32 little endian microMIPS glibc
              Select a MIPS generic core
              Disable BR2_SOFT_FLOAT
-             Set BR2_TARGET_OPTIMIZATION to -EL -mips16
+             Set BR2_TARGET_OPTIMIZATION to -mips16
            - MIPS32 big endian soft float microMIPS glibc
              Select a MIPS generic core
              Select BR2_SOFT_FLOAT
@@ -250,7 +246,7 @@ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS201305
            - MIPS32 little endian soft float microMIPS glibc
              Select a MIPS generic core
              Select BR2_SOFT_FLOAT
-             Set BR2_TARGET_OPTIMIZATION to -EL -mips16
+             Set BR2_TARGET_OPTIMIZATION to -mips16
            - MIPS32 big endian uclibc
              Not usable in Buildroot yet.
            - MIPS32 little endian uclibc
@@ -284,12 +280,10 @@ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS201209
            - MIPS32 O32 little endian glibc
              Select a MIPS generic core
              Disable BR2_SOFT_FLOAT
-             Set BR2_TARGET_OPTIMIZATION to -EL
            - MIPS64 little endian glibc
              Select a MIPS generic core
              Select the n64 ABI
              Disable BR2_SOFT_FLOAT
-             Set BR2_TARGET_OPTIMIZATION to -EL
            - MIPS32 big endian soft float glibc
              Select a MIPS generic core
              Select BR2_SOFT_FLOAT
@@ -300,12 +294,10 @@ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS201209
            - MIPS32 little endian soft float glibc
              Select a MIPS generic core
              Select BR2_SOFT_FLOAT
-             Set BR2_TARGET_OPTIMIZATION to -EL
            - MIPS64 little endian soft float glibc
              Select a MIPS generic core
              Select the n64 ABI
              Select BR2_SOFT_FLOAT
-             Set BR2_TARGET_OPTIMIZATION to -EL
            - MIPS32 big endian microMIPS glibc
              Select a MIPS generic core
              Disable BR2_SOFT_FLOAT
@@ -313,7 +305,7 @@ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS201209
            - MIPS32 little endian microMIPS glibc
              Select a MIPS generic core
              Disable BR2_SOFT_FLOAT
-             Set BR2_TARGET_OPTIMIZATION to -EL -mips16
+             Set BR2_TARGET_OPTIMIZATION to -mips16
            - MIPS32 big endian soft float microMIPS glibc
              Select a MIPS generic core
              Select BR2_SOFT_FLOAT
@@ -321,7 +313,7 @@ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS201209
            - MIPS32 little endian soft float microMIPS glibc
              Select a MIPS generic core
              Select BR2_SOFT_FLOAT
-             Set BR2_TARGET_OPTIMIZATION to -EL -mips16
+             Set BR2_TARGET_OPTIMIZATION to -mips16
            - MIPS32 big endian uclibc
              Not usable in Buildroot yet.
            - MIPS32 little endian uclibc
@@ -355,12 +347,10 @@ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS201203
            - MIPS32 O32 little endian glibc
              Select a MIPS generic core
              Disable BR2_SOFT_FLOAT
-             Set BR2_TARGET_OPTIMIZATION to -EL
            - MIPS64 little endian glibc
              Select a MIPS generic core
              Select the n64 ABI
              Disable BR2_SOFT_FLOAT
-             Set BR2_TARGET_OPTIMIZATION to -EL
            - MIPS32 big endian soft float glibc
              Select a MIPS generic core
              Select BR2_SOFT_FLOAT
@@ -371,12 +361,10 @@ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS201203
            - MIPS32 little endian soft float glibc
              Select a MIPS generic core
              Select BR2_SOFT_FLOAT
-             Set BR2_TARGET_OPTIMIZATION to -EL
            - MIPS64 little endian soft float glibc
              Select a MIPS generic core
              Select the n64 ABI
              Select BR2_SOFT_FLOAT
-             Set BR2_TARGET_OPTIMIZATION to -EL
            - MIPS32 big endian microMIPS glibc
              Select a MIPS generic core
              Disable BR2_SOFT_FLOAT
@@ -384,7 +372,7 @@ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS201203
            - MIPS32 little endian microMIPS glibc
              Select a MIPS generic core
              Disable BR2_SOFT_FLOAT
-             Set BR2_TARGET_OPTIMIZATION to -EL -mips16
+             Set BR2_TARGET_OPTIMIZATION to -mips16
            - MIPS32 big endian soft float microMIPS glibc
              Select a MIPS generic core
              Select BR2_SOFT_FLOAT
@@ -392,7 +380,7 @@ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS201203
            - MIPS32 little endian soft float microMIPS glibc
              Select a MIPS generic core
              Select BR2_SOFT_FLOAT
-             Set BR2_TARGET_OPTIMIZATION to -EL -mips16
+             Set BR2_TARGET_OPTIMIZATION to -mips16
            - MIPS32 big endian uclibc
              Not usable in Buildroot yet.
            - MIPS32 little endian uclibc
index 727e3221969146f548d02253feeaa51f2649a684..d54f1f5db650577450a5cc8b47e1475543f1abf0 100644 (file)
@@ -63,6 +63,12 @@ static char *predef_args[] = {
 #ifdef BR_BINFMT_FLAT
        "-Wl,-elf2flt",
 #endif
+#ifdef BR_MIPS_TARGET_LITTLE_ENDIAN
+       "-EL",
+#endif
+#ifdef BR_MIPS_TARGET_BIG_ENDIAN
+       "-EB",
+#endif
 #ifdef BR_ADDITIONAL_CFLAGS
        BR_ADDITIONAL_CFLAGS
 #endif
index d41cc7cfcb1a1f0a47156e46f462458429a8918a..d658d4f745a73bb28f786fc319a877e4d8d9cc60 100644 (file)
@@ -207,7 +207,14 @@ ifeq ($(BR2_BINFMT_FLAT),y)
 TOOLCHAIN_EXTERNAL_CFLAGS += -Wl,-elf2flt
 TOOLCHAIN_EXTERNAL_WRAPPER_ARGS += -DBR_BINFMT_FLAT
 endif
-
+ifeq ($(BR2_mipsel)$(BR2_mips64el),y)
+TOOLCHAIN_EXTERNAL_WRAPPER_ARGS += -DBR_MIPS_TARGET_LITTLE_ENDIAN
+TOOLCHAIN_EXTERNAL_CFLAGS += -EL
+endif
+ifeq ($(BR2_mips)$(BR2_mips64),y)
+TOOLCHAIN_EXTERNAL_WRAPPER_ARGS += -DBR_MIPS_TARGET_BIG_ENDIAN
+TOOLCHAIN_EXTERNAL_CFLAGS += -EB
+endif
 ifneq ($(BR2_TARGET_OPTIMIZATION),)
 TOOLCHAIN_EXTERNAL_CFLAGS += $(call qstrip,$(BR2_TARGET_OPTIMIZATION))
 # We create a list like '"-mfoo", "-mbar", "-mbarfoo"' so that each