summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Burton <paul.burton@imgtec.com>2014-05-27 15:18:42 +0100
committerMarc Jones <marc.jones@se-eng.com>2015-02-24 17:28:23 +0100
commit6529c33a67b180d961e16abb5d8fd337930da946 (patch)
treeec23136e7839b13b843a01c7287a88cc0475bbb3
parent9b5f13782385f6d44b733ac5e4550b008ce71712 (diff)
downloadcoreboot-6529c33a67b180d961e16abb5d8fd337930da946.tar.gz
coreboot-6529c33a67b180d961e16abb5d8fd337930da946.tar.bz2
coreboot-6529c33a67b180d961e16abb5d8fd337930da946.zip
build: mipsel cross compiler support
This patch introduces support for building a MIPS cross compiler targetting little endian machines by default. Original-Change-Id: I116f6f431cdf80f5f5f58d2743357a9f70a7347d Original-Signed-off-by: Paul Burton <paul.burton@imgtec.com> Original-Reviewed-on: https://chromium-review.googlesource.com/207970 Original-Reviewed-by: Aaron Durbin <adurbin@chromium.org> Original-Reviewed-by: David Hendricks <dhendrix@chromium.org> (cherry picked from commit d6c9603c41b3d11400cee7b5b409203af0632aa2) Signed-off-by: Marc Jones <marc.jones@se-eng.com> Change-Id: I543cd2276d2f63ed2036a1c1259c9a07cb8a4ba8 Reviewed-on: http://review.coreboot.org/8518 Tested-by: build bot (Jenkins) Reviewed-by: Patrick Georgi <pgeorgi@google.com>
-rw-r--r--toolchain.inc3
-rw-r--r--util/crossgcc/Makefile9
-rwxr-xr-xutil/xcompile/xcompile10
3 files changed, 20 insertions, 2 deletions
diff --git a/toolchain.inc b/toolchain.inc
index f8c7ea4ac3e9..f888d68d0a4f 100644
--- a/toolchain.inc
+++ b/toolchain.inc
@@ -58,11 +58,14 @@ ARCHDIR-x86_32 := x86
ARCHDIR-arm := arm
ARCHDIR-arm64 := arm64
ARCHDIR-riscv := riscv
+ARCHDIR-mipsel := mips
CFLAGS_arm := -mno-unaligned-access -ffunction-sections -fdata-sections
CFLAGS_arm64 := -ffunction-sections -fdata-sections
+CFLAGS_mipsel := -mips32r2 -G 0
+
toolchain_to_dir = \
$(foreach arch,$(ARCH_SUPPORTED),\
$(eval CPPFLAGS_$(arch) += \
diff --git a/util/crossgcc/Makefile b/util/crossgcc/Makefile
index 4aa6bdc2d6b9..0785b65cca5e 100644
--- a/util/crossgcc/Makefile
+++ b/util/crossgcc/Makefile
@@ -1,4 +1,4 @@
-all: build-i386 build-armv7a build-aarch64
+all: build-i386 build-armv7a build-aarch64 build-mips
build-i386:
bash ./buildgcc -G -p i386-elf
@@ -9,6 +9,9 @@ build-armv7a:
build-aarch64:
bash ./buildgcc -G -p aarch64-elf
+build-mips:
+ bash ./buildgcc -G -p mips-elf
+
.PHONY: build-i386-without-gdb
build-i386-without-gdb:
bash ./buildgcc -p i386-elf
@@ -21,6 +24,10 @@ build-armv7a-without-gdb:
build-aarch64-without-gdb:
bash ./buildgcc -p aarch64-elf
+.PHONY: build-mips-without-gdb
+build-mips-without-gdb:
+ bash ./buildgcc -p mips-elf
+
clean:
rm -rf xgcc
diff --git a/util/xcompile/xcompile b/util/xcompile/xcompile
index ea2eb47f7383..29cad285cf06 100755
--- a/util/xcompile/xcompile
+++ b/util/xcompile/xcompile
@@ -168,7 +168,7 @@ EOF
}
# Architecture definition
-SUPPORTED_ARCHITECTURE="x86 arm arm64 riscv"
+SUPPORTED_ARCHITECTURE="x86 arm arm64 riscv mipsel"
arch_config_arm() {
TARCH="arm"
@@ -204,6 +204,14 @@ arch_config_x86() {
TABI="elf"
}
+arch_config_mipsel() {
+ TARCH="mipsel"
+ TBFDARCH="littlemips"
+ TCLIST="mipsel"
+ TWIDTH="32"
+ TABI="elf"
+}
+
test_architecture() {
architecture=$1