* [Buildroot] [PATCH 0/3 v2] toolchain/external: add Linaro 2014.11 (branch yem/toolchain-linaro-2014.11)
@ 2015-03-28 15:27 Yann E. MORIN
2015-03-28 15:27 ` [Buildroot] [PATCH 1/3 v2] toolchain/external: add Linaro ARM 2014.11 ARMv7 EABIhf Yann E. MORIN
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Yann E. MORIN @ 2015-03-28 15:27 UTC (permalink / raw)
To: buildroot
Hello All!
This series introduces the Linaro 2014.11 toolchains, for ARM (LE and
BE) and AArch64.
See the commit log of patch 1 for the gory details... :-/
ARM (LE) toolchain was tested with a minimalist setup, based on
qemu_arm_vexpress_defconfig, with just a switch to use EABIhf and this
toolchain (rather than the default EABI and internal toolchain), while
the AArch64 toolchain was tested in a similar way, based on
qemu_aarch64_virt_defconfig.
Changes v1 -> v2:
- remove stray backup file
Regards,
Yann E. MORIN.
The following changes since commit 9c820091d1a1813e6de4016ea510a047847f9648:
package/dovecot: fix hash typo (2015-03-27 18:47:38 +0100)
are available in the git repository at:
git://git.busybox.net/~ymorin/git/buildroot yem/toolchain-linaro-2014.11
for you to fetch changes up to f236047e897f67361e28b321b0e9e326c012b802:
toolchain/external: add Linaro AArch64 2014.11 (2015-03-28 16:12:13 +0100)
----------------------------------------------------------------
Yann E. MORIN (3):
toolchain/external: add Linaro ARM 2014.11 ARMv7 EABIhf
toolchain/external: add Linaro ARM BE 2014.11 ARMv7 EABIhf
toolchain/external: add Linaro AArch64 2014.11
toolchain/toolchain-external/Config.in | 73 ++++++++++++++++++++++
.../toolchain-external/toolchain-external.hash | 6 ++
toolchain/toolchain-external/toolchain-external.mk | 47 ++++++++++++++
3 files changed, 126 insertions(+)
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH 1/3 v2] toolchain/external: add Linaro ARM 2014.11 ARMv7 EABIhf
2015-03-28 15:27 [Buildroot] [PATCH 0/3 v2] toolchain/external: add Linaro 2014.11 (branch yem/toolchain-linaro-2014.11) Yann E. MORIN
@ 2015-03-28 15:27 ` Yann E. MORIN
2015-03-29 11:11 ` Thomas Petazzoni
2015-03-28 15:27 ` [Buildroot] [PATCH 2/3 v2] toolchain/external: add Linaro ARM BE " Yann E. MORIN
2015-03-28 15:27 ` [Buildroot] [PATCH 3/3 v2] toolchain/external: add Linaro AArch64 2014.11 Yann E. MORIN
2 siblings, 1 reply; 6+ messages in thread
From: Yann E. MORIN @ 2015-03-28 15:27 UTC (permalink / raw)
To: buildroot
This toolchain has a kind of hstory of its own... ;-(
First released in November 2014, it was completely broken, and Thomas
opened a bug report. Here's the story (for reference):
https://plus.google.com/+ThomasPetazzoni/posts/SjFkrX3ow5M
https://bugs.linaro.org/show_bug.cgi?id=862
since then, the release has been re-done, and the issue reported above
has been fixed. This makes that toolchain almost usable by Buildroot,
with just a few little nits:
- it is available only for x86_64 hosts
- the toolchain is split in three parts:
- the main archive, with the tools and a minimalist sysroot with
just the strictly required stuff (e.g. just the C library and most
libs as static libs, i.e. no shared libs but libc.so)
- a secondary archive, with the complete sysroot , duplicationg most
previously existing files in the minimal sysroot, above
- a tertiary archive, with the 'runtime' content (whatever that
could mean...); that one seems completely unnecessary for
Buildroot.
- the sys/types.h headers from the main sysroot is correct, while the
one from the secondary archive (thus overwriting the main one) is
broken, as it removes the definition of caddr_t (why? WHY?).
- there's a stray backup file for libstdc++
So, add this new toolchain with three post-extract hooks, one to extract
the secondary, sysroot archive, the second to restore sys/types.h to a
useable state, and the third to remove the backup file.
(Note: we're doing it in three hooks, because the cleanup hook is
different for the AArch64 toolchain, coming soon...)
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
toolchain/toolchain-external/Config.in | 27 +++++++++++++++++++++
.../toolchain-external/toolchain-external.hash | 2 ++
toolchain/toolchain-external/toolchain-external.mk | 28 ++++++++++++++++++++++
3 files changed, 57 insertions(+)
diff --git a/toolchain/toolchain-external/Config.in b/toolchain/toolchain-external/Config.in
index 8b0f09b..199b6ab 100644
--- a/toolchain/toolchain-external/Config.in
+++ b/toolchain/toolchain-external/Config.in
@@ -6,6 +6,32 @@ choice
comment "(e)glibc toolchains only available with shared lib support"
depends on BR2_STATIC_LIBS
+config BR2_TOOLCHAIN_EXTERNAL_LINARO_ARM_2014_11
+ bool "Linaro arm 2014.11"
+ depends on BR2_arm
+ depends on BR2_ARM_CPU_ARMV7A
+ depends on BR2_HOSTARCH = "x86_64"
+ depends on BR2_ARM_EABIHF
+ depends on !BR2_STATIC_LIBS
+ select BR2_TOOLCHAIN_EXTERNAL_GLIBC
+ select BR2_TOOLCHAIN_HAS_NATIVE_RPC
+ select BR2_INSTALL_LIBSTDCPP
+ select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17
+ help
+ Linaro toolchain for the ARM architecture. It uses Linaro
+ GCC 2014.11 (based on gcc 4.9), Linaro GDB 2014.11 (based on
+ GDB 7.8), Linaro glibc 2014.11 (based on glibc2.20), Linaro
+ Binutils 2014.09 (based on 2.24). It generates code that runs
+ on all Cortex-A profile devices, but tuned for the Cortex-A9.
+ The code generated is Thumb 2, with the hard floating point
+ calling convention, and uses the VFPv3-D16 FPU instructions.
+
+comment "Linaro toolchain 2014.11 available only on x86_64 hosts"
+ depends on BR2_arm
+ depends on !BR2_ARM_CPU_ARMV7A || !BR2_ARM_EABIHF
+ depends on !BR2_STATIC_LIBS
+ depends on BR2_HOSTARCH != "x86_64"
+
config BR2_TOOLCHAIN_EXTERNAL_LINARO_ARM
bool "Linaro ARM 2014.09"
depends on BR2_arm
@@ -948,6 +974,7 @@ config BR2_TOOLCHAIN_EXTERNAL_PREFIX
string
default "arc-linux" if BR2_TOOLCHAIN_EXTERNAL_SYNOPSYS_ARC_2014_12 && BR2_arcle
default "arceb-linux" if BR2_TOOLCHAIN_EXTERNAL_SYNOPSYS_ARC_2014_12 && BR2_arceb
+ default "arm-linux-gnueabihf" if BR2_TOOLCHAIN_EXTERNAL_LINARO_ARM_2014_11
default "arm-linux-gnueabihf" if BR2_TOOLCHAIN_EXTERNAL_LINARO_ARM
default "armeb-linux-gnueabihf" if BR2_TOOLCHAIN_EXTERNAL_LINARO_ARMEB
default "arm-none-linux-gnueabi" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM201305
diff --git a/toolchain/toolchain-external/toolchain-external.hash b/toolchain/toolchain-external/toolchain-external.hash
index 7362b81..1a0c0f3 100644
--- a/toolchain/toolchain-external/toolchain-external.hash
+++ b/toolchain/toolchain-external/toolchain-external.hash
@@ -51,6 +51,8 @@ sha256 f2febf3b3c565536461ad4405f1bcb835d75a6afb2a8bec958a1248cb4b81fc7 arago-2
sha256 254af7d02eb3bcc8345c78e131700bc995d65b68232caaed21150a5fd1456070 arago-2011.09-armv5te-linux-gnueabi-sdk.tar.bz2
# ARM and Aarch64 toolchains from Linaro
+sha256 bc4ca2ced084d2dc12424815a4442e19cb1422db87068830305d90075feb1a3b gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf.tar.xz
+sha256 c85cda17fcf6e83cfb35bab646ebce7061edd15ae0b796f2f616cb61e92b4e61 sysroot-linaro-eglibc-gcc4.9-2014.11-arm-linux-gnueabihf.tar.xz
sha256 0cffac0caea0eb3c8bdddfa14be011ce366680f40aeddbefc7cf23cb6d4f1891 gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux.tar.xz
sha256 4bc9d86390f8fa67a693ba4768ba5b12faaf7dd37c706c05ccd9321e765226e4 gcc-linaro-armeb-linux-gnueabihf-4.9-2014.09_linux.tar.xz
sha256 3954f496ab01de67241109e82abfaa9b7625fdab4f05e79e7902e9814a07b832 gcc-linaro-aarch64-linux-gnu-4.9-2014.09_linux.tar.xz
diff --git a/toolchain/toolchain-external/toolchain-external.mk b/toolchain/toolchain-external/toolchain-external.mk
index c0429bb..3c40797 100644
--- a/toolchain/toolchain-external/toolchain-external.mk
+++ b/toolchain/toolchain-external/toolchain-external.mk
@@ -253,6 +253,26 @@ define TOOLCHAIN_EXTERNAL_LINARO_AARCH64_SYMLINK
ln -sf . $(TARGET_DIR)/usr/lib/aarch64-linux-gnu
endef
+# The Linaro 2014.11 toolchains are split in two parts:
+# - the main archive, contains compiler and other tools, plus a minimal
+# sysroot without a lot of share dlibs (e.g. libstdc++.so)
+# - a secondrary archive with another part of the sysroot (in that both
+# the intersection and exclusion are non-empty)
+# The standard package infra handles the main archive, and we use a
+# post-extract hook to extract the secondary, sysroot archive
+define TOOLCHAIN_EXTERNAL_LINARO_2014_11_EXTRACT_SYSROOT
+ $(call suitable-extractor,$(TOOLCHAIN_EXTERNAL_EXTRA_DOWNLOADS)) $(DL_DIR)/$(TOOLCHAIN_EXTERNAL_EXTRA_DOWNLOADS) | \
+ $(TAR) $(TAR_STRIP_COMPONENTS)=1 --hard-dereference -C $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)/libc $(TAR_OPTIONS) -
+endef
+# The sysroot archive is kinda broken, keep the pieces together...
+define TOOLCHAIN_EXTERNAL_LINARO_2014_11_FIX_TYPES_H
+ $(SED) 's/\(typedef __daddr_t daddr_t;\)/\1\ntypedef __caddr_t caddr_t;/' \
+ $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)/libc/usr/include/sys/types.h
+endef
+define TOOLCHAIN_EXTERNAL_LINARO_2014_11_CLEAN_UP_32
+ rm -f $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)/libc/usr/lib/libgcc_s.so.1.backup
+endef
+
ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM201305),y)
TOOLCHAIN_EXTERNAL_SITE = http://sourcery.mentor.com/public/gnu_toolchain/arm-none-linux-gnueabi
TOOLCHAIN_EXTERNAL_SOURCE = arm-2013.05-24-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
@@ -276,6 +296,14 @@ define TOOLCHAIN_EXTERNAL_FIXUP_CMDS
mv $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)/arago-2011.09/armv5te/* $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)/
rm -rf $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)/arago-2011.09/
endef
+else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_LINARO_ARM_2014_11),y)
+TOOLCHAIN_EXTERNAL_SITE = http://releases.linaro.org/14.11/components/toolchain/binaries/arm-linux-gnueabihf/
+TOOLCHAIN_EXTERNAL_SOURCE = gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf.tar.xz
+TOOLCHAIN_EXTERNAL_EXTRA_DOWNLOADS = sysroot-linaro-eglibc-gcc4.9-2014.11-arm-linux-gnueabihf.tar.xz
+TOOLCHAIN_EXTERNAL_POST_EXTRACT_HOOKS += \
+ TOOLCHAIN_EXTERNAL_LINARO_2014_11_EXTRACT_SYSROOT \
+ TOOLCHAIN_EXTERNAL_LINARO_2014_11_FIX_TYPES_H \
+ TOOLCHAIN_EXTERNAL_LINARO_2014_11_CLEAN_UP_32
else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_LINARO_ARM),y)
TOOLCHAIN_EXTERNAL_SITE = http://releases.linaro.org/14.09/components/toolchain/binaries
TOOLCHAIN_EXTERNAL_SOURCE = gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux.tar.xz
--
1.9.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH 2/3 v2] toolchain/external: add Linaro ARM BE 2014.11 ARMv7 EABIhf
2015-03-28 15:27 [Buildroot] [PATCH 0/3 v2] toolchain/external: add Linaro 2014.11 (branch yem/toolchain-linaro-2014.11) Yann E. MORIN
2015-03-28 15:27 ` [Buildroot] [PATCH 1/3 v2] toolchain/external: add Linaro ARM 2014.11 ARMv7 EABIhf Yann E. MORIN
@ 2015-03-28 15:27 ` Yann E. MORIN
2015-03-28 15:27 ` [Buildroot] [PATCH 3/3 v2] toolchain/external: add Linaro AArch64 2014.11 Yann E. MORIN
2 siblings, 0 replies; 6+ messages in thread
From: Yann E. MORIN @ 2015-03-28 15:27 UTC (permalink / raw)
To: buildroot
Suffers from the same deficiencies as the just-introduced LE variant.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
toolchain/toolchain-external/Config.in | 27 ++++++++++++++++++++++
.../toolchain-external/toolchain-external.hash | 2 ++
toolchain/toolchain-external/toolchain-external.mk | 8 +++++++
3 files changed, 37 insertions(+)
diff --git a/toolchain/toolchain-external/Config.in b/toolchain/toolchain-external/Config.in
index 199b6ab..c1ed5c2 100644
--- a/toolchain/toolchain-external/Config.in
+++ b/toolchain/toolchain-external/Config.in
@@ -58,6 +58,32 @@ comment "Linaro toolchains available for Cortex-A + EABIhf"
depends on !BR2_ARM_CPU_ARMV7A || !BR2_ARM_EABIHF
depends on !BR2_STATIC_LIBS
+config BR2_TOOLCHAIN_EXTERNAL_LINARO_ARMEB_2014_11
+ bool "Linaro armeb 2014.11"
+ depends on BR2_armeb
+ depends on BR2_ARM_CPU_ARMV7A
+ depends on BR2_HOSTARCH = "x86_64"
+ depends on BR2_ARM_EABIHF
+ depends on !BR2_STATIC_LIBS
+ select BR2_TOOLCHAIN_EXTERNAL_GLIBC
+ select BR2_TOOLCHAIN_HAS_NATIVE_RPC
+ select BR2_INSTALL_LIBSTDCPP
+ select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17
+ help
+ Linaro toolchain for the ARM big endian architecture. It
+ uses Linaro GCC 2014.11 (based on gcc 4.9), Linaro GDB 2014.11
+ (based on GDB 7.8), Linaro glibc 2014.11 (based on glibc2.20),
+ Linaro Binutils 2014.09 (based on 2.24). It generates code that
+ runs on all Cortex-A profile devices, but tuned for the Cortex-A9.
+ The code generated is Thumb 2, with the hard floating point
+ calling convention, and uses the VFPv3-D16 FPU instructions.
+
+comment "Linaro toolchain 2014.11 available only on x86_64 hosts"
+ depends on BR2_armeb
+ depends on !BR2_ARM_CPU_ARMV7A || !BR2_ARM_EABIHF
+ depends on !BR2_STATIC_LIBS
+ depends on BR2_HOSTARCH != "x86_64"
+
config BR2_TOOLCHAIN_EXTERNAL_LINARO_ARMEB
bool "Linaro armeb 2014.09"
depends on BR2_armeb
@@ -975,6 +1001,7 @@ config BR2_TOOLCHAIN_EXTERNAL_PREFIX
default "arc-linux" if BR2_TOOLCHAIN_EXTERNAL_SYNOPSYS_ARC_2014_12 && BR2_arcle
default "arceb-linux" if BR2_TOOLCHAIN_EXTERNAL_SYNOPSYS_ARC_2014_12 && BR2_arceb
default "arm-linux-gnueabihf" if BR2_TOOLCHAIN_EXTERNAL_LINARO_ARM_2014_11
+ default "armeb-linux-gnueabihf" if BR2_TOOLCHAIN_EXTERNAL_LINARO_ARMEB_2014_11
default "arm-linux-gnueabihf" if BR2_TOOLCHAIN_EXTERNAL_LINARO_ARM
default "armeb-linux-gnueabihf" if BR2_TOOLCHAIN_EXTERNAL_LINARO_ARMEB
default "arm-none-linux-gnueabi" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM201305
diff --git a/toolchain/toolchain-external/toolchain-external.hash b/toolchain/toolchain-external/toolchain-external.hash
index 1a0c0f3..d1cf56a 100644
--- a/toolchain/toolchain-external/toolchain-external.hash
+++ b/toolchain/toolchain-external/toolchain-external.hash
@@ -53,6 +53,8 @@ sha256 254af7d02eb3bcc8345c78e131700bc995d65b68232caaed21150a5fd1456070 arago-2
# ARM and Aarch64 toolchains from Linaro
sha256 bc4ca2ced084d2dc12424815a4442e19cb1422db87068830305d90075feb1a3b gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf.tar.xz
sha256 c85cda17fcf6e83cfb35bab646ebce7061edd15ae0b796f2f616cb61e92b4e61 sysroot-linaro-eglibc-gcc4.9-2014.11-arm-linux-gnueabihf.tar.xz
+sha256 f1b8cc025864d0213e88f0821b50d663d2428d31ea78eb38446d2042c8a49a74 gcc-linaro-4.9-2014.11-x86_64_armeb-linux-gnueabihf.tar.xz
+sha256 56a75abfb229d2d2f05a884212669a543a873c76aab4c0c8d1ebe71b8074803d sysroot-linaro-eglibc-gcc4.9-2014.11-armeb-linux-gnueabihf.tar.xz
sha256 0cffac0caea0eb3c8bdddfa14be011ce366680f40aeddbefc7cf23cb6d4f1891 gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux.tar.xz
sha256 4bc9d86390f8fa67a693ba4768ba5b12faaf7dd37c706c05ccd9321e765226e4 gcc-linaro-armeb-linux-gnueabihf-4.9-2014.09_linux.tar.xz
sha256 3954f496ab01de67241109e82abfaa9b7625fdab4f05e79e7902e9814a07b832 gcc-linaro-aarch64-linux-gnu-4.9-2014.09_linux.tar.xz
diff --git a/toolchain/toolchain-external/toolchain-external.mk b/toolchain/toolchain-external/toolchain-external.mk
index 3c40797..2dd419e 100644
--- a/toolchain/toolchain-external/toolchain-external.mk
+++ b/toolchain/toolchain-external/toolchain-external.mk
@@ -304,6 +304,14 @@ TOOLCHAIN_EXTERNAL_POST_EXTRACT_HOOKS += \
TOOLCHAIN_EXTERNAL_LINARO_2014_11_EXTRACT_SYSROOT \
TOOLCHAIN_EXTERNAL_LINARO_2014_11_FIX_TYPES_H \
TOOLCHAIN_EXTERNAL_LINARO_2014_11_CLEAN_UP_32
+else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_LINARO_ARMEB_2014_11),y)
+TOOLCHAIN_EXTERNAL_SITE = http://releases.linaro.org/14.11/components/toolchain/binaries/armeb-linux-gnueabihf
+TOOLCHAIN_EXTERNAL_SOURCE = gcc-linaro-4.9-2014.11-x86_64_armeb-linux-gnueabihf.tar.xz
+TOOLCHAIN_EXTERNAL_EXTRA_DOWNLOADS = sysroot-linaro-eglibc-gcc4.9-2014.11-armeb-linux-gnueabihf.tar.xz
+TOOLCHAIN_EXTERNAL_POST_EXTRACT_HOOKS += \
+ TOOLCHAIN_EXTERNAL_LINARO_2014_11_EXTRACT_SYSROOT \
+ TOOLCHAIN_EXTERNAL_LINARO_2014_11_FIX_TYPES_H \
+ TOOLCHAIN_EXTERNAL_LINARO_2014_11_CLEAN_UP_32
else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_LINARO_ARM),y)
TOOLCHAIN_EXTERNAL_SITE = http://releases.linaro.org/14.09/components/toolchain/binaries
TOOLCHAIN_EXTERNAL_SOURCE = gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux.tar.xz
--
1.9.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH 3/3 v2] toolchain/external: add Linaro AArch64 2014.11
2015-03-28 15:27 [Buildroot] [PATCH 0/3 v2] toolchain/external: add Linaro 2014.11 (branch yem/toolchain-linaro-2014.11) Yann E. MORIN
2015-03-28 15:27 ` [Buildroot] [PATCH 1/3 v2] toolchain/external: add Linaro ARM 2014.11 ARMv7 EABIhf Yann E. MORIN
2015-03-28 15:27 ` [Buildroot] [PATCH 2/3 v2] toolchain/external: add Linaro ARM BE " Yann E. MORIN
@ 2015-03-28 15:27 ` Yann E. MORIN
2 siblings, 0 replies; 6+ messages in thread
From: Yann E. MORIN @ 2015-03-28 15:27 UTC (permalink / raw)
To: buildroot
Suffers from the same deficiencies as the just-introduced ARMv7 variants.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
toolchain/toolchain-external/Config.in | 19 +++++++++++++++++++
toolchain/toolchain-external/toolchain-external.hash | 2 ++
toolchain/toolchain-external/toolchain-external.mk | 11 +++++++++++
3 files changed, 32 insertions(+)
diff --git a/toolchain/toolchain-external/Config.in b/toolchain/toolchain-external/Config.in
index c1ed5c2..f32504b 100644
--- a/toolchain/toolchain-external/Config.in
+++ b/toolchain/toolchain-external/Config.in
@@ -882,6 +882,24 @@ config BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_2012R2
Toolchain for the Blackfin architecture, from
http://blackfin.uclinux.org.
+config BR2_TOOLCHAIN_EXTERNAL_LINARO_AARCH64_2014_11
+ bool "Linaro AArch64 14.11"
+ depends on BR2_aarch64
+ depends on BR2_HOSTARCH = "x86_64"
+ depends on !BR2_STATIC_LIBS
+ select BR2_TOOLCHAIN_EXTERNAL_GLIBC
+ select BR2_INSTALL_LIBSTDCPP
+ select BR2_TOOLCHAIN_HAS_NATIVE_RPC
+ select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17
+ help
+ Toolchain for the AArch64 architecture, from
+ http://www.linaro.org/engineering/armv8/
+
+comment "Linaro toolchain 2014.11 available only on x86_64 hosts"
+ depends on BR2_aarch64
+ depends on BR2_HOSTARCH != "x86_64"
+ depends on !BR2_STATIC_LIBS
+
config BR2_TOOLCHAIN_EXTERNAL_LINARO_AARCH64
bool "Linaro AArch64 14.09"
depends on BR2_aarch64
@@ -1009,6 +1027,7 @@ config BR2_TOOLCHAIN_EXTERNAL_PREFIX
default "arm-none-linux-gnueabi" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM201405
default "arm-arago-linux-gnueabi" if BR2_TOOLCHAIN_EXTERNAL_ARAGO_ARMV7A_201109
default "arm-arago-linux-gnueabi" if BR2_TOOLCHAIN_EXTERNAL_ARAGO_ARMV5TE_201109
+ default "aarch64-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_LINARO_AARCH64_2014_11
default "aarch64-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_LINARO_AARCH64
default "aarch64-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64
default "mips-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS201311
diff --git a/toolchain/toolchain-external/toolchain-external.hash b/toolchain/toolchain-external/toolchain-external.hash
index d1cf56a..15de8e3 100644
--- a/toolchain/toolchain-external/toolchain-external.hash
+++ b/toolchain/toolchain-external/toolchain-external.hash
@@ -57,6 +57,8 @@ sha256 f1b8cc025864d0213e88f0821b50d663d2428d31ea78eb38446d2042c8a49a74 gcc-lin
sha256 56a75abfb229d2d2f05a884212669a543a873c76aab4c0c8d1ebe71b8074803d sysroot-linaro-eglibc-gcc4.9-2014.11-armeb-linux-gnueabihf.tar.xz
sha256 0cffac0caea0eb3c8bdddfa14be011ce366680f40aeddbefc7cf23cb6d4f1891 gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux.tar.xz
sha256 4bc9d86390f8fa67a693ba4768ba5b12faaf7dd37c706c05ccd9321e765226e4 gcc-linaro-armeb-linux-gnueabihf-4.9-2014.09_linux.tar.xz
+sha256 56d9f810fe48826d1247a0c44f4f5847ff9a092c45b9a0678253f04c17329596 gcc-linaro-4.9-2014.11-x86_64_aarch64-linux-gnu.tar.xz
+sha256 4c8022e271ba1d75eb722623a94f6e63ab0a08048a2a6c2fce32ed13aece58eb sysroot-linaro-eglibc-gcc4.9-2014.11-aarch64-linux-gnu.tar.xz
sha256 3954f496ab01de67241109e82abfaa9b7625fdab4f05e79e7902e9814a07b832 gcc-linaro-aarch64-linux-gnu-4.9-2014.09_linux.tar.xz
# Synopsys DesignWare ARC toolchains
diff --git a/toolchain/toolchain-external/toolchain-external.mk b/toolchain/toolchain-external/toolchain-external.mk
index 2dd419e..d12c668 100644
--- a/toolchain/toolchain-external/toolchain-external.mk
+++ b/toolchain/toolchain-external/toolchain-external.mk
@@ -272,6 +272,9 @@ endef
define TOOLCHAIN_EXTERNAL_LINARO_2014_11_CLEAN_UP_32
rm -f $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)/libc/usr/lib/libgcc_s.so.1.backup
endef
+define TOOLCHAIN_EXTERNAL_LINARO_2014_11_CLEAN_UP_64
+ rm -f $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)/libc/usr/lib64/libgcc_s.so.1.backup
+endef
ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM201305),y)
TOOLCHAIN_EXTERNAL_SITE = http://sourcery.mentor.com/public/gnu_toolchain/arm-none-linux-gnueabi
@@ -384,6 +387,14 @@ else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_2014R1),y)
TOOLCHAIN_EXTERNAL_SITE = http://downloads.sourceforge.net/project/adi-toolchain/2014R1/2014R1-RC2/i386
TOOLCHAIN_EXTERNAL_SOURCE = blackfin-toolchain-2014R1-RC2.i386.tar.bz2
TOOLCHAIN_EXTERNAL_EXTRA_DOWNLOADS = blackfin-toolchain-uclibc-full-2014R1-RC2.i386.tar.bz2
+else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_LINARO_AARCH64_2014_11),y)
+TOOLCHAIN_EXTERNAL_SITE = http://releases.linaro.org/14.11/components/toolchain/binaries/aarch64-linux-gnu
+TOOLCHAIN_EXTERNAL_SOURCE = gcc-linaro-4.9-2014.11-x86_64_aarch64-linux-gnu.tar.xz
+TOOLCHAIN_EXTERNAL_EXTRA_DOWNLOADS = sysroot-linaro-eglibc-gcc4.9-2014.11-aarch64-linux-gnu.tar.xz
+TOOLCHAIN_EXTERNAL_POST_EXTRACT_HOOKS += \
+ TOOLCHAIN_EXTERNAL_LINARO_2014_11_EXTRACT_SYSROOT \
+ TOOLCHAIN_EXTERNAL_LINARO_2014_11_FIX_TYPES_H \
+ TOOLCHAIN_EXTERNAL_LINARO_2014_11_CLEAN_UP_64
else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_LINARO_AARCH64),y)
TOOLCHAIN_EXTERNAL_SITE = http://releases.linaro.org/14.09/components/toolchain/binaries
TOOLCHAIN_EXTERNAL_SOURCE = gcc-linaro-aarch64-linux-gnu-4.9-2014.09_linux.tar.xz
--
1.9.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH 1/3 v2] toolchain/external: add Linaro ARM 2014.11 ARMv7 EABIhf
2015-03-28 15:27 ` [Buildroot] [PATCH 1/3 v2] toolchain/external: add Linaro ARM 2014.11 ARMv7 EABIhf Yann E. MORIN
@ 2015-03-29 11:11 ` Thomas Petazzoni
2015-03-29 11:23 ` Yann E. MORIN
0 siblings, 1 reply; 6+ messages in thread
From: Thomas Petazzoni @ 2015-03-29 11:11 UTC (permalink / raw)
To: buildroot
Dear Yann E. MORIN,
On Sat, 28 Mar 2015 16:27:10 +0100, Yann E. MORIN wrote:
> - it is available only for x86_64 hosts
>
> - the toolchain is split in three parts:
> - the main archive, with the tools and a minimalist sysroot with
> just the strictly required stuff (e.g. just the C library and most
> libs as static libs, i.e. no shared libs but libc.so)
> - a secondary archive, with the complete sysroot , duplicationg most
> previously existing files in the minimal sysroot, above
> - a tertiary archive, with the 'runtime' content (whatever that
> could mean...); that one seems completely unnecessary for
> Buildroot.
>
> - the sys/types.h headers from the main sysroot is correct, while the
> one from the secondary archive (thus overwriting the main one) is
> broken, as it removes the definition of caddr_t (why? WHY?).
Can you report this bug to the Linaro folks?
>
> - there's a stray backup file for libstdc++
I already reported the stray backup file issue, but as part of my
original bug report. Maybe we should report it as a separate bug.
> +config BR2_TOOLCHAIN_EXTERNAL_LINARO_ARM_2014_11
> + bool "Linaro arm 2014.11"
For Linaro toolchains, we've stopped adding version-specific Config.in
options. At any given time, we support only one Linaro toolchain, under
the option BR2_TOOLCHAIN_EXTERNAL_LINARO_ARM.
> +# The Linaro 2014.11 toolchains are split in two parts:
> +# - the main archive, contains compiler and other tools, plus a minimal
No comma between 'archive' and 'contains'.
> +# sysroot without a lot of share dlibs (e.g. libstdc++.so)
> +# - a secondrary archive with another part of the sysroot (in that both
secondary
> +# the intersection and exclusion are non-empty)
"in that both the intersection and exclusion are non-empty" ?!?
> +# The standard package infra handles the main archive, and we use a
> +# post-extract hook to extract the secondary, sysroot archive
> +define TOOLCHAIN_EXTERNAL_LINARO_2014_11_EXTRACT_SYSROOT
> + $(call suitable-extractor,$(TOOLCHAIN_EXTERNAL_EXTRA_DOWNLOADS)) $(DL_DIR)/$(TOOLCHAIN_EXTERNAL_EXTRA_DOWNLOADS) | \
> + $(TAR) $(TAR_STRIP_COMPONENTS)=1 --hard-dereference -C $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)/libc $(TAR_OPTIONS) -
> +endef
> +# The sysroot archive is kinda broken, keep the pieces together...
Maybe be more specific here about what is being done rather than just
"let's fix the breakage".
> +define TOOLCHAIN_EXTERNAL_LINARO_2014_11_FIX_TYPES_H
> + $(SED) 's/\(typedef __daddr_t daddr_t;\)/\1\ntypedef __caddr_t caddr_t;/' \
> + $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)/libc/usr/include/sys/types.h
> +endef
> +define TOOLCHAIN_EXTERNAL_LINARO_2014_11_CLEAN_UP_32
> + rm -f $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)/libc/usr/lib/libgcc_s.so.1.backup
> +endef
Thanks,
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH 1/3 v2] toolchain/external: add Linaro ARM 2014.11 ARMv7 EABIhf
2015-03-29 11:11 ` Thomas Petazzoni
@ 2015-03-29 11:23 ` Yann E. MORIN
0 siblings, 0 replies; 6+ messages in thread
From: Yann E. MORIN @ 2015-03-29 11:23 UTC (permalink / raw)
To: buildroot
Thomas, All,
On 2015-03-29 13:11 +0200, Thomas Petazzoni spake thusly:
> On Sat, 28 Mar 2015 16:27:10 +0100, Yann E. MORIN wrote:
>
> > - it is available only for x86_64 hosts
> >
> > - the toolchain is split in three parts:
> > - the main archive, with the tools and a minimalist sysroot with
> > just the strictly required stuff (e.g. just the C library and most
> > libs as static libs, i.e. no shared libs but libc.so)
> > - a secondary archive, with the complete sysroot , duplicationg most
> > previously existing files in the minimal sysroot, above
> > - a tertiary archive, with the 'runtime' content (whatever that
> > could mean...); that one seems completely unnecessary for
> > Buildroot.
> >
> > - the sys/types.h headers from the main sysroot is correct, while the
> > one from the secondary archive (thus overwriting the main one) is
> > broken, as it removes the definition of caddr_t (why? WHY?).
>
> Can you report this bug to the Linaro folks?
ACK, will do.
> > - there's a stray backup file for libstdc++
> I already reported the stray backup file issue, but as part of my
> original bug report. Maybe we should report it as a separate bug.
ACK, will do.
> > +config BR2_TOOLCHAIN_EXTERNAL_LINARO_ARM_2014_11
> > + bool "Linaro arm 2014.11"
>
> For Linaro toolchains, we've stopped adding version-specific Config.in
> options. At any given time, we support only one Linaro toolchain, under
> the option BR2_TOOLCHAIN_EXTERNAL_LINARO_ARM.
Well, because the 2014.11 is kinda new and a bit broken so far, I wanted
to keep the 2014.09 as a backup, in case I missed issues with 2014.11.
I was able to build quite a lot of stuff with it, like the full Kodi
suite and the whole of Qt5, but QtWebKit, which should exercise the
compiler pretty well, but there might still be issues lurking around.
Hence adding it instead of replacing.
But if you really want we replace the existing one, I'm OK.
> > +# sysroot without a lot of share dlibs (e.g. libstdc++.so)
> > +# - a secondrary archive with another part of the sysroot (in that both
> > +# the intersection and exclusion are non-empty)
> "in that both the intersection and exclusion are non-empty" ?!?
Well, it means the set of files in the sysroot archive is not a superset
of the sysroot files of the main archive:
- main archive's sysroot: [----------------]
- secondary archive's sysroot: [-----------------------]
- intersection: [-----------]
- exclusion: [----] [-----------]
> > +# The standard package infra handles the main archive, and we use a
> > +# post-extract hook to extract the secondary, sysroot archive
> > +define TOOLCHAIN_EXTERNAL_LINARO_2014_11_EXTRACT_SYSROOT
> > + $(call suitable-extractor,$(TOOLCHAIN_EXTERNAL_EXTRA_DOWNLOADS)) $(DL_DIR)/$(TOOLCHAIN_EXTERNAL_EXTRA_DOWNLOADS) | \
> > + $(TAR) $(TAR_STRIP_COMPONENTS)=1 --hard-dereference -C $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)/libc $(TAR_OPTIONS) -
> > +endef
> > +# The sysroot archive is kinda broken, keep the pieces together...
>
> Maybe be more specific here about what is being done rather than just
> "let's fix the breakage".
ACK, will do.
Thanks! :-)
Regards,
Yann E. MORIN.
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2015-03-29 11:23 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-03-28 15:27 [Buildroot] [PATCH 0/3 v2] toolchain/external: add Linaro 2014.11 (branch yem/toolchain-linaro-2014.11) Yann E. MORIN
2015-03-28 15:27 ` [Buildroot] [PATCH 1/3 v2] toolchain/external: add Linaro ARM 2014.11 ARMv7 EABIhf Yann E. MORIN
2015-03-29 11:11 ` Thomas Petazzoni
2015-03-29 11:23 ` Yann E. MORIN
2015-03-28 15:27 ` [Buildroot] [PATCH 2/3 v2] toolchain/external: add Linaro ARM BE " Yann E. MORIN
2015-03-28 15:27 ` [Buildroot] [PATCH 3/3 v2] toolchain/external: add Linaro AArch64 2014.11 Yann E. MORIN
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox