Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Arnout Vandecappelle <arnout@mind.be>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH 1/3 v3] toolchain/external: add Linaro ARM 2014.11 ARMv7 EABIhf
Date: Mon, 7 Sep 2015 23:52:37 +0200	[thread overview]
Message-ID: <55EE0725.6090107@mind.be> (raw)
In-Reply-To: <3ecce217bfa887d56f12000f80d74d4614498edd.1441660041.git.yann.morin.1998@free.fr>

On 07-09-15 23:09, Yann E. MORIN wrote:
> 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.

> 
>   - it is available only for x86_64 hosts

 That is still the case though.

> 
>   - 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...)
> 
> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> 
> ---
> 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(-)
> 
> diff --git a/toolchain/toolchain-external/Config.in b/toolchain/toolchain-external/Config.in
> index e7aed2e..a17b0a2 100644
> --- a/toolchain/toolchain-external/Config.in
> +++ b/toolchain/toolchain-external/Config.in
> @@ -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

 Is it just me or does this symbol not exist?

>  	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 3980c62..6734b00 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

 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


> +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]

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

  reply	other threads:[~2015-09-07 21:52 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-09-07 21:09 [Buildroot] [PATCH 0/3 v3] toolchain/external: add Linaro 2014.11 for ARMv7 BE/LE EABIhf and AArch64 (branch yem/toolchain-linaro-2014.11) Yann E. MORIN
2015-09-07 21:09 ` [Buildroot] [PATCH 1/3 v3] toolchain/external: add Linaro ARM 2014.11 ARMv7 EABIhf Yann E. MORIN
2015-09-07 21:52   ` Arnout Vandecappelle [this message]
2015-09-07 21:09 ` [Buildroot] [PATCH 2/3 v3] toolchain/external: add Linaro ARM BE " Yann E. MORIN
2015-09-07 21:09 ` [Buildroot] [PATCH 3/3 v3] toolchain/external: add Linaro AArch64 2014.11 Yann E. MORIN
2015-09-20 13:00 ` [Buildroot] [PATCH 0/3 v3] toolchain/external: add Linaro 2014.11 for ARMv7 BE/LE EABIhf and AArch64 (branch yem/toolchain-linaro-2014.11) Thomas Petazzoni

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=55EE0725.6090107@mind.be \
    --to=arnout@mind.be \
    --cc=buildroot@busybox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox