All of 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.