Skip to contentSkip to conversation

toolchain/external: add Linaro 2014.11 for ARMv7 BE/LE EABIhf and AArch64 (branch yem/toolchain-linaro-2014.11)

PATCH New Yann E. MORIN 3 participants 6 messages Sep 7, 2015 – Sep 20, 2015

lore
Share & tools
lore
#0 lore raw

v3 cover toolchain/external: add Linaro 2014.11 for ARMv7 BE/LE EABIhf and AArch64 (branch yem/toolchain-linaro-2014.11)

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.

Notes: I haven't had the opportunity to report the issues to Linaro for now. :-/ I'll try to do that soon...

Changes v2 -> v3:
- fix comments about secondary tarball (Thomas)
- expand comments about post-extract hooks (Thomas)
- fix typoes (Thomas)

Changes v1 -> v2:
- remove stray backup file

Regards,
Yann E. MORIN.

The following changes since commit 3cd209bfaf4c7af47ce9ddfe1fd2b0d82d30909d:

docs: website: update for 2015.08.1 (2015-09-06 23:09:12 +0200)

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 7d7abe73fcf0fc9420ba27ec0b069ad97f747b63:

toolchain/external: add Linaro AArch64 2014.11 (2015-09-06 23:11:37 +0200)

----------------------------------------------------------------
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             | 63 +++++++++++++++-----
 .../toolchain-external/toolchain-external.hash     |  6 ++
 toolchain/toolchain-external/toolchain-external.mk | 69 ++++++++++++++--------
 3 files changed, 100 insertions(+), 38 deletions(-)
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  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.  |
'------------------------------^-------^------------------^--------------------'
#1 lore raw

PATCH v3 1/3 toolchain/external: add Linaro ARM 2014.11 ARMv7 EABIhf

This toolchain has a kind of history 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, duplicating most previously existing files in the minimal sysroot, above, and expending it with the shared libs, the gconv modules and many other "things";
- 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?). (reported as https://bugs.linaro.org/show_bug.cgi?id=1417 )

- there's a stray backup file for libstdc++

    (reported as https://bugs.linaro.org/show_bug.cgi?id=1418 )

So, add this new toolchain as a replacement for the previous 2014.09 one.

We add 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...)

Cc Thomas Petazzoni <[email protected]>

---
Changes v2 -> v3:
- fix comment about secondary sysroot (Thomas)
- expand comment about post-extract hooks (Thomas)
- fix typoes (Thomas)

---
 toolchain/toolchain-external/Config.in             | 23 ++++++------
 .../toolchain-external/toolchain-external.hash     |  2 ++
 toolchain/toolchain-external/toolchain-external.mk | 41 +++++++++++++++++-----
 3 files changed, 47 insertions(+), 19 deletions(-)
toolchain/toolchain-external/Config.in +12 -11
index e7aed2e..a17b0a2 100644
@@ -7,31 +7,31 @@ comment "(e)glibc toolchains only available with shared lib support"
 	depends on BR2_STATIC_LIBS
 
 config BR2_TOOLCHAIN_EXTERNAL_LINARO_ARM
-	bool "Linaro ARM 2014.09"
+	bool "Linaro arm 2014.11"
 	depends on BR2_arm
 	depends on BR2_ARM_CPU_ARMV7A
-	depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
+	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_HOSTARCH_NEEDS_IA32_LIBS
-	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_1
+	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17
 	select BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
 	help
 	  Linaro toolchain for the ARM architecture. It uses Linaro
-	  GCC 2014.09 (based on gcc 4.9), Linaro GDB 2013.10 (based on
-	  GDB 7.6), eglibc 2.19, 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.
+	  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 toolchains available for Cortex-A + EABIhf"
+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_ARMEB
 	bool "Linaro armeb 2014.09"
@@ -934,6 +934,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
toolchain/toolchain-external/toolchain-external.hash +2 -0
index 3980c62..6734b00 100644
@@ -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
toolchain/toolchain-external/toolchain-external.mk +33 -8

59 lines not on this page · raw message

Signature · 1 line
1.9.1
#2 lore raw

PATCH v3 1/3 toolchain/external: add Linaro ARM 2014.11 ARMv7 EABIhf

Quoted 10 lines · Yann E. MORIN

This toolchain has a kind of history 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:

Sorry to destroy all your work, but why bother with this toolchain at all? The
Linaro website points to 2015.02 and they already created two updates to that release, so I guess it is stable. Also, at first sight, the tarball looks a lot more sane than this 2014.11 release... There are still separate runtime and sysroot tarballs, but they are subsets of the gcc tarball.

Quoted 2 lines

- it is available only for x86_64 hosts

That is still the case though.

Quoted 93 lines

- 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, duplicating most previously existing files in the minimal sysroot, above, and expending it with the shared libs, the gconv modules and many other "things";
- 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?). (reported as https://bugs.linaro.org/show_bug.cgi?id=1417 )

- there's a stray backup file for libstdc++

    (reported as https://bugs.linaro.org/show_bug.cgi?id=1418 )

So, add this new toolchain as a replacement for the previous 2014.09 one.

We add 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...)

Cc Thomas Petazzoni <[email protected]>

---
Changes v2 -> v3:
- fix comment about secondary sysroot (Thomas)
- expand comment about post-extract hooks (Thomas)
- fix typoes (Thomas)

---
 toolchain/toolchain-external/Config.in             | 23 ++++++------
 .../toolchain-external/toolchain-external.hash     |  2 ++
 toolchain/toolchain-external/toolchain-external.mk | 41 +++++++++++++++++-----
 3 files changed, 47 insertions(+), 19 deletions(-)
toolchain/toolchain-external/Config.in +11 -11
index e7aed2e..a17b0a2 100644
@@ -7,31 +7,31 @@ comment "(e)glibc toolchains only available with shared lib support"
 	depends on BR2_STATIC_LIBS
 
 config BR2_TOOLCHAIN_EXTERNAL_LINARO_ARM
-	bool "Linaro ARM 2014.09"
+	bool "Linaro arm 2014.11"
 	depends on BR2_arm
 	depends on BR2_ARM_CPU_ARMV7A
-	depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
+	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_HOSTARCH_NEEDS_IA32_LIBS
-	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_1
+	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17
 	select BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
 	help
 	  Linaro toolchain for the ARM architecture. It uses Linaro
-	  GCC 2014.09 (based on gcc 4.9), Linaro GDB 2013.10 (based on
-	  GDB 7.6), eglibc 2.19, 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.
+	  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 toolchains available for Cortex-A + EABIhf"
+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_ARMEB
 	bool "Linaro armeb 2014.09"

toolchain/toolchain-external/Config.in config BR2_TOOLCHAIN_EXTERNAL_PREFIX · line 937

Quoted 4 lines
toolchain/toolchain-external/Config.in +1 -0
@@ -934,6 +934,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

Is it just me or does this symbol not exist?

toolchain/toolchain-external/toolchain-external.hash sha256 f2febf3b3c565536461ad4405f1bcb835d75a6afb2a8bec958a1248cb4b81fc7 arago-2 · line 54

Quoted 12 lines
toolchain/toolchain-external/Config.in +0 -0
 	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
toolchain/toolchain-external/toolchain-external.hash +1 -0
index 3980c62..6734b00 100644
@@ -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

For 2015.02, there's an md5 in
http://releases.linaro.org/15.02/components/toolchain/binaries/arm-linux-gnueabihf/gcc-linaro-4.9-2015.02-3-x86_64_arm-linux-gnueabihf.tar.xz.asc

I guess 2014.11 will have it as well.

Regards,
Arnout

Quoted 4 lines
toolchain/toolchain-external/toolchain-external.hash +1 -0
+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

[snip]

Signature · 6 lines
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF
#3 lore raw

PATCH v3 2/3 toolchain/external: add Linaro ARM BE 2014.11 ARMv7 EABIhf

In reply to Yann E. MORIN

Suffers from the same deficiencies as the just-introduced LE variant.

Cc Thomas Petazzoni <[email protected]>
---
 toolchain/toolchain-external/Config.in             | 27 ++++++++++++++++++++++
 .../toolchain-external/toolchain-external.hash     |  2 ++
 toolchain/toolchain-external/toolchain-external.mk | 19 ++++++++-------
 3 files changed, 38 insertions(+), 10 deletions(-)
toolchain/toolchain-external/Config.in +27 -0
index a17b0a2..9cd0572 100644
@@ -34,6 +34,32 @@ comment "Linaro toolchain 2014.11 available only on x86_64 hosts"
 	depends on BR2_HOSTARCH != "x86_64"
 
 config BR2_TOOLCHAIN_EXTERNAL_LINARO_ARMEB
+	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
 	depends on BR2_ARM_CPU_ARMV7A
@@ -935,6 +961,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
toolchain/toolchain-external/toolchain-external.hash +2 -0
index 6734b00..80ac049 100644
@@ -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
toolchain/toolchain-external/toolchain-external.mk +9 -10
index 10c7a46..7f62f64 100644
@@ -235,14 +235,9 @@ TOOLCHAIN_EXTERNAL_CFLAGS += -msoft-float
 TOOLCHAIN_EXTERNAL_WRAPPER_ARGS += -DBR_SOFTFLOAT=1
 endif
 
-# The Linaro ARMhf toolchain expects the libraries in
-# {/usr,}/lib/arm-linux-gnueabihf, but Buildroot copies them to
+# The Linaro AArch64 toolchain expects the libraries in
+# {/usr,}/lib/aarch64-linux-gnu, but Buildroot copies them to
 # {/usr,}/lib, so we need to create a symbolic link.
-define TOOLCHAIN_EXTERNAL_LINARO_ARMEBHF_SYMLINK
-	ln -snf . $(TARGET_DIR)/lib/armeb-linux-gnueabihf
-	ln -snf . $(TARGET_DIR)/usr/lib/armeb-linux-gnueabihf
-endef
-
 define TOOLCHAIN_EXTERNAL_LINARO_AARCH64_SYMLINK
 	ln -snf . $(TARGET_DIR)/lib/aarch64-linux-gnu
 	ln -snf . $(TARGET_DIR)/usr/lib/aarch64-linux-gnu
@@ -306,9 +301,13 @@ TOOLCHAIN_EXTERNAL_POST_EXTRACT_HOOKS += \
 	TOOLCHAIN_EXTERNAL_LINARO_2014_11_FIX_TYPES_H \
 	TOOLCHAIN_EXTERNAL_LINARO_2014_11_CLEAN_UP_32
 else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_LINARO_ARMEB),y)
