Patchwork [PATCHv2] toolchain-external: add new Microblaze toolchains

login
register
mail settings
Submitter Thomas Petazzoni
Date Feb. 5, 2013, 8:37 a.m.
Message ID <1360053449-31071-1-git-send-email-thomas.petazzoni@free-electrons.com>
Download mbox | patch
Permalink /patch/218174/
State Accepted
Commit 313094d7874a4dd8638a83be7952dda490eaa1bc
Headers show

Comments

Thomas Petazzoni - Feb. 5, 2013, 8:37 a.m.
The existing Microblaze toolchains that we have have the annoying
property of being based on a very old glibc version: 2.3.6. Xilinx
provides newer toolchains with glibc 2.14, generated by Crosstool-NG,
but they are only available as part of a huge Git repository that
contains the gcc, Linux, binutils, glibc sources unpacked (4.4 GB
total), which makes is very unpractical.

I contacted the Xilinx person who did those toolchains, but they
apparently didn't intend to change that anytime soon.

So, we have created a tarball for those toolchains, adding a
README.txt file in the tarball that points back to the original
location that contains the source code for them. Those tarballs are
hosted on sources.buildroot.net.

This commit then adds support for those two new external toolchains,
one for little endian Microblaze, another one for big endian
Microblaze.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
v1->v2:
 Fixed the prompt for the Big Endian toolchain, which had be
 mistakenly copy/pasted from the Little Endian prompt. Thanks to
 Baruch Siach.
---
 toolchain/toolchain-external/Config.in   |   26 ++++++++++++++++++++++++++
 toolchain/toolchain-external/ext-tool.mk |    6 ++++++
 2 files changed, 32 insertions(+)
Peter Korsgaard - Feb. 22, 2013, 11:13 p.m.
>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes:

 Thomas> The existing Microblaze toolchains that we have have the annoying
 Thomas> property of being based on a very old glibc version: 2.3.6. Xilinx
 Thomas> provides newer toolchains with glibc 2.14, generated by Crosstool-NG,
 Thomas> but they are only available as part of a huge Git repository that
 Thomas> contains the gcc, Linux, binutils, glibc sources unpacked (4.4 GB
 Thomas> total), which makes is very unpractical.

 Thomas> I contacted the Xilinx person who did those toolchains, but they
 Thomas> apparently didn't intend to change that anytime soon.

 Thomas> So, we have created a tarball for those toolchains, adding a
 Thomas> README.txt file in the tarball that points back to the original
 Thomas> location that contains the source code for them. Those tarballs are
 Thomas> hosted on sources.buildroot.net.

 Thomas> This commit then adds support for those two new external toolchains,
 Thomas> one for little endian Microblaze, another one for big endian
 Thomas> Microblaze.

Committed to next, thanks.

Patch

diff --git a/toolchain/toolchain-external/Config.in b/toolchain/toolchain-external/Config.in
index 5b26aa9..d2f3926 100644
--- a/toolchain/toolchain-external/Config.in
+++ b/toolchain/toolchain-external/Config.in
@@ -631,6 +631,18 @@  config BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_2011R1
 	  Toolchain for the Blackfin architecture, from
 	  http://blackfin.uclinux.org.
 
+config BR2_TOOLCHAIN_EXTERNAL_XILINX_MICROBLAZEEL_14_3
+	bool "Xilinx Little Endian Microblaze GNU Tools"
+	depends on BR2_microblazeel
+	depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
+	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
+	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
+	select BR2_HOSTARCH_NEEDS_IA32_LIBS
+	help
+	  Toolchain for the Microblaze architecture, from
+	  http://git.xilinx.com/?p=microblaze-gnu.git;a=tree;f=binaries. It
+	  uses gcc 4.6.2, binutils 2.21.53, glibc 2.14 and gdb 7.4.50.
+
 config BR2_TOOLCHAIN_EXTERNAL_XILINX_MICROBLAZEEL_V2
 	bool "Xilinx Little Endian Microblaze GNU Tools"
 	depends on BR2_microblazeel
@@ -641,6 +653,18 @@  config BR2_TOOLCHAIN_EXTERNAL_XILINX_MICROBLAZEEL_V2
 	  Toolchain for the Microblaze architecture, from
 	  http://wiki.xilinx.com/mb-gnu-tools
 
