Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Yann E. MORIN <yann.morin.1998@free.fr>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH 2/7] toolchain-external: CodeSourcery PowerPC: support only one version
Date: Sat, 26 Dec 2015 10:46:02 +0100	[thread overview]
Message-ID: <20151226094602.GA3452@free.fr> (raw)
In-Reply-To: <1450548886-21937-2-git-send-email-romain.naour@openwide.fr>

Romain, All,

On 2015-12-19 19:14 +0100, Romain Naour spake thusly:
> See the conclusion about external toolchains during the Buildroot
> meeting [1]:
> "In the future, we stick to a single external toolchain version. [...]

So, this means that the only CS PPC toolchain we're left with requires a
PPC with SPE, which is basically only two variants, 8540 (e500v1) and
8548 (e500v2) in Buildroot. All other PPC CPU can't use that toolchain.

Which makes for some fun-to-debug autobuild failures such as:

    http://autobuild.buildroot.org/results/092/09245cb36fe507346b1810262f331c0242b5325d/

What's fun in there is:
  - that config uses a musl toolchain,
  - the target optimisations are set to '-te500v2' which break the build,
  - we have -te500v2 nowhere in the Buildroot code,
  - the only -te500v2 is in a toolchain config in the autobuilders code,
  - that toolchain config uses a CS toolchain, but the autobuild failure
    is using the musl toolchain.

So, it got me puzzled for quite a while there... Until I realised we had
a few issues:
  - the autobuilder config used as a base does not enforce a ppc8548,
  - that same config was not updated after the removal of CS toolchains,
  - other autobuilder base configs were not updated either.

However, do we really want to keep the single CS PPC toolchain with a
dependency on SPE? Can't we just do like the Linaro toolchain and use
the appropriate toolchain depending on the rest of the configuration?

I will try to get my hands on this during the WE, but I make no promise.
It would be good if you could have a look, too. ;-)

Regards,
Yann E. MORIN.

> The
> Kconfig symbol should not encode the version (avoid legacy handling)"
> 
> [1] http://elinux.org/index.php?title=Buildroot:DeveloperDaysELCE2015#Report
> 
> Remove old CS toolchain handling in pixman and liquid-dsp.
> 
> Signed-off-by: Romain Naour <romain.naour@openwide.fr>
> ---
>  package/liquid-dsp/Config.in                       |  5 --
>  package/pixman/pixman.mk                           |  5 --
>  toolchain/toolchain-external/Config.in             | 72 +---------------------
>  .../toolchain-external/toolchain-external.hash     |  2 -
>  toolchain/toolchain-external/toolchain-external.mk |  8 +--
>  5 files changed, 3 insertions(+), 89 deletions(-)
> 
> diff --git a/package/liquid-dsp/Config.in b/package/liquid-dsp/Config.in
> index 39cd342..95233da 100644
> --- a/package/liquid-dsp/Config.in
> +++ b/package/liquid-dsp/Config.in
> @@ -1,15 +1,10 @@
>  comment "liquid-dsp requires a (e)glibc/musl toolchain w/ dynamic library"
> -	depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC201103
> -	depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC201009
>  	depends on !(BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_MUSL) || BR2_STATIC_LIBS
>  
>  config BR2_PACKAGE_LIQUID_DSP
>  	bool "liquid-dsp"
>  	depends on BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_MUSL
>  	depends on !BR2_STATIC_LIBS
> -	# These result in internal compiler error
> -	depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC201103
> -	depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC201009
>  	help
>  	  Liquid-DSP is a free and open-source signal processing
>  	  library for software-defined radios written in C.  Its
> diff --git a/package/pixman/pixman.mk b/package/pixman/pixman.mk
> index e1b7c2d..29b01ee 100644
> --- a/package/pixman/pixman.mk
> +++ b/package/pixman/pixman.mk
> @@ -32,10 +32,5 @@ ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII),y)
>  PIXMAN_CONF_ENV += CFLAGS="$(TARGET_CFLAGS) -DPIXMAN_NO_TLS"
>  endif
>  
> -# Altivec detection isn't reliable for CS toolchains
> -ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC201103)$(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC201009),y)
> -PIXMAN_CONF_OPTS += --disable-vmx
> -endif
> -
>  $(eval $(autotools-package))
>  $(eval $(host-autotools-package))
> diff --git a/toolchain/toolchain-external/Config.in b/toolchain/toolchain-external/Config.in
> index a8f19aa..2f60fe0 100644
> --- a/toolchain/toolchain-external/Config.in
> +++ b/toolchain/toolchain-external/Config.in
> @@ -284,7 +284,7 @@ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII
>  	  from Mentor Graphics. It uses gcc 5.2, binutils 2.25.51,
>  	  glibc 2.22, gdb 7.10.50 and kernel headers 4.2.
>  
> -config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC201203
> +config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC
>  	bool "Sourcery CodeBench PowerPC 2012.03"
>  	depends on BR2_powerpc
>  	depends on BR2_powerpc_SPE
> @@ -303,72 +303,6 @@ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC201203
>  	  support for the following variants:
>  	    - e500v2 glibc, SPE, 32 bits
>  
> -config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC201103
> -	bool "Sourcery CodeBench PowerPC 2011.03"
> -	depends on BR2_powerpc
> -	depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
> -	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
> -	# kernel headers: 2.6.38
> -	select BR2_TOOLCHAIN_GCC_AT_LEAST_4_5
> -	help
> -	  Sourcery CodeBench toolchain for the PowerPC architecture,
> -	  from Mentor Graphics. It uses gcc 4.5.2, binutils 2.20.51,
> -	  glibc 2.13, gdb 7.2.50 and kernel headers 2.6.38. It has
> -	  support for the following variants:
> -	    - 603 glibc, 32 bits
> -	      Select a generic PowerPC core
> -	      Disable BR2_SOFT_FLOAT
> -	    - 603 soft float glibc, 32 bits
> -	      Select a generic PowerPC core
> -	      Enable BR2_SOFT_FLOAT
> -	    - e600 altivec glibc, 32 bits
> -	      Set BR2_TARGET_OPTIMIZATION to -te600
> -	    - e500v1 glibc, 32 bits
> -	      Set BR2_TARGET_OPTIMIZATION to -te500v1
> -	    - e500v2 glibc, 32 bits
> -	      Set BR2_TARGET_OPTIMIZATION to -te500v2
> -	    - e500mc glibc, 32 bits
> -	      Set BR2_TARGET_OPTIMIZATION to -te500mc
> -	    - 970 glibc hard-float, 64 bits
> -	      Set BR2_TARGET_OPTIMIZATION to -m64
> -
> -config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC201009
> -	bool "Sourcery CodeBench PowerPC 2010.09"
> -	depends on BR2_powerpc
> -	depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
> -	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
> -	# kernel headers: 2.6.35
> -	select BR2_TOOLCHAIN_GCC_AT_LEAST_4_5
> -	help
> -	  Sourcery CodeBench toolchain for the PowerPC architecture,
> -	  from Mentor Graphics. It uses gcc 4.5.1, binutils 2.20,
> -	  glibc 2.11, gdb 7.2.50 and kernel headers 2.6.35.2. It has
> -	  support for the following variants:
> -	    - 603 glibc, 32 bits
> -	      Select a generic PowerPC core
> -	      Disable BR2_SOFT_FLOAT
> -	    - 603 soft float glibc, 32 bits
> -	      Select a generic PowerPC core
> -	      Enable BR2_SOFT_FLOAT
> -	    - e600 altivec glibc, 32 bits
> -	      Set BR2_TARGET_OPTIMIZATION to -te600
> -	    - e500v1 glibc, 32 bits
> -	      Set BR2_TARGET_OPTIMIZATION to -te500v1
> -	    - e500v2 glibc, 32 bits
> -	      Set BR2_TARGET_OPTIMIZATION to -te500v2
> -	    - e500mc glibc, 32 bits
> -	      Set BR2_TARGET_OPTIMIZATION to -te500mc
> -	    - 970 glibc hard-float, 64 bits
> -	      Set BR2_TARGET_OPTIMIZATION to -m64
> -
>  config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_SH201209
>  	bool "Sourcery CodeBench SH 2012.09"
>  	depends on BR2_sh4a || BR2_sh4aeb
> @@ -738,9 +672,7 @@ config BR2_TOOLCHAIN_EXTERNAL_PREFIX
>  	default "aarch64-linux-gnu"      if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64
>  	default "mips-linux-gnu"         if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS
>  	default "nios2-linux-gnu"        if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII
> -	default "powerpc-linux-gnu"      if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC201009
> -	default "powerpc-linux-gnu"      if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC201103
> -	default "powerpc-mentor-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC201203
> +	default "powerpc-mentor-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC
>  	default "sh-linux-gnu"           if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_SH201103
>  	default "sh-linux-gnu"           if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_SH201203
>  	default "sh-linux-gnu"           if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_SH201209
> diff --git a/toolchain/toolchain-external/toolchain-external.hash b/toolchain/toolchain-external/toolchain-external.hash
> index 1f80497..7a073f1 100644
> --- a/toolchain/toolchain-external/toolchain-external.hash
> +++ b/toolchain/toolchain-external/toolchain-external.hash
> @@ -19,8 +19,6 @@ sha256 39ee0e789034334ecc89af94e838e3a4815400ac5ff980f808f466b04778532e  arm-201
>  # NiosII
>  sha256 cc47745dc1264fcb8fb98fb1315ab772ab98691396021c455229b58abaf887f5  sourceryg++-2015.11-27-nios2-linux-gnu-i686-pc-linux-gnu.tar.bz2
>  # PowerPC
> -sha256 d68d1a2a055ece3824a1a11fcc0a8e813ee1d215025247cce0d877caa12c4b54  freescale-2010.09-55-powerpc-linux-gnu-i686-pc-linux-gnu.tar.bz2
> -sha256 525e1f53abbf65c2974ae9af762c45bb38520fe5fc50e968a23fe6a18e9eec04  freescale-2011.03-38-powerpc-linux-gnu-i686-pc-linux-gnu.tar.bz2
>  sha256 d6c94587d546197836e7e1a6909f6aabfa5879e91f501ab03088a6887cc242fc  mentor-2012.03-71-powerpc-mentor-linux-gnu-i686-pc-linux-gnu.tar.bz2
>  # SuperH
>  sha256 ce8115844619a8b02f85e801999fe4cc2e603788be784ae860a070f92ab8053d  renesas-2011.03-37-sh-linux-gnu-i686-pc-linux-gnu.tar.bz2
> diff --git a/toolchain/toolchain-external/toolchain-external.mk b/toolchain/toolchain-external/toolchain-external.mk
> index 02de584..e78865e 100644
> --- a/toolchain/toolchain-external/toolchain-external.mk
> +++ b/toolchain/toolchain-external/toolchain-external.mk
> @@ -317,13 +317,7 @@ TOOLCHAIN_EXTERNAL_SOURCE = mips-2015.11-32-mips-linux-gnu-i686-pc-linux-gnu.tar
>  else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII),y)
>  TOOLCHAIN_EXTERNAL_SITE = http://sourcery.mentor.com/public/gnu_toolchain/nios2-linux-gnu
>  TOOLCHAIN_EXTERNAL_SOURCE = sourceryg++-2015.11-27-nios2-linux-gnu-i686-pc-linux-gnu.tar.bz2
> -else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC201009),y)
> -TOOLCHAIN_EXTERNAL_SITE = http://sourcery.mentor.com/public/gnu_toolchain/powerpc-linux-gnu
> -TOOLCHAIN_EXTERNAL_SOURCE = freescale-2010.09-55-powerpc-linux-gnu-i686-pc-linux-gnu.tar.bz2
> -else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC201103),y)
> -TOOLCHAIN_EXTERNAL_SITE = http://sourcery.mentor.com/public/gnu_toolchain/powerpc-linux-gnu
> -TOOLCHAIN_EXTERNAL_SOURCE = freescale-2011.03-38-powerpc-linux-gnu-i686-pc-linux-gnu.tar.bz2
> -else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC201203),y)
> +else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC),y)
>  TOOLCHAIN_EXTERNAL_SITE = http://sourcery.mentor.com/public/gnu_toolchain/powerpc-mentor-linux-gnu
>  TOOLCHAIN_EXTERNAL_SOURCE = mentor-2012.03-71-powerpc-mentor-linux-gnu-i686-pc-linux-gnu.tar.bz2
>  else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_SH201103),y)
> -- 
> 2.4.3
> 
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  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.  |
'------------------------------^-------^------------------^--------------------'

  reply	other threads:[~2015-12-26  9:46 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-12-19 18:14 [Buildroot] [PATCH 1/7] toolchain-external: CodeSourcery ARM: support only one version Romain Naour
2015-12-19 18:14 ` [Buildroot] [PATCH 2/7] toolchain-external: CodeSourcery PowerPC: " Romain Naour
2015-12-26  9:46   ` Yann E. MORIN [this message]
2015-12-19 18:14 ` [Buildroot] [PATCH 3/7] toolchain-external: CodeSourcery SH: " Romain Naour
2015-12-19 18:14 ` [Buildroot] [PATCH 4/7] toolchain-external: CodeSourcery x86: " Romain Naour
2015-12-19 18:14 ` [Buildroot] [PATCH 5/7] toolchain-external: ADI Blackfin: " Romain Naour
2015-12-19 18:14 ` [Buildroot] [PATCH 6/7] toolchain-external: Synopsys ARC: " Romain Naour
2015-12-19 18:14 ` [Buildroot] [PATCH 7/7] toolchain-external: Ti Arago ARM: " Romain Naour
2015-12-19 22:36 ` [Buildroot] [PATCH 1/7] toolchain-external: CodeSourcery " Arnout Vandecappelle
2015-12-20  9:28   ` Thomas Petazzoni
2015-12-20 12:52 ` 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=20151226094602.GA3452@free.fr \
    --to=yann.morin.1998@free.fr \
    --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