-TOOLCHAIN_EXTERNAL_SITE = http://releases.linaro.org/14.09/components/toolchain/binaries
-TOOLCHAIN_EXTERNAL_SOURCE = gcc-linaro-armeb-linux-gnueabihf-4.9-2014.09_linux.tar.xz
-TOOLCHAIN_EXTERNAL_POST_INSTALL_STAGING_HOOKS += TOOLCHAIN_EXTERNAL_LINARO_ARMEBHF_SYMLINK
+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_CODESOURCERY_MIPS201405),y)
 TOOLCHAIN_EXTERNAL_SITE = http://sourcery.mentor.com/public/gnu_toolchain/mips-linux-gnu
 TOOLCHAIN_EXTERNAL_SOURCE = mips-2014.05-27-mips-linux-gnu-i686-pc-linux-gnu.tar.bz2
Signature · 1 line
1.9.1
#4 lore raw

PATCH v3 3/3 toolchain/external: add Linaro AArch64 2014.11

In reply to Yann E. MORIN

Suffers from the same deficiencies as the just-introduced ARMv7 variants.

Cc Thomas Petazzoni <[email protected]>
---
 toolchain/toolchain-external/Config.in              | 13 +++++++++----
 .../toolchain-external/toolchain-external.hash      |  2 ++
 toolchain/toolchain-external/toolchain-external.mk  | 21 ++++++++++-----------
 3 files changed, 21 insertions(+), 15 deletions(-)
toolchain/toolchain-external/Config.in +9 -4
index 9cd0572..c51f8fe 100644
@@ -836,20 +836,24 @@ config BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_2012R2
 	  http://blackfin.uclinux.org.
 
 config BR2_TOOLCHAIN_EXTERNAL_LINARO_AARCH64
-	bool "Linaro AArch64 14.09"
+	bool "Linaro AArch64 14.11"
 	depends on BR2_aarch64
-	depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
+	depends on BR2_HOSTARCH = "x86_64"
 	depends on !BR2_STATIC_LIBS
 	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
 	select BR2_INSTALL_LIBSTDCPP
-	select BR2_HOSTARCH_NEEDS_IA32_LIBS
 	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
-	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_7
+	select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17
 	select BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
 	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_CODESOURCERY_AARCH64
 	bool "CodeSourcery AArch64 2014.05"
 	depends on BR2_aarch64
@@ -969,6 +973,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_MIPS201405
toolchain/toolchain-external/toolchain-external.hash +2 -0
index 80ac049..b2aab7b 100644
@@ -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
toolchain/toolchain-external/toolchain-external.mk +10 -11
index 7f62f64..84420c3 100644
@@ -235,14 +235,6 @@ TOOLCHAIN_EXTERNAL_CFLAGS += -msoft-float
 TOOLCHAIN_EXTERNAL_WRAPPER_ARGS += -DBR_SOFTFLOAT=1
 endif
 
-# The Linaro AArch64 toolchain expects the libraries in
-# {/usr,}/lib/aarch64-linux-gnu, but Buildroot copies them to
-# {/usr,}/lib, so we need to create a symbolic link.
-define TOOLCHAIN_EXTERNAL_LINARO_AARCH64_SYMLINK
-	ln -snf . $(TARGET_DIR)/lib/aarch64-linux-gnu
-	ln -snf . $(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)
@@ -268,6 +260,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
@@ -373,9 +368,13 @@ TOOLCHAIN_EXTERNAL_SITE = http://downloads.sourceforge.net/project/adi-toolchain
 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),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
-TOOLCHAIN_EXTERNAL_POST_INSTALL_STAGING_HOOKS += TOOLCHAIN_EXTERNAL_LINARO_AARCH64_SYMLINK
+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_CODESOURCERY_AARCH64),y)
 TOOLCHAIN_EXTERNAL_SITE = http://sourcery.mentor.com/public/gnu_toolchain/aarch64-linux-gnu
 TOOLCHAIN_EXTERNAL_SOURCE = aarch64-2014.05-30-aarch64-linux-gnu-i686-pc-linux-gnu.tar.bz2
Signature · 1 line
1.9.1
#5 lore raw

v3 cover toolchain/external: add Linaro 2014.11 for ARMv7 BE/LE EABIhf and AArch64 (branch yem/toolchain-linaro-2014.11)

In reply to Yann E. MORIN

Yann,

Quoted 4 lines · Yann E. MORIN

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

Arnout said there is a newer version 2015.02, that doesn't need so many hacks. So I've marked those three patches as "Changes Requested" in patchwork.

Will you work on packaging 2015.02 ? Or should someone else pick up the task ?

Thanks!

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com