+config BR2_TOOLCHAIN_EXTERNAL_XILINX_MICROBLAZEBE_14_3
+	bool "Xilinx Big Endian Microblaze GNU Tools"
+	depends on BR2_microblaze
+	depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
+	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
+	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
+	select BR2_HOSTARCH_NEEDS_IA32_LIBS
+	help
+	  Toolchain for the Microblaze architecture, from
+	  http://git.xilinx.com/?p=microblaze-gnu.git;a=tree;f=binaries. It
+	  uses gcc 4.6.2, binutils 2.21.53, glibc 2.14 and gdb 7.4.50.
+
 config BR2_TOOLCHAIN_EXTERNAL_XILINX_MICROBLAZEBE_V2
 	bool "Xilinx Big Endian Microblaze GNU Tools"
 	depends on BR2_microblazebe
@@ -743,7 +767,9 @@  config BR2_TOOLCHAIN_EXTERNAL_PREFIX
 	default "aarch64-linux-gnu"      if BR2_TOOLCHAIN_EXTERNAL_LINARO_AARCH64_12_11
 	default "aarch64-linux-gnu"      if BR2_TOOLCHAIN_EXTERNAL_LINARO_AARCH64_12_12
 	default "aarch64-linux-gnu"      if BR2_TOOLCHAIN_EXTERNAL_LINARO_AARCH64_13_01
+	default "microblazeel-unknown-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_XILINX_MICROBLAZEEL_14_3
 	default "microblazeel-unknown-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_XILINX_MICROBLAZEEL_V2
+	default "microblaze-unknown-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_XILINX_MICROBLAZEBE_14_3
 	default "microblaze-unknown-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_XILINX_MICROBLAZEBE_V2
 	default "mips-linux-gnu"         if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS201109
 	default "mips-linux-gnu"         if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS201203
diff --git a/toolchain/toolchain-external/ext-tool.mk b/toolchain/toolchain-external/ext-tool.mk
index 452204b..76bedc7 100644
--- a/toolchain/toolchain-external/ext-tool.mk
+++ b/toolchain/toolchain-external/ext-tool.mk
@@ -250,9 +250,15 @@  TOOLCHAIN_EXTERNAL_SOURCE_1 = blackfin-toolchain-2012R2-RC2.i386.tar.bz2
 TOOLCHAIN_EXTERNAL_SITE_2   = http://blackfin.uclinux.org/gf/download/frsrelease/588/10147/
 TOOLCHAIN_EXTERNAL_SOURCE_2 = blackfin-toolchain-uclibc-full-2012R2-RC2.i386.tar.bz2
 TOOLCHAIN_EXTERNAL_SOURCE   = $(TOOLCHAIN_EXTERNAL_SOURCE_1) $(TOOLCHAIN_EXTERNAL_SOURCE_2)
+else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_XILINX_MICROBLAZEEL_14_3),y)
+TOOLCHAIN_EXTERNAL_SITE=http://sources.buildroot.net/
+TOOLCHAIN_EXTERNAL_SOURCE=lin32-microblazeel-unknown-linux-gnu_14.3_early.tar.xz
 else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_XILINX_MICROBLAZEEL_V2),y)
 TOOLCHAIN_EXTERNAL_SITE=http://git.xilinx.com/?p=xldk/microblaze_v2.0_le.git;a=blob;h=d7b493c5dbcc24ba9cc3be2e4c14d6d9701e6805;hb=00163583b771bb4e937632765dd0c5516b3e31c4;f=
 TOOLCHAIN_EXTERNAL_SOURCE=microblazeel-unknown-linux-gnu.tgz
+else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_XILINX_MICROBLAZEBE_14_3),y)
+TOOLCHAIN_EXTERNAL_SITE=http://sources.buildroot.net/
+TOOLCHAIN_EXTERNAL_SOURCE=lin32-microblaze-unknown-linux-gnu_14.3_early.tar.xz
 else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_XILINX_MICROBLAZEBE_V2),y)
 TOOLCHAIN_EXTERNAL_SITE=http://git.xilinx.com/?p=xldk/microblaze_v2.0.git;a=blob;h=71e031ae990e063a5718f90d30cf97ad85e2f565;hb=569081301f0f1d8d3b24335a364e8ff1774190d4;f=
 TOOLCHAIN_EXTERNAL_SOURCE=microblaze-unknown-linux-gnu.tgz