Splitting the toolchain-external package
v2 cover Splitting the toolchain-external package
Hi All,
Here is the second version of the toolchain-external package infra which was started by Thomas Petazzoni last year. This new infra will clearly separate the common external toolchain logic from the toolchain-specific details and generally make the external toolchain code hopefully easier to maintain.
The four first patches change all the functions used in INSTALL_STAGING_CMDS and INSTALL_TARGET_CMDS to take more arguments rather than using global variables.
Then all toolchain packages are introduced but are not yet used since the new toolchain-external infra will be added in the final patch.
The final patch introduce the new toolchain external package infra (see it's commit log for more information).
This second version take into acount the Arnout and Thomas review (Thanks).
Best regards,
Romain
Romain Naour (10):
toolchain-external: TOOLCHAIN_EXTERNAL_CREATE_*_LIB_SYMLINK: use
arguments instead of global variables
toolchain-external: TOOLCHAIN_EXTERNAL_INSTALL_*_LIBS: use arguments
instead of global variables
toolchain-external: TOOLCHAIN_EXTERNAL_INSTALL_WRAPPER: use arguments
instead of global variables
toolchain-external: TOOLCHAIN_EXTERNAL_INSTALL_TARGET_GDBSERVER: use
arguments instead of global variables
toolchain-external-arago-armv5te: new package toolchain-external-linaro-armeb: new package toolchain-external-codesourcery-amd64: new package toolchain-external-codescape-img-mips: new package toolchain-external-codescape-mti-mips: new package
toolchain-external: introduce and use external toolchain infra
Thomas Petazzoni (13):
toolchain-external-blackfin-uclinux: new package toolchain-external-arago-armv7a: new package
toolchain-external-custom: new package toolchain-external-linaro-aarch64: new package toolchain-external-linaro-arm: new package toolchain-external-musl-cross: new package toolchain-external-codesourcery-aarch64: new package toolchain-external-codesourcery-arm: new package toolchain-external-codesourcery-mips: new package toolchain-external-codesourcery-niosII: new package toolchain-external-codesourcery-sh: new package toolchain-external-codesourcery-x86: new package toolchain-external-synopsys-arc: new package
package/Makefile.in | 2 +-
package/wine/wine.mk | 2 +-
toolchain/toolchain-external/Config.in | 982 +--------------------
...chain-external.mk => pkg-toolchain-external.mk} | 848 ++++++++----------
.../toolchain-external-arago-armv5te/Config.in | 19 +
.../Config.in.options | 6 +
.../toolchain-external-arago-armv5te.hash | 3 +
.../toolchain-external-arago-armv5te.mk | 23 +
.../toolchain-external-arago-armv7a/Config.in | 24 +
.../Config.in.options | 6 +
.../toolchain-external-arago-armv7a.hash | 3 +
.../toolchain-external-arago-armv7a.mk | 23 +
.../toolchain-external-blackfin-uclinux/Config.in | 17 +
.../Config.in.options | 6 +
.../toolchain-external-blackfin-uclinux.hash | 3 +
.../toolchain-external-blackfin-uclinux.mk | 36 +
.../Config.in | 62 ++
.../Config.in.options | 6 +
.../toolchain-external-codescape-img-mips.hash | 3 +
.../toolchain-external-codescape-img-mips.mk | 48 +
.../Config.in | 73 ++
.../Config.in.options | 6 +
.../toolchain-external-codescape-mti-mips.hash | 3 +
.../toolchain-external-codescape-mti-mips.mk | 48 +
.../Config.in | 17 +
.../Config.in.options | 6 +
.../toolchain-external-codesourcery-aarch64.hash | 3 +
.../toolchain-external-codesourcery-aarch64.mk | 23 +
.../Config.in | 24 +
.../Config.in.options | 6 +
.../toolchain-external-codesourcery-amd64.hash | 3 +
.../toolchain-external-codesourcery-amd64.mk | 13 +
.../toolchain-external-codesourcery-arm/Config.in | 33 +
.../Config.in.options | 6 +
.../toolchain-external-codesourcery-arm.hash | 3 +
.../toolchain-external-codesourcery-arm.mk | 14 +
.../toolchain-external-codesourcery-mips/Config.in | 93 ++
.../Config.in.options | 6 +
.../toolchain-external-codesourcery-mips.hash | 3 +
.../toolchain-external-codesourcery-mips.mk | 14 +
.../Config.in | 17 +
.../Config.in.options | 6 +
.../toolchain-external-codesourcery-niosII.hash | 3 +
.../toolchain-external-codesourcery-niosII.mk | 14 +
.../toolchain-external-codesourcery-sh/Config.in | 25 +
.../Config.in.options | 6 +
.../toolchain-external-codesourcery-sh.hash | 3 +
.../toolchain-external-codesourcery-sh.mk | 14 +
.../toolchain-external-codesourcery-x86/Config.in | 29 +
.../Config.in.options | 6 +
.../toolchain-external-codesourcery-x86.hash | 3 +
.../toolchain-external-codesourcery-x86.mk | 13 +
.../toolchain-external-custom/Config.in | 5 +
.../toolchain-external-custom/Config.in.options | 331 +++++++
.../toolchain-external-custom.mk | 16 +
.../toolchain-external-linaro-aarch64/Config.in | 15 +
.../Config.in.options | 6 +
.../toolchain-external-linaro-aarch64.hash | 3 +
.../toolchain-external-linaro-aarch64.mk | 17 +
.../toolchain-external-linaro-arm/Config.in | 27 +
.../Config.in.options | 6 +
.../toolchain-external-linaro-arm.hash | 3 +
.../toolchain-external-linaro-arm.mk | 17 +
.../toolchain-external-linaro-armeb/Config.in | 26 +
.../Config.in.options | 6 +
.../toolchain-external-linaro-armeb.hash | 3 +
.../toolchain-external-linaro-armeb.mk | 17 +
.../toolchain-external-musl-cross/Config.in | 30 +
.../Config.in.options | 6 +
.../toolchain-external-musl-cross.hash | 12 +
.../toolchain-external-musl-cross.mk | 36 +
.../toolchain-external-synopsys-arc/Config.in | 20 +
.../Config.in.options | 6 +
.../toolchain-external-synopsys-arc.hash | 5 +
.../toolchain-external-synopsys-arc.mk | 26 +
.../toolchain-external/toolchain-external.hash | 67 --
toolchain/toolchain-external/toolchain-external.mk | 797 +----------------
77 files changed, 1877 insertions(+), 2284 deletions(-)
copy toolchain/toolchain-external/{toolchain-external.mk => pkg-toolchain-external.mk} (50%)
create mode 100644 toolchain/toolchain-external/toolchain-external-arago-armv5te/Config.in
create mode 100644 toolchain/toolchain-external/toolchain-external-arago-armv5te/Config.in.options
create mode 100644 toolchain/toolchain-external/toolchain-external-arago-armv5te/toolchain-external-arago-armv5te.hash
create mode 100644 toolchain/toolchain-external/toolchain-external-arago-armv5te/toolchain-external-arago-armv5te.mk
create mode 100644 toolchain/toolchain-external/toolchain-external-arago-armv7a/Config.in
create mode 100644 toolchain/toolchain-external/toolchain-external-arago-armv7a/Config.in.options
create mode 100644 toolchain/toolchain-external/toolchain-external-arago-armv7a/toolchain-external-arago-armv7a.hash
create mode 100644 toolchain/toolchain-external/toolchain-external-arago-armv7a/toolchain-external-arago-armv7a.mk
create mode 100644 toolchain/toolchain-external/toolchain-external-blackfin-uclinux/Config.in
create mode 100644 toolchain/toolchain-external/toolchain-external-blackfin-uclinux/Config.in.options
create mode 100644 toolchain/toolchain-external/toolchain-external-blackfin-uclinux/toolchain-external-blackfin-uclinux.hash
create mode 100644 toolchain/toolchain-external/toolchain-external-blackfin-uclinux/toolchain-external-blackfin-uclinux.mk
create mode 100644 toolchain/toolchain-external/toolchain-external-codescape-img-mips/Config.in
create mode 100644 toolchain/toolchain-external/toolchain-external-codescape-img-mips/Config.in.options
create mode 100644 toolchain/toolchain-external/toolchain-external-codescape-img-mips/toolchain-external-codescape-img-mips.hash
create mode 100644 toolchain/toolchain-external/toolchain-external-codescape-img-mips/toolchain-external-codescape-img-mips.mk
create mode 100644 toolchain/toolchain-external/toolchain-external-codescape-mti-mips/Config.in
create mode 100644 toolchain/toolchain-external/toolchain-external-codescape-mti-mips/Config.in.options
create mode 100644 toolchain/toolchain-external/toolchain-external-codescape-mti-mips/toolchain-external-codescape-mti-mips.hash
create mode 100644 toolchain/toolchain-external/toolchain-external-codescape-mti-mips/toolchain-external-codescape-mti-mips.mk
create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-aarch64/Config.in
create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-aarch64/Config.in.options
create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-aarch64/toolchain-external-codesourcery-aarch64.hash
create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-aarch64/toolchain-external-codesourcery-aarch64.mk
create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-amd64/Config.in
create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-amd64/Config.in.options
create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-amd64/toolchain-external-codesourcery-amd64.hash
create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-amd64/toolchain-external-codesourcery-amd64.mk
create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-arm/Config.in
create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-arm/Config.in.options
create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-arm/toolchain-external-codesourcery-arm.hash
create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-arm/toolchain-external-codesourcery-arm.mk
create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-mips/Config.in
create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-mips/Config.in.options
create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-mips/toolchain-external-codesourcery-mips.hash
create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-mips/toolchain-external-codesourcery-mips.mk
create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-niosII/Config.in
create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-niosII/Config.in.options
create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-niosII/toolchain-external-codesourcery-niosII.hash
create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-niosII/toolchain-external-codesourcery-niosII.mk
create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-sh/Config.in
create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-sh/Config.in.options
create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-sh/toolchain-external-codesourcery-sh.hash
create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-sh/toolchain-external-codesourcery-sh.mk
create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-x86/Config.in
create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-x86/Config.in.options
create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-x86/toolchain-external-codesourcery-x86.hash
create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-x86/toolchain-external-codesourcery-x86.mk
create mode 100644 toolchain/toolchain-external/toolchain-external-custom/Config.in
create mode 100644 toolchain/toolchain-external/toolchain-external-custom/Config.in.options
create mode 100644 toolchain/toolchain-external/toolchain-external-custom/toolchain-external-custom.mk
create mode 100644 toolchain/toolchain-external/toolchain-external-linaro-aarch64/Config.in
create mode 100644 toolchain/toolchain-external/toolchain-external-linaro-aarch64/Config.in.options
create mode 100644 toolchain/toolchain-external/toolchain-external-linaro-aarch64/toolchain-external-linaro-aarch64.hash
create mode 100644 toolchain/toolchain-external/toolchain-external-linaro-aarch64/toolchain-external-linaro-aarch64.mk
create mode 100644 toolchain/toolchain-external/toolchain-external-linaro-arm/Config.in
create mode 100644 toolchain/toolchain-external/toolchain-external-linaro-arm/Config.in.options
create mode 100644 toolchain/toolchain-external/toolchain-external-linaro-arm/toolchain-external-linaro-arm.hash
create mode 100644 toolchain/toolchain-external/toolchain-external-linaro-arm/toolchain-external-linaro-arm.mk
create mode 100644 toolchain/toolchain-external/toolchain-external-linaro-armeb/Config.in
create mode 100644 toolchain/toolchain-external/toolchain-external-linaro-armeb/Config.in.options
create mode 100644 toolchain/toolchain-external/toolchain-external-linaro-armeb/toolchain-external-linaro-armeb.hash
create mode 100644 toolchain/toolchain-external/toolchain-external-linaro-armeb/toolchain-external-linaro-armeb.mk
create mode 100644 toolchain/toolchain-external/toolchain-external-musl-cross/Config.in
create mode 100644 toolchain/toolchain-external/toolchain-external-musl-cross/Config.in.options
create mode 100644 toolchain/toolchain-external/toolchain-external-musl-cross/toolchain-external-musl-cross.hash
create mode 100644 toolchain/toolchain-external/toolchain-external-musl-cross/toolchain-external-musl-cross.mk
create mode 100644 toolchain/toolchain-external/toolchain-external-synopsys-arc/Config.in
create mode 100644 toolchain/toolchain-external/toolchain-external-synopsys-arc/Config.in.options
create mode 100644 toolchain/toolchain-external/toolchain-external-synopsys-arc/toolchain-external-synopsys-arc.hash
create mode 100644 toolchain/toolchain-external/toolchain-external-synopsys-arc/toolchain-external-synopsys-arc.mk
delete mode 100644 toolchain/toolchain-external/toolchain-external.hashSignature · 1 line
2.5.5
PATCH v2 1/23 toolchain-external: TOOLCHAIN_EXTERNAL_CREATE_*_LIB_SYMLINK: use arguments instead of global variables
A new external toolchain package infrastructure will be introduced in a followup patch, so TOOLCHAIN_EXTERNAL_{CC,CFLAGS...} global variables will no longer exist. Instead, each external-toolchain packages will provide it's own <toolchain-external-name>_{CC,CFLAGS...} variables.
So additional arguments are needed to provide CC and CFLAG when calling TOOLCHAIN_EXTERNAL_CREATE_*_LIB_SYMLINK.
---
v2: rework commit log/title (Arnout)
--- toolchain/toolchain-external/toolchain-external.mk | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-)
toolchain/toolchain-external/toolchain-external.mk +13 -5
@@ -554,20 +554,28 @@ endif # (as appropriate) # # $1: destination directory (TARGET_DIR / STAGING_DIR) +# $2: toolchain CC +# $3: toolchain CFLAGS create_lib_symlinks = \ $(Q)DESTDIR="$(strip $1)" ; \ - ARCH_LIB_DIR="$(call toolchain_find_libdir,$(TOOLCHAIN_EXTERNAL_CC) $(TOOLCHAIN_EXTERNAL_CFLAGS))" ; \ + TOOLCHAIN_CC="$(strip $2)" ; \ + TOOLCHAIN_CFLAGS="$(strip $3)" ; \ + ARCH_LIB_DIR="$(call toolchain_find_libdir,$${TOOLCHAIN_CC} $${TOOLCHAIN_CFLAGS})" ; \ if [ ! -e "$${DESTDIR}/$${ARCH_LIB_DIR}" -a ! -e "$${DESTDIR}/usr/$${ARCH_LIB_DIR}" ]; then \ ln -snf lib "$${DESTDIR}/$${ARCH_LIB_DIR}" ; \ ln -snf lib "$${DESTDIR}/usr/$${ARCH_LIB_DIR}" ; \ fi +# $1: toolchain CC +# $2: toolchain CFLAGS define TOOLCHAIN_EXTERNAL_CREATE_STAGING_LIB_SYMLINK - $(call create_lib_symlinks,$(STAGING_DIR)) + $(call create_lib_symlinks,$(STAGING_DIR),$(1),$(2)) endef +# $1: toolchain CC +# $2: toolchain CFLAGS define TOOLCHAIN_EXTERNAL_CREATE_TARGET_LIB_SYMLINK - $(call create_lib_symlinks,$(TARGET_DIR)) + $(call create_lib_symlinks,$(TARGET_DIR),$(1),$(2)) endef # Integration of the toolchain into Buildroot: find the main sysroot
@@ -781,7 +789,7 @@ TOOLCHAIN_EXTERNAL_BUILD_CMDS = $(TOOLCHAIN_WRAPPER_BUILD) define TOOLCHAIN_EXTERNAL_INSTALL_STAGING_CMDS $(TOOLCHAIN_WRAPPER_INSTALL) - $(TOOLCHAIN_EXTERNAL_CREATE_STAGING_LIB_SYMLINK) + $(call TOOLCHAIN_EXTERNAL_CREATE_STAGING_LIB_SYMLINK,$(TOOLCHAIN_EXTERNAL_CC),$(TOOLCHAIN_EXTERNAL_CFLAGS)) $(TOOLCHAIN_EXTERNAL_INSTALL_SYSROOT_LIBS) $(TOOLCHAIN_EXTERNAL_INSTALL_SYSROOT_LIBS_BFIN_FDPIC) $(TOOLCHAIN_EXTERNAL_INSTALL_WRAPPER)
@@ -792,7 +800,7 @@ endef # and the target directory, we do everything within the # install-staging step, arbitrarily. define TOOLCHAIN_EXTERNAL_INSTALL_TARGET_CMDS - $(TOOLCHAIN_EXTERNAL_CREATE_TARGET_LIB_SYMLINK) + $(call TOOLCHAIN_EXTERNAL_CREATE_TARGET_LIB_SYMLINK,$(TOOLCHAIN_EXTERNAL_CC),$(TOOLCHAIN_EXTERNAL_CFLAGS)) $(TOOLCHAIN_EXTERNAL_INSTALL_TARGET_LIBS) $(TOOLCHAIN_EXTERNAL_INSTALL_TARGET_GDBSERVER) $(TOOLCHAIN_EXTERNAL_INSTALL_TARGET_BFIN_FDPIC)
Signature · 1 line
2.5.5
PATCH v2 1/23 toolchain-external: TOOLCHAIN_EXTERNAL_CREATE_*_LIB_SYMLINK: use arguments instead of global variables
Romain, All,
On 2016-10-29 14:08 +0200, Romain Naour spake thusly:
Quoted 4 lines
A new external toolchain package infrastructure will be introduced in a followup patch, so TOOLCHAIN_EXTERNAL_{CC,CFLAGS...} global variables will no longer exist. Instead, each external-toolchain packages will provide it's own <toolchain-external-name>_{CC,CFLAGS...} variables.
What's missing in this explanation is why those variables will no longer exist.
But I guess that's inherent to the entire rework. In which case the cover-letter should have had a global explanation on the rework, and what it entails for those functions/macros.
Quoted 4 lines
So additional arguments are needed to provide CC and CFLAG when calling TOOLCHAIN_EXTERNAL_CREATE_*_LIB_SYMLINK.
Signed-off-by Romain Naour <[email protected]>
Regards,
Yann E. MORIN.
Quoted 67 lines
---
v2: rework commit log/title (Arnout)--- toolchain/toolchain-external/toolchain-external.mk | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-)toolchain/toolchain-external/toolchain-external.mk +13
-5@@ -554,20 +554,28 @@ endif # (as appropriate) # # $1: destination directory (TARGET_DIR / STAGING_DIR) +# $2: toolchain CC +# $3: toolchain CFLAGS create_lib_symlinks = \ $(Q)DESTDIR="$(strip $1)" ; \ - ARCH_LIB_DIR="$(call toolchain_find_libdir,$(TOOLCHAIN_EXTERNAL_CC) $(TOOLCHAIN_EXTERNAL_CFLAGS))" ; \ + TOOLCHAIN_CC="$(strip $2)" ; \ + TOOLCHAIN_CFLAGS="$(strip $3)" ; \ + ARCH_LIB_DIR="$(call toolchain_find_libdir,$${TOOLCHAIN_CC} $${TOOLCHAIN_CFLAGS})" ; \ if [ ! -e "$${DESTDIR}/$${ARCH_LIB_DIR}" -a ! -e "$${DESTDIR}/usr/$${ARCH_LIB_DIR}" ]; then \ ln -snf lib "$${DESTDIR}/$${ARCH_LIB_DIR}" ; \ ln -snf lib "$${DESTDIR}/usr/$${ARCH_LIB_DIR}" ; \ fi +# $1: toolchain CC +# $2: toolchain CFLAGS define TOOLCHAIN_EXTERNAL_CREATE_STAGING_LIB_SYMLINK - $(call create_lib_symlinks,$(STAGING_DIR)) + $(call create_lib_symlinks,$(STAGING_DIR),$(1),$(2)) endef +# $1: toolchain CC +# $2: toolchain CFLAGS define TOOLCHAIN_EXTERNAL_CREATE_TARGET_LIB_SYMLINK - $(call create_lib_symlinks,$(TARGET_DIR)) + $(call create_lib_symlinks,$(TARGET_DIR),$(1),$(2)) endef # Integration of the toolchain into Buildroot: find the main sysroot@@ -781,7 +789,7 @@ TOOLCHAIN_EXTERNAL_BUILD_CMDS = $(TOOLCHAIN_WRAPPER_BUILD) define TOOLCHAIN_EXTERNAL_INSTALL_STAGING_CMDS $(TOOLCHAIN_WRAPPER_INSTALL) - $(TOOLCHAIN_EXTERNAL_CREATE_STAGING_LIB_SYMLINK) + $(call TOOLCHAIN_EXTERNAL_CREATE_STAGING_LIB_SYMLINK,$(TOOLCHAIN_EXTERNAL_CC),$(TOOLCHAIN_EXTERNAL_CFLAGS)) $(TOOLCHAIN_EXTERNAL_INSTALL_SYSROOT_LIBS) $(TOOLCHAIN_EXTERNAL_INSTALL_SYSROOT_LIBS_BFIN_FDPIC) $(TOOLCHAIN_EXTERNAL_INSTALL_WRAPPER)@@ -792,7 +800,7 @@ endef # and the target directory, we do everything within the # install-staging step, arbitrarily. define TOOLCHAIN_EXTERNAL_INSTALL_TARGET_CMDS - $(TOOLCHAIN_EXTERNAL_CREATE_TARGET_LIB_SYMLINK) + $(call TOOLCHAIN_EXTERNAL_CREATE_TARGET_LIB_SYMLINK,$(TOOLCHAIN_EXTERNAL_CC),$(TOOLCHAIN_EXTERNAL_CFLAGS)) $(TOOLCHAIN_EXTERNAL_INSTALL_TARGET_LIBS) $(TOOLCHAIN_EXTERNAL_INSTALL_TARGET_GDBSERVER) $(TOOLCHAIN_EXTERNAL_INSTALL_TARGET_BFIN_FDPIC)Signature · 6 lines
2.5.5 _______________________________________________ buildroot mailing list buildroot at busybox.net http://lists.busybox.net/mailman/listinfo/buildroot
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. | '------------------------------^-------^------------------^--------------------'
PATCH v2 2/23 toolchain-external: TOOLCHAIN_EXTERNAL_INSTALL_*_LIBS: use arguments instead of global variables
In reply to Romain NaourA new external toolchain package infrastructure will be introduced in a followup patch, so TOOLCHAIN_EXTERNAL_{CC,CFLAGS...} global variables will no longer exist. Instead, each external toolchain packages will provide it's own <toolchain-external-name>_{CC,CFLAGS...} variables.
So additional arguments are needed to provide CC and CFLAG when calling TOOLCHAIN_EXTERNAL_INSTALL_SYSROOT_LIBS, TOOLCHAIN_EXTERNAL_INSTALL_SYSROOT_LIBS_BFIN_FDPIC and TOOLCHAIN_EXTERNAL_INSTALL_TARGET_BFIN_FLAT
Also, an additional argument is needed to provide LIBS (the shared libraries list) when calling TOOLCHAIN_EXTERNAL_INSTALL_TARGET_LIBS to copy the external toolchain libraries to target.
---
v2: rework commit log/title (Arnout)
--- toolchain/toolchain-external/toolchain-external.mk | 42 +++++++++++++--------- 1 file changed, 25 insertions(+), 17 deletions(-)
toolchain/toolchain-external/toolchain-external.mk +25 -17
@@ -630,10 +630,11 @@ endef # Buildroot, Crosstool-NG, CodeSourcery and Linaro # before doing any modification on the below logic. +# $1: toolchain LIBS ifeq ($(BR2_STATIC_LIBS),) define TOOLCHAIN_EXTERNAL_INSTALL_TARGET_LIBS $(Q)$(call MESSAGE,"Copying external toolchain libraries to target...") - $(Q)for libs in $(TOOLCHAIN_EXTERNAL_LIBS); do \ + $(Q)for libs in $(1); do \ $(call copy_toolchain_lib_root,$$libs); \ done endef
@@ -662,13 +663,15 @@ define TOOLCHAIN_EXTERNAL_INSTALL_TARGET_GDBSERVER endef endif +# $1: toolchain CC +# $2: toolchain CFLAGS define TOOLCHAIN_EXTERNAL_INSTALL_SYSROOT_LIBS - $(Q)SYSROOT_DIR="$(call toolchain_find_sysroot,$(TOOLCHAIN_EXTERNAL_CC))" ; \ - ARCH_SYSROOT_DIR="$(call toolchain_find_sysroot,$(TOOLCHAIN_EXTERNAL_CC) $(TOOLCHAIN_EXTERNAL_CFLAGS))" ; \ - ARCH_LIB_DIR="$(call toolchain_find_libdir,$(TOOLCHAIN_EXTERNAL_CC) $(TOOLCHAIN_EXTERNAL_CFLAGS))" ; \ + $(Q)SYSROOT_DIR="$(call toolchain_find_sysroot,$(1))" ; \ + ARCH_SYSROOT_DIR="$(call toolchain_find_sysroot,$(1) $(2))" ; \ + ARCH_LIB_DIR="$(call toolchain_find_libdir,$(1) $(2))" ; \ SUPPORT_LIB_DIR="" ; \ if test `find $${ARCH_SYSROOT_DIR} -name 'libstdc++.a' | wc -l` -eq 0 ; then \ - LIBSTDCPP_A_LOCATION=$$(LANG=C $(TOOLCHAIN_EXTERNAL_CC) $(TOOLCHAIN_EXTERNAL_CFLAGS) -print-file-name=libstdc++.a) ; \ + LIBSTDCPP_A_LOCATION=$$(LANG=C $(1) $(2) -print-file-name=libstdc++.a) ; \ if [ -e "$${LIBSTDCPP_A_LOCATION}" ]; then \ SUPPORT_LIB_DIR=`readlink -f $${LIBSTDCPP_A_LOCATION} | sed -r -e 's:libstdc\+\+\.a::'` ; \ fi ; \
@@ -689,24 +692,27 @@ endef # FDPIC is not the primary binary format being used, but the user has # nonetheless requested the installation of the FDPIC libraries to the # target filesystem. +# $1: toolchain CC +# $2: toolchain CFLAGS ifeq ($(BR2_BFIN_INSTALL_FDPIC_SHARED),y) define TOOLCHAIN_EXTERNAL_INSTALL_SYSROOT_LIBS_BFIN_FDPIC $(Q)$(call MESSAGE,"Install external toolchain FDPIC libraries to staging...") - $(Q)FDPIC_EXTERNAL_CC=$(dir $(TOOLCHAIN_EXTERNAL_CC))/../../bfin-linux-uclibc/bin/bfin-linux-uclibc-gcc ; \ - FDPIC_SYSROOT_DIR="$(call toolchain_find_sysroot,$${FDPIC_EXTERNAL_CC} $(TOOLCHAIN_EXTERNAL_CFLAGS))" ; \ - FDPIC_LIB_DIR="$(call toolchain_find_libdir,$${FDPIC_EXTERNAL_CC} $(TOOLCHAIN_EXTERNAL_CFLAGS))" ; \ + $(Q)FDPIC_EXTERNAL_CC=$(dir $(1))/../../bfin-linux-uclibc/bin/bfin-linux-uclibc-gcc ; \ + FDPIC_SYSROOT_DIR="$(call toolchain_find_sysroot,$${FDPIC_EXTERNAL_CC} $(2))" ; \ + FDPIC_LIB_DIR="$(call toolchain_find_libdir,$${FDPIC_EXTERNAL_CC} $(2))" ; \ FDPIC_SUPPORT_LIB_DIR="" ; \ if test `find $${FDPIC_SYSROOT_DIR} -name 'libstdc++.a' | wc -l` -eq 0 ; then \ - FDPIC_LIBSTDCPP_A_LOCATION=$$(LANG=C $${FDPIC_EXTERNAL_CC} $(TOOLCHAIN_EXTERNAL_CFLAGS) -print-file-name=libstdc++.a) ; \ + FDPIC_LIBSTDCPP_A_LOCATION=$$(LANG=C $${FDPIC_EXTERNAL_CC} $(2) -print-file-name=libstdc++.a) ; \ if [ -e "$${FDPIC_LIBSTDCPP_A_LOCATION}" ]; then \ FDPIC_SUPPORT_LIB_DIR=`readlink -f $${FDPIC_LIBSTDCPP_A_LOCATION} | sed -r -e 's:libstdc\+\+\.a::'` ; \ fi ; \ fi ; \ $(call copy_toolchain_sysroot,$${FDPIC_SYSROOT_DIR},$${FDPIC_SYSROOT_DIR},,$${FDPIC_LIB_DIR},$${FDPIC_SUPPORT_LIB_DIR}) endef +# $1: toolchain LIBS define TOOLCHAIN_EXTERNAL_INSTALL_TARGET_BFIN_FDPIC $(Q)$(call MESSAGE,"Install external toolchain FDPIC libraries to target...") - $(Q)for libs in $(TOOLCHAIN_EXTERNAL_LIBS); do \ + $(Q)for libs in $(1); do \ $(call copy_toolchain_lib_root,$$libs); \ done endef
@@ -718,11 +724,13 @@ endif # to the target filesystem. The flat libraries are found and linked # according to the index in name "libN.so". Index 1 is reserved for # the standard C library. Customer libraries can use 4 and above. +# $1: toolchain CC +# $2: toolchain CFLAGS ifeq ($(BR2_BFIN_INSTALL_FLAT_SHARED),y) define TOOLCHAIN_EXTERNAL_INSTALL_TARGET_BFIN_FLAT $(Q)$(call MESSAGE,"Install external toolchain FLAT libraries to target...") - $(Q)FLAT_EXTERNAL_CC=$(dir $(TOOLCHAIN_EXTERNAL_CC))../../bfin-uclinux/bin/bfin-uclinux-gcc ; \ - FLAT_LIBC_A_LOCATION=`$${FLAT_EXTERNAL_CC} $(TOOLCHAIN_EXTERNAL_CFLAGS) -mid-shared-library -print-file-name=libc`; \ + $(Q)FLAT_EXTERNAL_CC=$(dir $(1))../../bfin-uclinux/bin/bfin-uclinux-gcc ; \ + FLAT_LIBC_A_LOCATION=`$${FLAT_EXTERNAL_CC} $(2) -mid-shared-library -print-file-name=libc`; \ if [ -f $${FLAT_LIBC_A_LOCATION} -a ! -h $${FLAT_LIBC_A_LOCATION} ] ; then \ $(INSTALL) -D $${FLAT_LIBC_A_LOCATION} $(TARGET_DIR)/lib/lib1.so; \ fi
@@ -790,8 +798,8 @@ TOOLCHAIN_EXTERNAL_BUILD_CMDS = $(TOOLCHAIN_WRAPPER_BUILD) define TOOLCHAIN_EXTERNAL_INSTALL_STAGING_CMDS $(TOOLCHAIN_WRAPPER_INSTALL) $(call TOOLCHAIN_EXTERNAL_CREATE_STAGING_LIB_SYMLINK,$(TOOLCHAIN_EXTERNAL_CC),$(TOOLCHAIN_EXTERNAL_CFLAGS)) - $(TOOLCHAIN_EXTERNAL_INSTALL_SYSROOT_LIBS) - $(TOOLCHAIN_EXTERNAL_INSTALL_SYSROOT_LIBS_BFIN_FDPIC) + $(call TOOLCHAIN_EXTERNAL_INSTALL_SYSROOT_LIBS,$(TOOLCHAIN_EXTERNAL_CC),$(TOOLCHAIN_EXTERNAL_CFLAGS)) + $(call TOOLCHAIN_EXTERNAL_INSTALL_SYSROOT_LIBS_BFIN_FDPIC,$(TOOLCHAIN_EXTERNAL_CC),$(TOOLCHAIN_EXTERNAL_CFLAGS)) $(TOOLCHAIN_EXTERNAL_INSTALL_WRAPPER) $(TOOLCHAIN_EXTERNAL_INSTALL_GDBINIT) endef
@@ -801,10 +809,10 @@ endef # install-staging step, arbitrarily. define TOOLCHAIN_EXTERNAL_INSTALL_TARGET_CMDS $(call TOOLCHAIN_EXTERNAL_CREATE_TARGET_LIB_SYMLINK,$(TOOLCHAIN_EXTERNAL_CC),$(TOOLCHAIN_EXTERNAL_CFLAGS)) - $(TOOLCHAIN_EXTERNAL_INSTALL_TARGET_LIBS) + $(call TOOLCHAIN_EXTERNAL_INSTALL_TARGET_LIBS,$(TOOLCHAIN_EXTERNAL_LIBS)) $(TOOLCHAIN_EXTERNAL_INSTALL_TARGET_GDBSERVER) - $(TOOLCHAIN_EXTERNAL_INSTALL_TARGET_BFIN_FDPIC) - $(TOOLCHAIN_EXTERNAL_INSTALL_TARGET_BFIN_FLAT) + $(call TOOLCHAIN_EXTERNAL_INSTALL_TARGET_BFIN_FDPIC,$(TOOLCHAIN_EXTERNAL_LIBS)) + $(call TOOLCHAIN_EXTERNAL_INSTALL_TARGET_BFIN_FLAT,$(TOOLCHAIN_EXTERNAL_CC),$(TOOLCHAIN_EXTERNAL_CFLAGS)) $(TOOLCHAIN_EXTERNAL_FIXUP_UCLIBCNG_LDSO) endef
Signature · 1 line
2.5.5
PATCH v2 2/23 toolchain-external: TOOLCHAIN_EXTERNAL_INSTALL_*_LIBS: use arguments instead of global variables
Romain, All,
On 2016-10-29 14:08 +0200, Romain Naour spake thusly:
Quoted 45 lines
A new external toolchain package infrastructure will be introduced in a followup patch, so TOOLCHAIN_EXTERNAL_{CC,CFLAGS...} global variables will no longer exist. Instead, each external toolchain packages will provide it's own <toolchain-external-name>_{CC,CFLAGS...} variables.
So additional arguments are needed to provide CC and CFLAG when calling
TOOLCHAIN_EXTERNAL_INSTALL_SYSROOT_LIBS,TOOLCHAIN_EXTERNAL_INSTALL_SYSROOT_LIBS_BFIN_FDPICandTOOLCHAIN_EXTERNAL_INSTALL_TARGET_BFIN_FLATAlso, an additional argument is needed to provide LIBS (the shared libraries list) when calling
TOOLCHAIN_EXTERNAL_INSTALL_TARGET_LIBSto copy the external toolchain libraries to target.Signed-off-by Romain Naour <[email protected]>---
v2: rework commit log/title (Arnout)--- toolchain/toolchain-external/toolchain-external.mk | 42 +++++++++++++--------- 1 file changed, 25 insertions(+), 17 deletions(-)toolchain/toolchain-external/toolchain-external.mk +4
-1@@ -630,10 +630,11 @@ endef # Buildroot, Crosstool-NG, CodeSourcery and Linaro # before doing any modification on the below logic. +# $1: toolchain LIBS ifeq ($(BR2_STATIC_LIBS),) define TOOLCHAIN_EXTERNAL_INSTALL_TARGET_LIBS $(Q)$(call MESSAGE,"Copying external toolchain libraries to target...") - $(Q)for libs in $(TOOLCHAIN_EXTERNAL_LIBS); do \ + $(Q)for libs in $(1); do \ $(call copy_toolchain_lib_root,$$libs); \ done endef@@ -662,13 +663,15 @@ define TOOLCHAIN_EXTERNAL_INSTALL_TARGET_GDBSERVER endef endif +# $1: toolchain CC +# $2: toolchain CFLAGS define TOOLCHAIN_EXTERNAL_INSTALL_SYSROOT_LIBS
toolchain/toolchain-external/toolchain-external.mk define TOOLCHAIN_EXTERNAL_INSTALL_TARGET_GDBSERVER · line 674
Quoted 10 lines
toolchain/toolchain-external/toolchain-external.mk +4
-4- $(Q)SYSROOT_DIR="$(call toolchain_find_sysroot,$(TOOLCHAIN_EXTERNAL_CC))" ; \ - ARCH_SYSROOT_DIR="$(call toolchain_find_sysroot,$(TOOLCHAIN_EXTERNAL_CC) $(TOOLCHAIN_EXTERNAL_CFLAGS))" ; \ - ARCH_LIB_DIR="$(call toolchain_find_libdir,$(TOOLCHAIN_EXTERNAL_CC) $(TOOLCHAIN_EXTERNAL_CFLAGS))" ; \ + $(Q)SYSROOT_DIR="$(call toolchain_find_sysroot,$(1))" ; \ + ARCH_SYSROOT_DIR="$(call toolchain_find_sysroot,$(1) $(2))" ; \ + ARCH_LIB_DIR="$(call toolchain_find_libdir,$(1) $(2))" ; \ SUPPORT_LIB_DIR="" ; \ if test `find $${ARCH_SYSROOT_DIR} -name 'libstdc++.a' | wc -l` -eq 0 ; then \ - LIBSTDCPP_A_LOCATION=$$(LANG=C $(TOOLCHAIN_EXTERNAL_CC) $(TOOLCHAIN_EXTERNAL_CFLAGS) -print-file-name=libstdc++.a) ; \ + LIBSTDCPP_A_LOCATION=$$(LANG=C $(1) $(2) -print-file-name=libstdc++.a) ; \
For some functions/macros (like create_lib_symlinks in your previous patch), $(1), $(2) etc... are assigned to local variables, while here they are drectly used.
This is not very consistent.
I know that you are only changing the code "in place" without any cleanup, but still, it would have been nice to take the opportunity to add some consistency in those complex functions/macros.
Ditto below...
Otherwise:
Regards,
Yann E. MORIN.
Quoted 84 lines
toolchain/toolchain-external/toolchain-external.mk +17
-12if [ -e "$${LIBSTDCPP_A_LOCATION}" ]; then \ SUPPORT_LIB_DIR=`readlink -f $${LIBSTDCPP_A_LOCATION} | sed -r -e 's:libstdc\+\+\.a::'` ; \ fi ; \@@ -689,24 +692,27 @@ endef # FDPIC is not the primary binary format being used, but the user has # nonetheless requested the installation of the FDPIC libraries to the # target filesystem. +# $1: toolchain CC +# $2: toolchain CFLAGS ifeq ($(BR2_BFIN_INSTALL_FDPIC_SHARED),y) define TOOLCHAIN_EXTERNAL_INSTALL_SYSROOT_LIBS_BFIN_FDPIC $(Q)$(call MESSAGE,"Install external toolchain FDPIC libraries to staging...") - $(Q)FDPIC_EXTERNAL_CC=$(dir $(TOOLCHAIN_EXTERNAL_CC))/../../bfin-linux-uclibc/bin/bfin-linux-uclibc-gcc ; \ - FDPIC_SYSROOT_DIR="$(call toolchain_find_sysroot,$${FDPIC_EXTERNAL_CC} $(TOOLCHAIN_EXTERNAL_CFLAGS))" ; \ - FDPIC_LIB_DIR="$(call toolchain_find_libdir,$${FDPIC_EXTERNAL_CC} $(TOOLCHAIN_EXTERNAL_CFLAGS))" ; \ + $(Q)FDPIC_EXTERNAL_CC=$(dir $(1))/../../bfin-linux-uclibc/bin/bfin-linux-uclibc-gcc ; \ + FDPIC_SYSROOT_DIR="$(call toolchain_find_sysroot,$${FDPIC_EXTERNAL_CC} $(2))" ; \ + FDPIC_LIB_DIR="$(call toolchain_find_libdir,$${FDPIC_EXTERNAL_CC} $(2))" ; \ FDPIC_SUPPORT_LIB_DIR="" ; \ if test `find $${FDPIC_SYSROOT_DIR} -name 'libstdc++.a' | wc -l` -eq 0 ; then \ - FDPIC_LIBSTDCPP_A_LOCATION=$$(LANG=C $${FDPIC_EXTERNAL_CC} $(TOOLCHAIN_EXTERNAL_CFLAGS) -print-file-name=libstdc++.a) ; \ + FDPIC_LIBSTDCPP_A_LOCATION=$$(LANG=C $${FDPIC_EXTERNAL_CC} $(2) -print-file-name=libstdc++.a) ; \ if [ -e "$${FDPIC_LIBSTDCPP_A_LOCATION}" ]; then \ FDPIC_SUPPORT_LIB_DIR=`readlink -f $${FDPIC_LIBSTDCPP_A_LOCATION} | sed -r -e 's:libstdc\+\+\.a::'` ; \ fi ; \ fi ; \ $(call copy_toolchain_sysroot,$${FDPIC_SYSROOT_DIR},$${FDPIC_SYSROOT_DIR},,$${FDPIC_LIB_DIR},$${FDPIC_SUPPORT_LIB_DIR}) endef +# $1: toolchain LIBS define TOOLCHAIN_EXTERNAL_INSTALL_TARGET_BFIN_FDPIC $(Q)$(call MESSAGE,"Install external toolchain FDPIC libraries to target...") - $(Q)for libs in $(TOOLCHAIN_EXTERNAL_LIBS); do \ + $(Q)for libs in $(1); do \ $(call copy_toolchain_lib_root,$$libs); \ done endef@@ -718,11 +724,13 @@ endif # to the target filesystem. The flat libraries are found and linked # according to the index in name "libN.so". Index 1 is reserved for # the standard C library. Customer libraries can use 4 and above. +# $1: toolchain CC +# $2: toolchain CFLAGS ifeq ($(BR2_BFIN_INSTALL_FLAT_SHARED),y) define TOOLCHAIN_EXTERNAL_INSTALL_TARGET_BFIN_FLAT $(Q)$(call MESSAGE,"Install external toolchain FLAT libraries to target...") - $(Q)FLAT_EXTERNAL_CC=$(dir $(TOOLCHAIN_EXTERNAL_CC))../../bfin-uclinux/bin/bfin-uclinux-gcc ; \ - FLAT_LIBC_A_LOCATION=`$${FLAT_EXTERNAL_CC} $(TOOLCHAIN_EXTERNAL_CFLAGS) -mid-shared-library -print-file-name=libc`; \ + $(Q)FLAT_EXTERNAL_CC=$(dir $(1))../../bfin-uclinux/bin/bfin-uclinux-gcc ; \ + FLAT_LIBC_A_LOCATION=`$${FLAT_EXTERNAL_CC} $(2) -mid-shared-library -print-file-name=libc`; \ if [ -f $${FLAT_LIBC_A_LOCATION} -a ! -h $${FLAT_LIBC_A_LOCATION} ] ; then \ $(INSTALL) -D $${FLAT_LIBC_A_LOCATION} $(TARGET_DIR)/lib/lib1.so; \ fi@@ -790,8 +798,8 @@ TOOLCHAIN_EXTERNAL_BUILD_CMDS = $(TOOLCHAIN_WRAPPER_BUILD) define TOOLCHAIN_EXTERNAL_INSTALL_STAGING_CMDS $(TOOLCHAIN_WRAPPER_INSTALL) $(call TOOLCHAIN_EXTERNAL_CREATE_STAGING_LIB_SYMLINK,$(TOOLCHAIN_EXTERNAL_CC),$(TOOLCHAIN_EXTERNAL_CFLAGS)) - $(TOOLCHAIN_EXTERNAL_INSTALL_SYSROOT_LIBS) - $(TOOLCHAIN_EXTERNAL_INSTALL_SYSROOT_LIBS_BFIN_FDPIC) + $(call TOOLCHAIN_EXTERNAL_INSTALL_SYSROOT_LIBS,$(TOOLCHAIN_EXTERNAL_CC),$(TOOLCHAIN_EXTERNAL_CFLAGS)) + $(call TOOLCHAIN_EXTERNAL_INSTALL_SYSROOT_LIBS_BFIN_FDPIC,$(TOOLCHAIN_EXTERNAL_CC),$(TOOLCHAIN_EXTERNAL_CFLAGS)) $(TOOLCHAIN_EXTERNAL_INSTALL_WRAPPER) $(TOOLCHAIN_EXTERNAL_INSTALL_GDBINIT) endef@@ -801,10 +809,10 @@ endef # install-staging step, arbitrarily. define TOOLCHAIN_EXTERNAL_INSTALL_TARGET_CMDS $(call TOOLCHAIN_EXTERNAL_CREATE_TARGET_LIB_SYMLINK,$(TOOLCHAIN_EXTERNAL_CC),$(TOOLCHAIN_EXTERNAL_CFLAGS)) - $(TOOLCHAIN_EXTERNAL_INSTALL_TARGET_LIBS) + $(call TOOLCHAIN_EXTERNAL_INSTALL_TARGET_LIBS,$(TOOLCHAIN_EXTERNAL_LIBS)) $(TOOLCHAIN_EXTERNAL_INSTALL_TARGET_GDBSERVER) - $(TOOLCHAIN_EXTERNAL_INSTALL_TARGET_BFIN_FDPIC) - $(TOOLCHAIN_EXTERNAL_INSTALL_TARGET_BFIN_FLAT) + $(call TOOLCHAIN_EXTERNAL_INSTALL_TARGET_BFIN_FDPIC,$(TOOLCHAIN_EXTERNAL_LIBS)) + $(call TOOLCHAIN_EXTERNAL_INSTALL_TARGET_BFIN_FLAT,$(TOOLCHAIN_EXTERNAL_CC),$(TOOLCHAIN_EXTERNAL_CFLAGS)) $(TOOLCHAIN_EXTERNAL_FIXUP_UCLIBCNG_LDSO) endefSignature · 6 lines
2.5.5 _______________________________________________ buildroot mailing list buildroot at busybox.net http://lists.busybox.net/mailman/listinfo/buildroot
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. | '------------------------------^-------^------------------^--------------------'
PATCH v2 3/23 toolchain-external: TOOLCHAIN_EXTERNAL_INSTALL_WRAPPER: use arguments instead of global variables
In reply to Romain NaourA new external toolchain package infrastructure will be introduced in a followup patch, so TOOLCHAIN_EXTERNAL_{CC,CFLAGS...} global variables will no longer exist. Instead, each external toolchain packages will provide it's own <toolchain-external-name>_{CC,CFLAGS...} variables.
For the case of the toolchain wrapper install, CROSS is needed when calling TOOLCHAIN_EXTERNAL_INSTALL_WRAPPER.
---
v2: rework commit log/title (Arnout)
--- toolchain/toolchain-external/toolchain-external.mk | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
toolchain/toolchain-external/toolchain-external.mk +3 -2
@@ -746,9 +746,10 @@ endif # used. However, we should not add the toolchain wrapper for them, and they # match the *cc-* pattern. Therefore, an additional case is added for *-ar, # *-ranlib and *-nm. +# $1 toolchain CROSS define TOOLCHAIN_EXTERNAL_INSTALL_WRAPPER $(Q)cd $(HOST_DIR)/usr/bin; \ - for i in $(TOOLCHAIN_EXTERNAL_CROSS)*; do \ + for i in $(1)*; do \ base=$${i##*/}; \ case "$$base" in \ *-ar|*-ranlib|*-nm) \
@@ -800,7 +801,7 @@ define TOOLCHAIN_EXTERNAL_INSTALL_STAGING_CMDS $(call TOOLCHAIN_EXTERNAL_CREATE_STAGING_LIB_SYMLINK,$(TOOLCHAIN_EXTERNAL_CC),$(TOOLCHAIN_EXTERNAL_CFLAGS)) $(call TOOLCHAIN_EXTERNAL_INSTALL_SYSROOT_LIBS,$(TOOLCHAIN_EXTERNAL_CC),$(TOOLCHAIN_EXTERNAL_CFLAGS)) $(call TOOLCHAIN_EXTERNAL_INSTALL_SYSROOT_LIBS_BFIN_FDPIC,$(TOOLCHAIN_EXTERNAL_CC),$(TOOLCHAIN_EXTERNAL_CFLAGS)) - $(TOOLCHAIN_EXTERNAL_INSTALL_WRAPPER) + $(call TOOLCHAIN_EXTERNAL_INSTALL_WRAPPER,$(TOOLCHAIN_EXTERNAL_CROSS)) $(TOOLCHAIN_EXTERNAL_INSTALL_GDBINIT) endef
Signature · 1 line
2.5.5
PATCH v2 3/23 toolchain-external: TOOLCHAIN_EXTERNAL_INSTALL_WRAPPER: use arguments instead of global variables
Romain, All,
On 2016-10-29 14:08 +0200, Romain Naour spake thusly:
Quoted 9 lines
A new external toolchain package infrastructure will be introduced in a followup patch, so TOOLCHAIN_EXTERNAL_{CC,CFLAGS...} global variables will no longer exist. Instead, each external toolchain packages will provide it's own <toolchain-external-name>_{CC,CFLAGS...} variables.
For the case of the toolchain wrapper install, CROSS is needed when calling
TOOLCHAIN_EXTERNAL_INSTALL_WRAPPER.Signed-off-by Romain Naour <[email protected]>
But see below...
Quoted 11 lines
---
v2: rework commit log/title (Arnout)--- toolchain/toolchain-external/toolchain-external.mk | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)toolchain/toolchain-external/toolchain-external.mk +0
-0
toolchain/toolchain-external/toolchain-external.mk endif · line 752
Quoted 8 lines
toolchain/toolchain-external/toolchain-external.mk +2
-1@@ -746,9 +746,10 @@ endif # used. However, we should not add the toolchain wrapper for them, and they # match the *cc-* pattern. Therefore, an additional case is added for *-ar, # *-ranlib and *-nm. +# $1 toolchain CROSS define TOOLCHAIN_EXTERNAL_INSTALL_WRAPPER $(Q)cd $(HOST_DIR)/usr/bin; \ - for i in $(TOOLCHAIN_EXTERNAL_CROSS)*; do \ + for i in $(1)*; do \
Again, for consistency with other functions/macros, it would have been nice to introduce a local variable.
Regards,
Yann E. MORIN.
Quoted 19 lines
toolchain/toolchain-external/toolchain-external.mk +1
-1base=$${i##*/}; \ case "$$base" in \ *-ar|*-ranlib|*-nm) \@@ -800,7 +801,7 @@ define TOOLCHAIN_EXTERNAL_INSTALL_STAGING_CMDS $(call TOOLCHAIN_EXTERNAL_CREATE_STAGING_LIB_SYMLINK,$(TOOLCHAIN_EXTERNAL_CC),$(TOOLCHAIN_EXTERNAL_CFLAGS)) $(call TOOLCHAIN_EXTERNAL_INSTALL_SYSROOT_LIBS,$(TOOLCHAIN_EXTERNAL_CC),$(TOOLCHAIN_EXTERNAL_CFLAGS)) $(call TOOLCHAIN_EXTERNAL_INSTALL_SYSROOT_LIBS_BFIN_FDPIC,$(TOOLCHAIN_EXTERNAL_CC),$(TOOLCHAIN_EXTERNAL_CFLAGS)) - $(TOOLCHAIN_EXTERNAL_INSTALL_WRAPPER) + $(call TOOLCHAIN_EXTERNAL_INSTALL_WRAPPER,$(TOOLCHAIN_EXTERNAL_CROSS)) $(TOOLCHAIN_EXTERNAL_INSTALL_GDBINIT) endefSignature · 6 lines
2.5.5 _______________________________________________ buildroot mailing list buildroot at busybox.net http://lists.busybox.net/mailman/listinfo/buildroot
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. | '------------------------------^-------^------------------^--------------------'
PATCH v2 4/23 toolchain-external: TOOLCHAIN_EXTERNAL_INSTALL_TARGET_GDBSERVER: use arguments instead of global variables
In reply to Romain NaourA new external toolchain package infrastructure will be introduced in a followup patch, so TOOLCHAIN_EXTERNAL_{CC,CFLAGS...} global variables will no longer exist. Instead, each external-toolchain packages will provide it's own <toolchain-external-name>_{CC,CFLAGS...} variables.
So additional arguments are needed to provide CC, CFLAG and INSTALL_DIR when calling TOOLCHAIN_EXTERNAL_INSTALL_TARGET_GDBSERVER.
---
v2: rework commit log/title (Arnout)
--- toolchain/toolchain-external/toolchain-external.mk | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-)
toolchain/toolchain-external/toolchain-external.mk +7 -4
@@ -640,16 +640,19 @@ define TOOLCHAIN_EXTERNAL_INSTALL_TARGET_LIBS endef endif +# $1: toolchain CC +# $2: toolchain CFLAGS +# $3: toolchain INSTALL_DIR ifeq ($(BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY),y) define TOOLCHAIN_EXTERNAL_INSTALL_TARGET_GDBSERVER $(Q)$(call MESSAGE,"Copying gdbserver") - $(Q)ARCH_SYSROOT_DIR="$(call toolchain_find_sysroot,$(TOOLCHAIN_EXTERNAL_CC) $(TOOLCHAIN_EXTERNAL_CFLAGS))" ; \ - ARCH_LIB_DIR="$(call toolchain_find_libdir,$(TOOLCHAIN_EXTERNAL_CC) $(TOOLCHAIN_EXTERNAL_CFLAGS))" ; \ + $(Q)ARCH_SYSROOT_DIR="$(call toolchain_find_sysroot,$(1) $(2))" ; \ + ARCH_LIB_DIR="$(call toolchain_find_libdir,$(1) $(2))" ; \ gdbserver_found=0 ; \ for d in $${ARCH_SYSROOT_DIR}/usr \ $${ARCH_SYSROOT_DIR}/../debug-root/usr \ $${ARCH_SYSROOT_DIR}/usr/$${ARCH_LIB_DIR} \ - $(TOOLCHAIN_EXTERNAL_INSTALL_DIR); do \ + $(3); do \ if test -f $${d}/bin/gdbserver ; then \ install -m 0755 -D $${d}/bin/gdbserver $(TARGET_DIR)/usr/bin/gdbserver ; \ gdbserver_found=1 ; \
@@ -811,7 +814,7 @@ endef define TOOLCHAIN_EXTERNAL_INSTALL_TARGET_CMDS $(call TOOLCHAIN_EXTERNAL_CREATE_TARGET_LIB_SYMLINK,$(TOOLCHAIN_EXTERNAL_CC),$(TOOLCHAIN_EXTERNAL_CFLAGS)) $(call TOOLCHAIN_EXTERNAL_INSTALL_TARGET_LIBS,$(TOOLCHAIN_EXTERNAL_LIBS)) - $(TOOLCHAIN_EXTERNAL_INSTALL_TARGET_GDBSERVER) + $(call TOOLCHAIN_EXTERNAL_INSTALL_TARGET_GDBSERVER,$(TOOLCHAIN_EXTERNAL_CC),$(TOOLCHAIN_EXTERNAL_CFLAGS),$(TOOLCHAIN_EXTERNAL_INSTALL_DIR)) $(call TOOLCHAIN_EXTERNAL_INSTALL_TARGET_BFIN_FDPIC,$(TOOLCHAIN_EXTERNAL_LIBS)) $(call TOOLCHAIN_EXTERNAL_INSTALL_TARGET_BFIN_FLAT,$(TOOLCHAIN_EXTERNAL_CC),$(TOOLCHAIN_EXTERNAL_CFLAGS)) $(TOOLCHAIN_EXTERNAL_FIXUP_UCLIBCNG_LDSO)
Signature · 1 line
2.5.5
PATCH v2 4/23 toolchain-external: TOOLCHAIN_EXTERNAL_INSTALL_TARGET_GDBSERVER: use arguments instead of global variables
Romain, All,
On 2016-10-29 14:08 +0200, Romain Naour spake thusly:
Quoted 9 lines
A new external toolchain package infrastructure will be introduced in a followup patch, so TOOLCHAIN_EXTERNAL_{CC,CFLAGS...} global variables will no longer exist. Instead, each external-toolchain packages will provide it's own <toolchain-external-name>_{CC,CFLAGS...} variables.
So additional arguments are needed to provide CC, CFLAG and
INSTALL_DIRwhen callingTOOLCHAIN_EXTERNAL_INSTALL_TARGET_GDBSERVER.Signed-off-by Romain Naour <[email protected]>
But see below...
Quoted 34 lines
---
v2: rework commit log/title (Arnout)--- toolchain/toolchain-external/toolchain-external.mk | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-)toolchain/toolchain-external/toolchain-external.mk +6
-3@@ -640,16 +640,19 @@ define TOOLCHAIN_EXTERNAL_INSTALL_TARGET_LIBS endef endif +# $1: toolchain CC +# $2: toolchain CFLAGS +# $3: toolchain INSTALL_DIR ifeq ($(BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY),y) define TOOLCHAIN_EXTERNAL_INSTALL_TARGET_GDBSERVER $(Q)$(call MESSAGE,"Copying gdbserver") - $(Q)ARCH_SYSROOT_DIR="$(call toolchain_find_sysroot,$(TOOLCHAIN_EXTERNAL_CC) $(TOOLCHAIN_EXTERNAL_CFLAGS))" ; \ - ARCH_LIB_DIR="$(call toolchain_find_libdir,$(TOOLCHAIN_EXTERNAL_CC) $(TOOLCHAIN_EXTERNAL_CFLAGS))" ; \ + $(Q)ARCH_SYSROOT_DIR="$(call toolchain_find_sysroot,$(1) $(2))" ; \ + ARCH_LIB_DIR="$(call toolchain_find_libdir,$(1) $(2))" ; \ gdbserver_found=0 ; \ for d in $${ARCH_SYSROOT_DIR}/usr \ $${ARCH_SYSROOT_DIR}/../debug-root/usr \ $${ARCH_SYSROOT_DIR}/usr/$${ARCH_LIB_DIR} \ - $(TOOLCHAIN_EXTERNAL_INSTALL_DIR); do \ + $(3); do \ if test -f $${d}/bin/gdbserver ; then \ install -m 0755 -D $${d}/bin/gdbserver $(TARGET_DIR)/usr/bin/gdbserver ; \ gdbserver_found=1 ; \
toolchain/toolchain-external/toolchain-external.mk endef · line 820
Quoted 8 lines
toolchain/toolchain-external/toolchain-external.mk +1
-1@@ -811,7 +814,7 @@ endef define TOOLCHAIN_EXTERNAL_INSTALL_TARGET_CMDS $(call TOOLCHAIN_EXTERNAL_CREATE_TARGET_LIB_SYMLINK,$(TOOLCHAIN_EXTERNAL_CC),$(TOOLCHAIN_EXTERNAL_CFLAGS)) $(call TOOLCHAIN_EXTERNAL_INSTALL_TARGET_LIBS,$(TOOLCHAIN_EXTERNAL_LIBS)) - $(TOOLCHAIN_EXTERNAL_INSTALL_TARGET_GDBSERVER) + $(call TOOLCHAIN_EXTERNAL_INSTALL_TARGET_GDBSERVER,$(TOOLCHAIN_EXTERNAL_CC),$(TOOLCHAIN_EXTERNAL_CFLAGS),$(TOOLCHAIN_EXTERNAL_INSTALL_DIR)) $(call TOOLCHAIN_EXTERNAL_INSTALL_TARGET_BFIN_FDPIC,$(TOOLCHAIN_EXTERNAL_LIBS)) $(call TOOLCHAIN_EXTERNAL_INSTALL_TARGET_BFIN_FLAT,$(TOOLCHAIN_EXTERNAL_CC),$(TOOLCHAIN_EXTERNAL_CFLAGS)) $(TOOLCHAIN_EXTERNAL_FIXUP_UCLIBCNG_LDSO)
Now, TOOLCHAIN_EXTERNAL_FIXUP_UCLIBCNG_LDSO is the only macro that is not $(call)ed. Maybe change it for consistency with the rest?
Regards,
Yann E. MORIN.
Quoted 7 lines
Signature · 6 lines
2.5.5 _______________________________________________ buildroot mailing list buildroot at busybox.net http://lists.busybox.net/mailman/listinfo/buildroot
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. | '------------------------------^-------^------------------^--------------------'
PATCH v2 5/23 toolchain-external-blackfin-uclinux: new package
In reply to Romain NaourFrom: Thomas Petazzoni <[email protected]>
This commit adds a new package for the Analog Devices external toolchain for the Blackfin architecture. As of this commit, the code is currently not used, but it will be used as soon as the external toolchain infrastructure gets introduced in a future commit.
--- .../toolchain-external-blackfin-uclinux/Config.in | 17 ++++++++++ .../Config.in.options | 6 ++++ .../toolchain-external-blackfin-uclinux.hash | 3 ++ .../toolchain-external-blackfin-uclinux.mk | 36 ++++++++++++++++++++++ 4 files changed, 62 insertions(+) create mode 100644 toolchain/toolchain-external/toolchain-external-blackfin-uclinux/Config.in create mode 100644 toolchain/toolchain-external/toolchain-external-blackfin-uclinux/Config.in.options create mode 100644 toolchain/toolchain-external/toolchain-external-blackfin-uclinux/toolchain-external-blackfin-uclinux.hash create mode 100644 toolchain/toolchain-external/toolchain-external-blackfin-uclinux/toolchain-external-blackfin-uclinux.mk
toolchain/toolchain-external/toolchain-external-blackfin-uclinux/Config.in new file +17 -0
@@ -0,0 +1,17 @@ +config BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX + bool "Blackfin.uclinux.org 2014R1" + depends on BR2_bfin + depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86" + select BR2_TOOLCHAIN_EXTERNAL_UCLIBC + select BR2_INSTALL_LIBSTDCPP + select BR2_TOOLCHAIN_HAS_NATIVE_RPC + select BR2_USE_WCHAR + select BR2_TOOLCHAIN_HAS_THREADS + select BR2_TOOLCHAIN_HAS_THREADS_DEBUG + select BR2_HOSTARCH_NEEDS_IA32_LIBS + select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10 + select BR2_TOOLCHAIN_GCC_AT_LEAST_4_3 + select BR2_TOOLCHAIN_HAS_FORTRAN + help + Toolchain for the Blackfin architecture, from + http://blackfin.uclinux.org.
toolchain/toolchain-external/toolchain-external-blackfin-uclinux/Config.in.options new file +6 -0
@@ -0,0 +1,6 @@ +if BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX + +config BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL + default "toolchain-external-blackfin-uclinux" + +endif
toolchain/toolchain-external/toolchain-external-blackfin-uclinux/toolchain-external-blackfin-uclinux.hash new file +3 -0
@@ -0,0 +1,3 @@ +# Locally calculated +sha256 e424e90d8481d942a40266d78d1488726561fed3ec38403094f98055e61889d0 blackfin-toolchain-2014R1-RC2.i386.tar.bz2 +sha256 c65b1b4b918d5185349d62a3b7bf43b4b21e1175c52598ec047ca56b3f11d857 blackfin-toolchain-uclibc-full-2014R1-RC2.i386.tar.bz2
toolchain/toolchain-external/toolchain-external-blackfin-uclinux/toolchain-external-blackfin-uclinux.mk new file +36 -0
@@ -0,0 +1,36 @@ +################################################################################ +# +# toolchain-external-blackfin-uclinux +# +################################################################################ + +TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_VERSION = 2014R1-RC2 + +ifeq ($(BR2_BINFMT_FLAT),y) +TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_SUBDIR = bfin-uclinux +TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_PREFIX = bfin-uclinux +else +TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_SUBDIR = bfin-linux-uclibc +TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_PREFIX = bfin-linux-uclibc +endif + +TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_VERSION_MAJOR = $(firstword $(subst -, ,$(TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_VERSION))) + +TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_SITE = http://downloads.sourceforge.net/project/adi-toolchain/$(TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_VERSION_MAJOR)/$(TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_VERSION)/i386 +TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_SOURCE = blackfin-toolchain-$(TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_VERSION).i386.tar.bz2 +TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_EXTRA_DOWNLOADS = blackfin-toolchain-uclibc-full-$(TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_VERSION).i386.tar.bz2 + +TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_STRIP_COMPONENTS = 3 + +# Special handling for Blackfin toolchain, because of the split in two +# tarballs, and the organization of tarball contents. The tarballs +# contain ./opt/uClinux/{bfin-uclinux,bfin-linux-uclibc} directories, +# which themselves contain the toolchain. This is why we strip more +# components than usual. +define TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_UCLIBC_EXTRA_EXTRACT + $(call suitable-extractor,$(TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_EXTRA_DOWNLOADS)) $(DL_DIR)/$(TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_EXTRA_DOWNLOADS) | \ + $(TAR) --strip-components=3 -C $(@D) $(TAR_OPTIONS) - +endef +TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_POST_EXTRACT_HOOKS += TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_UCLIBC_EXTRA_EXTRACT + +$(eval $(toolchain-external-package))
Signature · 1 line
2.5.5
PATCH v2 5/23 toolchain-external-blackfin-uclinux: new package
Romain, All,
On 2016-10-29 14:08 +0200, Romain Naour spake thusly:
Quoted 49 lines
From: Thomas Petazzoni <[email protected]>
This commit adds a new package for the Analog Devices external toolchain for the Blackfin architecture. As of this commit, the code is currently not used, but it will be used as soon as the external toolchain infrastructure gets introduced in a future commit.
Signed-off-by Thomas Petazzoni <[email protected]>Signed-off-by Romain Naour <[email protected]>--- .../toolchain-external-blackfin-uclinux/Config.in | 17 ++++++++++ .../Config.in.options | 6 ++++ .../toolchain-external-blackfin-uclinux.hash | 3 ++ .../toolchain-external-blackfin-uclinux.mk | 36 ++++++++++++++++++++++ 4 files changed, 62 insertions(+) create mode 100644 toolchain/toolchain-external/toolchain-external-blackfin-uclinux/Config.in create mode 100644 toolchain/toolchain-external/toolchain-external-blackfin-uclinux/Config.in.options create mode 100644 toolchain/toolchain-external/toolchain-external-blackfin-uclinux/toolchain-external-blackfin-uclinux.hash create mode 100644 toolchain/toolchain-external/toolchain-external-blackfin-uclinux/toolchain-external-blackfin-uclinux.mktoolchain/toolchain-external/toolchain-external-blackfin-uclinux/Config.in new file +17
-0@@ -0,0 +1,17 @@ +config BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX + bool "Blackfin.uclinux.org 2014R1" + depends on BR2_bfin + depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86" + select BR2_TOOLCHAIN_EXTERNAL_UCLIBC + select BR2_INSTALL_LIBSTDCPP + select BR2_TOOLCHAIN_HAS_NATIVE_RPC + select BR2_USE_WCHAR + select BR2_TOOLCHAIN_HAS_THREADS + select BR2_TOOLCHAIN_HAS_THREADS_DEBUG + select BR2_HOSTARCH_NEEDS_IA32_LIBS + select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10 + select BR2_TOOLCHAIN_GCC_AT_LEAST_4_3 + select BR2_TOOLCHAIN_HAS_FORTRAN + help + Toolchain for the Blackfin architecture, from + http://blackfin.uclinux.org.toolchain/toolchain-external/toolchain-external-blackfin-uclinux/Config.in.options new file +0
-0
toolchain/toolchain-external/toolchain-external-blackfin-uclinux/Config.in.options line 4
Quoted 4 lines
toolchain/toolchain-external/toolchain-external-blackfin-uclinux/Config.in.options new file +4
-0@@ -0,0 +1,6 @@ +if BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX + +config BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL + default "toolchain-external-blackfin-uclinux"
This make-it-a-provider-of-a-not-yet-existing-virtual-pakage makes me really chill... :-/
But see [*] below...
Quoted 42 lines
toolchain/toolchain-external/toolchain-external-blackfin-uclinux/Config.in.options new file +1
-0+endiftoolchain/toolchain-external/toolchain-external-blackfin-uclinux/toolchain-external-blackfin-uclinux.hash new file +3
-0@@ -0,0 +1,3 @@ +# Locally calculated +sha256 e424e90d8481d942a40266d78d1488726561fed3ec38403094f98055e61889d0 blackfin-toolchain-2014R1-RC2.i386.tar.bz2 +sha256 c65b1b4b918d5185349d62a3b7bf43b4b21e1175c52598ec047ca56b3f11d857 blackfin-toolchain-uclibc-full-2014R1-RC2.i386.tar.bz2toolchain/toolchain-external/toolchain-external-blackfin-uclinux/toolchain-external-blackfin-uclinux.mk new file +26
-0@@ -0,0 +1,36 @@ +################################################################################ +# +# toolchain-external-blackfin-uclinux +# +################################################################################ + +TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_VERSION = 2014R1-RC2 + +ifeq ($(BR2_BINFMT_FLAT),y) +TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_SUBDIR = bfin-uclinux +TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_PREFIX = bfin-uclinux +else +TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_SUBDIR = bfin-linux-uclibc +TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_PREFIX = bfin-linux-uclibc +endif + +TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_VERSION_MAJOR = $(firstword $(subst -, ,$(TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_VERSION))) + +TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_SITE = http://downloads.sourceforge.net/project/adi-toolchain/$(TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_VERSION_MAJOR)/$(TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_VERSION)/i386 +TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_SOURCE = blackfin-toolchain-$(TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_VERSION).i386.tar.bz2 +TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_EXTRA_DOWNLOADS = blackfin-toolchain-uclibc-full-$(TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_VERSION).i386.tar.bz2 + +TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_STRIP_COMPONENTS = 3 + +# Special handling for Blackfin toolchain, because of the split in two +# tarballs, and the organization of tarball contents. The tarballs
toolchain/toolchain-external/toolchain-external-blackfin-uclinux/toolchain-external-blackfin-uclinux.mk line 36
Quoted 10 lines
toolchain/toolchain-external/toolchain-external-blackfin-uclinux/toolchain-external-blackfin-uclinux.mk new file +10
-0+# contain ./opt/uClinux/{bfin-uclinux,bfin-linux-uclibc} directories, +# which themselves contain the toolchain. This is why we strip more +# components than usual. +define TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_UCLIBC_EXTRA_EXTRACT + $(call suitable-extractor,$(TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_EXTRA_DOWNLOADS)) $(DL_DIR)/$(TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_EXTRA_DOWNLOADS) | \ + $(TAR) --strip-components=3 -C $(@D) $(TAR_OPTIONS) - +endef +TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_POST_EXTRACT_HOOKS += TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_UCLIBC_EXTRA_EXTRACT + +$(eval $(toolchain-external-package))
[*] Ditto: this use-a-not-yet-existing-infra is not nice.
I think you could very well:
1- introduce an empty infra that does nothing at all, except it does
exist;
2- introduce the virtual package. It would not kick any dependency
until much later, but it would exist.
3- add the per pre-built toolchain packages liek you did
4- implement the new infra
5- turn toolchain/toolchain-external/toolchain-external.mk from a
generic package to a virtual package
Regards,
Yann E. MORIN.
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. | '------------------------------^-------^------------------^--------------------'
PATCH v2 5/23 toolchain-external-blackfin-uclinux: new package
Hello,
Quoted 7 lines · Yann E. MORIN
I think you could very well:
1- introduce an empty infra that does nothing at all, except it does
exist;2- introduce the virtual package. It would not kick any dependency
until much later, but it would exist.
The virtual package should be named "toolchain-external", which clashes with the existing "toolchain-external" package that you remove in step (5). So you can't do your step (2) before doing your step (5), unless of course you name the packages differently.
And all in all it doesn't change anything: it creates packages that are not used/referenced by anything, until your step (5). Which is exactly what's already happening.
So it's really a matter of taste of what is the less ugly option, but all options will introduce code that is orphaned until the final commit that switches everything over. With this in mind, going for one option or another really doesn't make much difference. And knowing how painful it is to keep this series up-to-date, I'm personally happy with the current way things are introduced.
Quoted 6 lines
3- add the per pre-built toolchain packages liek you did
4- implement the new infra
5- turn
toolchain/toolchain-external/toolchain-external.mkfrom a
generic package to a virtual package
Best regards,
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com
PATCH v2 5/23 toolchain-external-blackfin-uclinux: new package
Thomas, All,
On 2016-10-30 18:37 +0100, Thomas Petazzoni spake thusly:
Quoted 9 lines
Hello,
Quoted 5 lines · Yann E. MORIN
I think you could very well:
1- introduce an empty infra that does nothing at all, except it does
exist;
Quoted 7 lines
Quoted 2 lines
2- introduce the virtual package. It would not kick any dependency
until much later, but it would exist.The virtual package should be named "toolchain-external", which clashes with the existing "toolchain-external" package that you remove in step (5). So you can't do your step (2) before doing your step (5), unless of course you name the packages differently.
A virtual package is but a generic package, so nothing prevents it from having its own _CMDS macros; it can download, configure and build stuff of its own.
Alternatively, you can have the toolchain-external package depend on each of the new toochain-external-foo when it is added, as a kind of manually-handled virtual package, before eventually converting it to a real virtual package once everything as been split out to individual providers.
That's what I'm doing with the split of the skeleton package to handle systemd, by the way. It works nicely and makes for a series that is fully operational at each step.
Quoted 7 lines
And all in all it doesn't change anything: it creates packages that are not used/referenced by anything, until your step (5). Which is exactly what's already happening.
So it's really a matter of taste of what is the less ugly option, but all options will introduce code that is orphaned until the final commit that switches everything over.
Not if, as I stated above, you make them real package from the onset, on which tooclhain-external depends.
Yes, this is a bit more work. But it makes the series fully bisectable, with each commit adding code that *is* actually used at the time it is added. Adding code that is unused is not good, because the only option in case something goes amiss is to just revert the whole stuff rather than the failing hunks...
Quoted 4 lines
With this in mind, going for one option
or another really doesn't make much difference. And knowing how painful it is to keep this series up-to-date, I'm personally happy with the current way things are introduced.
Since when is "maintaining this series is painful" a rationale for applying said series?
I've known (and maintained and still maintain) series that were (are) more difficukt to maintain than this one. And yet, you rarely if ever argued those series should be applied just because they were hard to maintain... (And I'm not speaking only for my own series, far from it.)
Quoted 6 lines
Quoted 6 lines
3- add the per pre-built toolchain packages liek you did
4- implement the new infra
5- turn
toolchain/toolchain-external/toolchain-external.mkfrom a
generic package to a virtual package
But maybe the order I described is not the best...
Anyway, just go ahead and commit this series; a cleanup in there is long overdue.
Regards,
Yann E. MORIN.
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. | '------------------------------^-------^------------------^--------------------'
PATCH v2 5/23 toolchain-external-blackfin-uclinux: new package
Hello,
Quoted 9 lines · Yann E. MORIN
Quoted 4 lines
The virtual package should be named "toolchain-external", which clashes with the existing "toolchain-external" package that you remove in step (5). So you can't do your step (2) before doing your step (5), unless of course you name the packages differently.
A virtual package is but a generic package, so nothing prevents it from having its own
_CMDSmacros; it can download, configure and build stuff of its own.
Quoted 5 lines
Alternatively, you can have the toolchain-external package depend on each of the new toochain-external-foo when it is added, as a kind of manually-handled virtual package, before eventually converting it to a real virtual package once everything as been split out to individual providers.
So when the series if half applied, you have:
- The toolchain-external package infrastructure, which is used by some of the toolchains
- The toolchain-external package, which depending on the toolchain, either:
- Implements itself the logic (for toolchains not yet converted)
- Depends on another package, toolchain-external-foo, that uses the toolchain-external package infrastructure ?
So at some point, if you have two times the code to handle the external toolchain logic. But I agree that this can work.
Romain, what do you think?
Quoted 5 lines
Quoted 4 lines
With this in mind, going for one option
or another really doesn't make much difference. And knowing how painful it is to keep this series up-to-date, I'm personally happy with the current way things are introduced.
Quoted 8 lines
Since when is "maintaining this series is painful" a rationale for applying said series?
I've known (and maintained and still maintain) series that were (are) more difficukt to maintain than this one. And yet, you rarely if ever argued those series should be applied just because they were hard to maintain... (And I'm not speaking only for my own series, far from it.)
A series that is painful to maintain is definitely a very good rationale for applying that series quickly *if* people agree that the series is generally going in the right direction.
What happened with some of your series is that they clearly wasn't a consensus that we wanted what you were proposing. For example, the multi-br2-external stuff must have been a real pain to maintain for you for this long time. But the consensus around it clearly took a long time to exist, because people were not very enthusiastic about the additional complexity.
So, yes, the painfulness of maintaining a series is definitely a good reason to apply it quickly, as long as there is a general consensus that the stuff proposed by this series is what we want.
Best regards,
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com
PATCH v2 5/23 toolchain-external-blackfin-uclinux: new package
Hi Thomas,
Le 01/11/2016 ? 14:19, Thomas Petazzoni a ?crit :
Quoted 29 lines
Hello,
Quoted 9 lines · Yann E. MORIN
Quoted 4 lines
The virtual package should be named "toolchain-external", which clashes with the existing "toolchain-external" package that you remove in step (5). So you can't do your step (2) before doing your step (5), unless of course you name the packages differently.
A virtual package is but a generic package, so nothing prevents it from having its own
_CMDSmacros; it can download, configure and build stuff of its own.Quoted 5 lines
Alternatively, you can have the toolchain-external package depend on each of the new toochain-external-foo when it is added, as a kind of manually-handled virtual package, before eventually converting it to a real virtual package once everything as been split out to individual providers.
So when the series if half applied, you have:
- The toolchain-external package infrastructure, which is used by some of the toolchains
- The toolchain-external package, which depending on the toolchain, either:
- Implements itself the logic (for toolchains not yet converted)
Quoted 7 lines
- Depends on another package, toolchain-external-foo, that uses the toolchain-external package infrastructure ?
So at some point, if you have two times the code to handle the external toolchain logic. But I agree that this can work.
Romain, what do you think?
I think we should decide if we really want this series before -rc1 or delay it for -next.
If we want this series for -rc1, I might not have finished the rework on time. If not, I can take the time to rework with Yann's proposal.
Best regards,
Romain
PATCH v2 5/23 toolchain-external-blackfin-uclinux: new package
Romain, All,
On 2016-11-01 19:06 +0100, Romain Naour spake thusly:
Quoted 36 lines
Le 01/11/2016 ? 14:19, Thomas Petazzoni a ?crit :
Quoted 35 lines
Hello,
Quoted 9 lines · Yann E. MORIN
Quoted 4 lines
The virtual package should be named "toolchain-external", which clashes with the existing "toolchain-external" package that you remove in step (5). So you can't do your step (2) before doing your step (5), unless of course you name the packages differently.
A virtual package is but a generic package, so nothing prevents it from having its own
_CMDSmacros; it can download, configure and build stuff of its own.Quoted 5 lines
Alternatively, you can have the toolchain-external package depend on each of the new toochain-external-foo when it is added, as a kind of manually-handled virtual package, before eventually converting it to a real virtual package once everything as been split out to individual providers.
So when the series if half applied, you have:
- The toolchain-external package infrastructure, which is used by some of the toolchains
- The toolchain-external package, which depending on the toolchain, either:
- Implements itself the logic (for toolchains not yet converted)
- Depends on another package, toolchain-external-foo, that uses the toolchain-external package infrastructure ?
So at some point, if you have two times the code to handle the external toolchain logic. But I agree that this can work.
Quoted 6 lines
Quoted 1 line
Romain, what do you think?
I think we should decide if we really want this series before -rc1 or delay it for -next.
If we want this series for -rc1, I might not have finished the rework on time. If not, I can take the time to rework with Yann's proposal.
As we discussed on IRC just a few minutes ago, I am not in favour of you rewriting this series, whether it is material for -rc1 or -next.
As for the ordering of the toolchains, I think we should have them ordered by alpahbetiacal order.
After all, we never really advertised that defconfigs would be "reansposable" as-is during an upgrade. The real process for an upgrade should be:
make foo_defconfig
git pull
make oldconfig
(check)
make savedefconfigWhich is the only way we can ensure correctness in a configuration file, because that will also cover the legacy stuff. Not doing so would risk keeping legacy symbols in a defconfig, so the process above is what one should do when upgrading Buildroot.
Regards,
Yann E. MORIN.
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. | '------------------------------^-------^------------------^--------------------'
PATCH v2 5/23 toolchain-external-blackfin-uclinux: new package
Hello,
Quoted 2 lines · Yann E. MORIN
As we discussed on IRC just a few minutes ago, I am not in favour of you rewriting this series, whether it is material for -rc1 or -next.
IMO, we're too close to -rc1 for this series to go in. I'll probably merge the first five preparation patches, but I'd prefer to merge the rest in the next branch.
Quoted 2 lines
As for the ordering of the toolchains, I think we should have them ordered by alpahbetiacal order.
Right.
Quoted 2 lines
After all, we never really advertised that defconfigs would be "reansposable" as-is during an upgrade.
Well, this is what we are trying to achieve to some extent with the Config.in.legacy.
Quoted 7 lines
The real process for an upgrade should be:
make foo_defconfig git pull make oldconfig (check) make savedefconfig
Regardless of whether it's for backward compat reasons or not, I still think the Sourcery toolchain should be used by default on ARM EABI, and not the older Arago toolchain, even if Arago is sorted alphabetically before Sourcery. Which is why I suggest to have a "default" statement in the Config.in choice for external toolchains.
Best regards,
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com
PATCH v2 5/23 toolchain-external-blackfin-uclinux: new package
In reply to Romain NaourRomain, All,
Now for the review of this one external toolchain...
On 2016-10-29 14:08 +0200, Romain Naour spake thusly:
Quoted 9 lines
From: Thomas Petazzoni <[email protected]>
This commit adds a new package for the Analog Devices external toolchain for the Blackfin architecture. As of this commit, the code is currently not used, but it will be used as soon as the external toolchain infrastructure gets introduced in a future commit.
Signed-off-by Thomas Petazzoni <[email protected]>Signed-off-by Romain Naour <[email protected]>
[--SNIP--]
toolchain/toolchain-external/toolchain-external-blackfin-uclinux/toolchain-external-blackfin-uclinux.mk line 7
Quoted 13 lines
toolchain/toolchain-external/toolchain-external-blackfin-uclinux/toolchain-external-blackfin-uclinux.mk new file +7
-0@@ -0,0 +1,36 @@ +################################################################################ +# +# toolchain-external-blackfin-uclinux +# +################################################################################ + +TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_VERSION = 2014R1-RC2
TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_VERSION_MAJOR = 2014R1 TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_VERSION = $(TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_VERSION_MAJOR)-RC2
Then drop the computation below...
toolchain/toolchain-external/toolchain-external-blackfin-uclinux/toolchain-external-blackfin-uclinux.mk line 17
Quoted 9 lines
toolchain/toolchain-external/toolchain-external-blackfin-uclinux/toolchain-external-blackfin-uclinux.mk new file +9
-0+ifeq ($(BR2_BINFMT_FLAT),y) +TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_SUBDIR = bfin-uclinux +TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_PREFIX = bfin-uclinux +else +TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_SUBDIR = bfin-linux-uclibc +TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_PREFIX = bfin-linux-uclibc +endif + +TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_VERSION_MAJOR = $(firstword $(subst -, ,$(TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_VERSION)))
... here.
Regards,
Yann E. MORIN.
Quoted 25 lines
toolchain/toolchain-external/toolchain-external-blackfin-uclinux/toolchain-external-blackfin-uclinux.mk new file +18
-0+TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_SITE = http://downloads.sourceforge.net/project/adi-toolchain/$(TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_VERSION_MAJOR)/$(TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_VERSION)/i386 +TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_SOURCE = blackfin-toolchain-$(TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_VERSION).i386.tar.bz2 +TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_EXTRA_DOWNLOADS = blackfin-toolchain-uclibc-full-$(TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_VERSION).i386.tar.bz2 + +TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_STRIP_COMPONENTS = 3 + +# Special handling for Blackfin toolchain, because of the split in two +# tarballs, and the organization of tarball contents. The tarballs +# contain ./opt/uClinux/{bfin-uclinux,bfin-linux-uclibc} directories, +# which themselves contain the toolchain. This is why we strip more +# components than usual. +define TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_UCLIBC_EXTRA_EXTRACT + $(call suitable-extractor,$(TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_EXTRA_DOWNLOADS)) $(DL_DIR)/$(TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_EXTRA_DOWNLOADS) | \ + $(TAR) --strip-components=3 -C $(@D) $(TAR_OPTIONS) - +endef +TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_POST_EXTRACT_HOOKS += TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_UCLIBC_EXTRA_EXTRACT + +$(eval $(toolchain-external-package))Signature · 6 lines
2.5.5 _______________________________________________ buildroot mailing list buildroot at busybox.net http://lists.busybox.net/mailman/listinfo/buildroot
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. | '------------------------------^-------^------------------^--------------------'
PATCH v2 6/23 toolchain-external-arago-armv7a: new package
In reply to Romain NaourFrom: Thomas Petazzoni <[email protected]>
This commit adds a new package for the Arago external toolchain for the ARM architecture. As of this commit, the code is currently not used, but it will be used as soon as the external toolchain infrastructure gets introduced in a future commit.
--- .../toolchain-external-arago-armv7a/Config.in | 24 ++++++++++++++++++++++ .../Config.in.options | 6 ++++++ .../toolchain-external-arago-armv7a.hash | 3 +++ .../toolchain-external-arago-armv7a.mk | 23 +++++++++++++++++++++ 4 files changed, 56 insertions(+) create mode 100644 toolchain/toolchain-external/toolchain-external-arago-armv7a/Config.in create mode 100644 toolchain/toolchain-external/toolchain-external-arago-armv7a/Config.in.options create mode 100644 toolchain/toolchain-external/toolchain-external-arago-armv7a/toolchain-external-arago-armv7a.hash create mode 100644 toolchain/toolchain-external/toolchain-external-arago-armv7a/toolchain-external-arago-armv7a.mk
toolchain/toolchain-external/toolchain-external-arago-armv7a/Config.in new file +24 -0
@@ -0,0 +1,24 @@ +config BR2_TOOLCHAIN_EXTERNAL_ARAGO_ARMV7A + bool "Arago ARMv7 2011.09" + depends on BR2_arm + depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86" + depends on BR2_ARM_CPU_ARMV7A + depends on BR2_ARM_EABI + depends on BR2_ARM_CPU_HAS_VFPV3 + depends on !BR2_STATIC_LIBS + select BR2_TOOLCHAIN_EXTERNAL_GLIBC + select BR2_TOOLCHAIN_HAS_SSP + select BR2_TOOLCHAIN_HAS_NATIVE_RPC + select BR2_INSTALL_LIBSTDCPP + select BR2_HOSTARCH_NEEDS_IA32_LIBS + select BR2_TOOLCHAIN_GCC_AT_LEAST_4_5 + # kernel headers: 2.6.31 + help + Texas Instruments Arago 2011.09 toolchain, with gcc 4.5.3, + binutils 2.20.1, glibc 2.12, gdb 7.2. + + This toolchain uses -mfloat-abi=softfp (i.e can use FPU + instructions, but passes floating point function arguments + in integer registers), and requires a VFPv3 floating point + unit to work properly. This unit is available on most + Cortex-A ARM processors, but not all.
toolchain/toolchain-external/toolchain-external-arago-armv7a/Config.in.options new file +6 -0
@@ -0,0 +1,6 @@ +if BR2_TOOLCHAIN_EXTERNAL_ARAGO_ARMV7A + +config BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL + default "toolchain-external-arago-armv7a" + +endif
toolchain/toolchain-external/toolchain-external-arago-armv7a/toolchain-external-arago-armv7a.hash new file +3 -0
@@ -0,0 +1,3 @@ +# Locally calculated +sha256 f2febf3b3c565536461ad4405f1bcb835d75a6afb2a8bec958a1248cb4b81fc7 arago-2011.09-armv7a-linux-gnueabi-sdk.tar.bz2 +sha256 25fbf0513ad7322b15cbaae964cafadcbb4c939f2708f57f40b8f9f2d601122b arago-toolchain-2011.09-sources.tar.bz2
toolchain/toolchain-external/toolchain-external-arago-armv7a/toolchain-external-arago-armv7a.mk new file +23 -0
@@ -0,0 +1,23 @@ +################################################################################ +# +# toolchain-external-arago-armv7a +# +################################################################################ + +TOOLCHAIN_EXTERNAL_ARAGO_ARMV7A_SITE = http://software-dl.ti.com/sdoemb/sdoemb_public_sw/arago_toolchain/2011_09/exports +TOOLCHAIN_EXTERNAL_ARAGO_ARMV7A_VERSION = 2011.09 +TOOLCHAIN_EXTERNAL_ARAGO_ARMV7A_PREFIX = arm-arago-linux-gnueabi + +TOOLCHAIN_EXTERNAL_ARAGO_ARMV7A_SOURCE = \ + arago-$(TOOLCHAIN_EXTERNAL_ARAGO_ARMV7A_VERSION)-armv7a-linux-gnueabi-sdk.tar.bz2 + +TOOLCHAIN_EXTERNAL_ARAGO_ARMV7A_ACTUAL_SOURCE_TARBALL = arago-toolchain-$(TOOLCHAIN_EXTERNAL_ARAGO_ARMV7A_VERSION)-sources.tar.bz2 + +define TOOLCHAIN_EXTERNAL_ARAGO_ARMV7A_FIXUP_EXTRACT + mv $(@D)/arago-2011.09/armv7a/* $(@D)/ + rm -rf $(@D)/arago-2011.09/ +endef + +TOOLCHAIN_EXTERNAL_ARAGO_ARMV7A_POST_EXTRACT_HOOKS += TOOLCHAIN_EXTERNAL_ARAGO_ARMV7A_FIXUP_EXTRACT + +$(eval $(toolchain-external-package))
Signature · 1 line
2.5.5
PATCH v2 7/23 toolchain-external-arago-armv5te: new package
In reply to Romain NaourThis commit adds a new package for the Arago external toolchain for the ARM architecture. As of this commit, the code is currently not used, but it will be used as soon as the external toolchain infrastructure gets introduced in a future commit.
--- .../toolchain-external-arago-armv5te/Config.in | 19 ++++++++++++++++++ .../Config.in.options | 6 ++++++ .../toolchain-external-arago-armv5te.hash | 3 +++ .../toolchain-external-arago-armv5te.mk | 23 ++++++++++++++++++++++ 4 files changed, 51 insertions(+) create mode 100644 toolchain/toolchain-external/toolchain-external-arago-armv5te/Config.in create mode 100644 toolchain/toolchain-external/toolchain-external-arago-armv5te/Config.in.options create mode 100644 toolchain/toolchain-external/toolchain-external-arago-armv5te/toolchain-external-arago-armv5te.hash create mode 100644 toolchain/toolchain-external/toolchain-external-arago-armv5te/toolchain-external-arago-armv5te.mk
toolchain/toolchain-external/toolchain-external-arago-armv5te/Config.in new file +19 -0
@@ -0,0 +1,19 @@ +config BR2_TOOLCHAIN_EXTERNAL_ARAGO_ARMV5TE + bool "Arago ARMv5 2011.09" + depends on BR2_arm + depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86" + depends on !BR2_ARM_CPU_ARMV4 + depends on BR2_ARM_EABI + depends on !BR2_STATIC_LIBS + select BR2_TOOLCHAIN_EXTERNAL_GLIBC + select BR2_TOOLCHAIN_HAS_SSP + select BR2_TOOLCHAIN_HAS_NATIVE_RPC + select BR2_INSTALL_LIBSTDCPP + select BR2_HOSTARCH_NEEDS_IA32_LIBS + select BR2_TOOLCHAIN_GCC_AT_LEAST_4_5 + # kernel headers: 2.6.31 + help + Texas Instruments Arago ARMv5 2011.09 toolchain, with gcc + 4.5.3, binutils 2.20.1, glibc 2.12, gdb 7.2. + + This toolchain uses software-floating point.
toolchain/toolchain-external/toolchain-external-arago-armv5te/Config.in.options new file +6 -0
@@ -0,0 +1,6 @@ +if BR2_TOOLCHAIN_EXTERNAL_ARAGO_ARMV5TE + +config BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL + default "toolchain-external-arago-armv5te" + +endif
toolchain/toolchain-external/toolchain-external-arago-armv5te/toolchain-external-arago-armv5te.hash new file +3 -0
@@ -0,0 +1,3 @@ +# Locally calculated +sha256 254af7d02eb3bcc8345c78e131700bc995d65b68232caaed21150a5fd1456070 arago-2011.09-armv5te-linux-gnueabi-sdk.tar.bz2 +sha256 25fbf0513ad7322b15cbaae964cafadcbb4c939f2708f57f40b8f9f2d601122b arago-toolchain-2011.09-sources.tar.bz2
toolchain/toolchain-external/toolchain-external-arago-armv5te/toolchain-external-arago-armv5te.mk new file +23 -0
@@ -0,0 +1,23 @@ +################################################################################ +# +# toolchain-external-arago-armv5te +# +################################################################################ + +TOOLCHAIN_EXTERNAL_ARAGO_ARMV5TE_SITE = http://software-dl.ti.com/sdoemb/sdoemb_public_sw/arago_toolchain/2011_09/exports +TOOLCHAIN_EXTERNAL_ARAGO_ARMV5TE_VERSION = 2011.09 +TOOLCHAIN_EXTERNAL_ARAGO_ARMV5TE_PREFIX = arm-arago-linux-gnueabi + +TOOLCHAIN_EXTERNAL_ARAGO_ARMV5TE_SOURCE = \ + arago-$(TOOLCHAIN_EXTERNAL_ARAGO_ARMV5TE_VERSION)-armv5te-linux-gnueabi-sdk.tar.bz2 + +TOOLCHAIN_EXTERNAL_ARAGO_ARMV5TE_ACTUAL_SOURCE_TARBALL = arago-toolchain-$(TOOLCHAIN_EXTERNAL_ARAGO_ARMV5TE_VERSION)-sources.tar.bz2 + +define TOOLCHAIN_EXTERNAL_ARAGO_ARMV5TE_FIXUP_EXTRACT + mv $(@D)/arago-2011.09/armv5te/* $(@D)/ + rm -rf $(@D)/arago-2011.09/ +endef + +TOOLCHAIN_EXTERNAL_ARAGO_ARMV5TE_POST_EXTRACT_HOOKS += TOOLCHAIN_EXTERNAL_ARAGO_ARMV5TE_FIXUP_EXTRACT + +$(eval $(toolchain-external-package))
Signature · 1 line
2.5.5
PATCH v2 8/23 toolchain-external-custom: new package
In reply to Romain NaourFrom: Thomas Petazzoni <[email protected]>
This commit adds a new package to support custom external toolchains. As of this commit, the code is currently not used, but it will be used as soon as the external toolchain infrastructure gets introduced in a future commit.
--- .../toolchain-external-custom/Config.in | 5 + .../toolchain-external-custom/Config.in.options | 331 +++++++++++++++++++++ .../toolchain-external-custom.mk | 16 + 3 files changed, 352 insertions(+) create mode 100644 toolchain/toolchain-external/toolchain-external-custom/Config.in create mode 100644 toolchain/toolchain-external/toolchain-external-custom/Config.in.options create mode 100644 toolchain/toolchain-external/toolchain-external-custom/toolchain-external-custom.mk
toolchain/toolchain-external/toolchain-external-custom/Config.in new file +5 -0
@@ -0,0 +1,5 @@ +config BR2_TOOLCHAIN_EXTERNAL_CUSTOM + bool "Custom toolchain" + help + Use this option to use a custom toolchain pre-installed on + your system.
toolchain/toolchain-external/toolchain-external-custom/Config.in.options new file +331 -0
331 lines not on this page · raw message
toolchain/toolchain-external/toolchain-external-custom/toolchain-external-custom.mk new file +16 -0
@@ -0,0 +1,16 @@ +################################################################################ +# +# toolchain-external-custom +# +################################################################################ + +TOOLCHAIN_EXTERNAL_CUSTOM_SITE = $(patsubst %/,%,$(dir $(call qstrip,$(BR2_TOOLCHAIN_EXTERNAL_URL)))) +TOOLCHAIN_EXTERNAL_CUSTOM_SOURCE = $(notdir $(call qstrip,$(BR2_TOOLCHAIN_EXTERNAL_URL))) +TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX = $(call qstrip,$(BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX)) + +ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CUSTOM),y) +# We can't check hashes for custom downloaded toolchains +BR_NO_CHECK_HASH_FOR += $(TOOLCHAIN_EXTERNAL_SOURCE) +endif + +$(eval $(toolchain-external-package))
Signature · 1 line
2.5.5
PATCH v2 9/23 toolchain-external-linaro-aarch64: new package
In reply to Romain NaourFrom: Thomas Petazzoni <[email protected]>
This commit adds a new package for the Linaro external toolchain for the AArch64 architecture. As of this commit, the code is currently not used, but it will be used as soon as the external toolchain infrastructure gets introduced in a future commit.
--- .../toolchain-external-linaro-aarch64/Config.in | 15 +++++++++++++++ .../toolchain-external-linaro-aarch64/Config.in.options | 6 ++++++ .../toolchain-external-linaro-aarch64.hash | 3 +++ .../toolchain-external-linaro-aarch64.mk | 17 +++++++++++++++++ 4 files changed, 41 insertions(+) create mode 100644 toolchain/toolchain-external/toolchain-external-linaro-aarch64/Config.in create mode 100644 toolchain/toolchain-external/toolchain-external-linaro-aarch64/Config.in.options create mode 100644 toolchain/toolchain-external/toolchain-external-linaro-aarch64/toolchain-external-linaro-aarch64.hash create mode 100644 toolchain/toolchain-external/toolchain-external-linaro-aarch64/toolchain-external-linaro-aarch64.mk
toolchain/toolchain-external/toolchain-external-linaro-aarch64/Config.in new file +15 -0
@@ -0,0 +1,15 @@ +config BR2_TOOLCHAIN_EXTERNAL_LINARO_AARCH64 + bool "Linaro AArch64 2016.05" + depends on BR2_aarch64 + depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86" + depends on !BR2_STATIC_LIBS + select BR2_TOOLCHAIN_EXTERNAL_GLIBC + select BR2_TOOLCHAIN_HAS_SSP + select BR2_INSTALL_LIBSTDCPP + select BR2_TOOLCHAIN_HAS_NATIVE_RPC + select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_0 + select BR2_TOOLCHAIN_GCC_AT_LEAST_5 + select BR2_TOOLCHAIN_HAS_FORTRAN + help + Toolchain for the AArch64 architecture, from + http://www.linaro.org/engineering/armv8/
toolchain/toolchain-external/toolchain-external-linaro-aarch64/Config.in.options new file +6 -0
@@ -0,0 +1,6 @@ +if BR2_TOOLCHAIN_EXTERNAL_LINARO_AARCH64 + +config BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL + default "toolchain-external-linaro-aarch64" + +endif
toolchain/toolchain-external/toolchain-external-linaro-aarch64/toolchain-external-linaro-aarch64.hash new file +3 -0
@@ -0,0 +1,3 @@ +# Locally calculated +sha256 d43227248f282a652da42322fcf4abfd3021f2a2f62e0cf6e242d82f55966ba9 gcc-linaro-5.3.1-2016.05-i686_aarch64-linux-gnu.tar.xz +sha256 1941dcf6229d6706bcb89b7976d5d43d170efdd17c27d5fe1738e7ecf22adc37 gcc-linaro-5.3.1-2016.05-x86_64_aarch64-linux-gnu.tar.xz
toolchain/toolchain-external/toolchain-external-linaro-aarch64/toolchain-external-linaro-aarch64.mk new file +17 -0
@@ -0,0 +1,17 @@ +################################################################################ +# +# toolchain-external-linaro-aarch64 +# +################################################################################ + +TOOLCHAIN_EXTERNAL_LINARO_AARCH64_VERSION = 2016.05 +TOOLCHAIN_EXTERNAL_LINARO_AARCH64_SITE = https://releases.linaro.org/components/toolchain/binaries/5.3-$(TOOLCHAIN_EXTERNAL_LINARO_AARCH64_VERSION)/aarch64-linux-gnu +TOOLCHAIN_EXTERNAL_LINARO_AARCH64_PREFIX = aarch64-linux-gnu + +ifeq ($(HOSTARCH),x86) +TOOLCHAIN_EXTERNAL_LINARO_AARCH64_SOURCE = gcc-linaro-5.3.1-$(TOOLCHAIN_EXTERNAL_LINARO_AARCH64_VERSION)-i686_aarch64-linux-gnu.tar.xz +else +TOOLCHAIN_EXTERNAL_LINARO_AARCH64_SOURCE = gcc-linaro-5.3.1-$(TOOLCHAIN_EXTERNAL_LINARO_AARCH64_VERSION)-x86_64_aarch64-linux-gnu.tar.xz +endif + +$(eval $(toolchain-external-package))
Signature · 1 line
2.5.5
PATCH v2 10/23 toolchain-external-linaro-arm: new package
In reply to Romain NaourFrom: Thomas Petazzoni <[email protected]>
This commit adds a new package for the Linaro external toolchain for the ARM architecture. As of this commit, the code is currently not used, but it will be used as soon as the external toolchain infrastructure gets introduced in a future commit.
--- .../toolchain-external-linaro-arm/Config.in | 27 ++++++++++++++++++++++ .../Config.in.options | 6 +++++ .../toolchain-external-linaro-arm.hash | 3 +++ .../toolchain-external-linaro-arm.mk | 17 ++++++++++++++ 4 files changed, 53 insertions(+) create mode 100644 toolchain/toolchain-external/toolchain-external-linaro-arm/Config.in create mode 100644 toolchain/toolchain-external/toolchain-external-linaro-arm/Config.in.options create mode 100644 toolchain/toolchain-external/toolchain-external-linaro-arm/toolchain-external-linaro-arm.hash create mode 100644 toolchain/toolchain-external/toolchain-external-linaro-arm/toolchain-external-linaro-arm.mk
toolchain/toolchain-external/toolchain-external-linaro-arm/Config.in new file +27 -0
@@ -0,0 +1,27 @@ +comment "Linaro toolchains available for Cortex-A + EABIhf" + depends on BR2_arm + depends on !BR2_ARM_CPU_ARMV7A || !BR2_ARM_EABIHF + depends on !BR2_STATIC_LIBS + +config BR2_TOOLCHAIN_EXTERNAL_LINARO_ARM + bool "Linaro ARM 2016.05" + depends on BR2_arm + depends on BR2_ARM_CPU_ARMV7A + depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86" + depends on BR2_ARM_EABIHF + depends on !BR2_STATIC_LIBS + select BR2_TOOLCHAIN_EXTERNAL_GLIBC + select BR2_TOOLCHAIN_HAS_SSP + select BR2_TOOLCHAIN_HAS_NATIVE_RPC + select BR2_INSTALL_LIBSTDCPP + select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_0 + select BR2_TOOLCHAIN_GCC_AT_LEAST_5 + select BR2_TOOLCHAIN_HAS_FORTRAN + help + Linaro toolchain for the ARM architecture. It uses Linaro + GCC 2016.05 (based on gcc 5.3.1), Linaro GDB 2016.05 (based on + GDB 7.11.1), glibc 2.21, Binutils 2016.05 (based on 2.25). 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.
toolchain/toolchain-external/toolchain-external-linaro-arm/Config.in.options new file +6 -0
@@ -0,0 +1,6 @@ +if BR2_TOOLCHAIN_EXTERNAL_LINARO_ARM + +config BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL + default "toolchain-external-linaro-arm" + +endif
toolchain/toolchain-external/toolchain-external-linaro-arm/toolchain-external-linaro-arm.hash new file +3 -0
@@ -0,0 +1,3 @@ +# Locally calculated +sha256 f1421c580ce977226f4fefc9c409b3b423260cc65a6e9dc6da88bb3478a521a0 gcc-linaro-5.3.1-2016.05-i686_arm-linux-gnueabihf.tar.xz +sha256 987941c9fffdf56ffcbe90e8984673c16648c477b537fcf43add22fa62f161cd gcc-linaro-5.3.1-2016.05-x86_64_arm-linux-gnueabihf.tar.xz
toolchain/toolchain-external/toolchain-external-linaro-arm/toolchain-external-linaro-arm.mk new file +17 -0
@@ -0,0 +1,17 @@ +################################################################################ +# +# toolchain-external-linaro-arm +# +################################################################################ + +TOOLCHAIN_EXTERNAL_LINARO_ARM_VERSION = 2016.05 +TOOLCHAIN_EXTERNAL_LINARO_ARM_SITE = https://releases.linaro.org/components/toolchain/binaries/5.3-$(TOOLCHAIN_EXTERNAL_LINARO_ARM_VERSION)/arm-linux-gnueabihf +TOOLCHAIN_EXTERNAL_LINARO_ARM_PREFIX = arm-linux-gnueabihf + +ifeq ($(HOSTARCH),x86) +TOOLCHAIN_EXTERNAL_LINARO_ARM_SOURCE = gcc-linaro-5.3.1-$(TOOLCHAIN_EXTERNAL_LINARO_ARM_VERSION)-i686_arm-linux-gnueabihf.tar.xz +else +TOOLCHAIN_EXTERNAL_LINARO_ARM_SOURCE = gcc-linaro-5.3.1-$(TOOLCHAIN_EXTERNAL_LINARO_ARM_VERSION)-x86_64_arm-linux-gnueabihf.tar.xz +endif + +$(eval $(toolchain-external-package))
Signature · 1 line
2.5.5
PATCH v2 11/23 toolchain-external-linaro-armeb: new package
In reply to Romain NaourThis commit adds a new package for the Linaro external toolchain for the ARM big endian architecture. As of this commit, the code is currently not used, but it will be used as soon as the external toolchain infrastructure gets introduced in a future commit.
--- .../toolchain-external-linaro-armeb/Config.in | 26 ++++++++++++++++++++++ .../Config.in.options | 6 +++++ .../toolchain-external-linaro-armeb.hash | 3 +++ .../toolchain-external-linaro-armeb.mk | 17 ++++++++++++++ 4 files changed, 52 insertions(+) create mode 100644 toolchain/toolchain-external/toolchain-external-linaro-armeb/Config.in create mode 100644 toolchain/toolchain-external/toolchain-external-linaro-armeb/Config.in.options create mode 100644 toolchain/toolchain-external/toolchain-external-linaro-armeb/toolchain-external-linaro-armeb.hash create mode 100644 toolchain/toolchain-external/toolchain-external-linaro-armeb/toolchain-external-linaro-armeb.mk
toolchain/toolchain-external/toolchain-external-linaro-armeb/Config.in new file +26 -0
@@ -0,0 +1,26 @@ +comment "Linaro toolchains available for Cortex-A + EABIhf" + depends on BR2_armeb + depends on !BR2_ARM_CPU_ARMV7A || !BR2_ARM_EABIHF + depends on !BR2_STATIC_LIBS + +config BR2_TOOLCHAIN_EXTERNAL_LINARO_ARMEB + bool "Linaro armeb 2016.05" + depends on BR2_armeb + depends on BR2_ARM_CPU_ARMV7A + depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86" + depends on BR2_ARM_EABIHF + depends on !BR2_STATIC_LIBS + select BR2_TOOLCHAIN_EXTERNAL_GLIBC + select BR2_TOOLCHAIN_HAS_SSP + select BR2_TOOLCHAIN_HAS_NATIVE_RPC + select BR2_INSTALL_LIBSTDCPP + select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_0 + select BR2_TOOLCHAIN_GCC_AT_LEAST_5 + help + Linaro toolchain for the ARM big endian architecture. It + uses Linaro GCC 2016.05 (based on gcc 5.3.1), Linaro GDB + 2016.05 (based on GDB 7.11.1), glibc 2.21, Binutils 2016.05 + (based on 2.25). 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.
toolchain/toolchain-external/toolchain-external-linaro-armeb/Config.in.options new file +6 -0
@@ -0,0 +1,6 @@ +if BR2_TOOLCHAIN_EXTERNAL_LINARO_ARMEB + +config BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL + default "toolchain-external-linaro-armeb" + +endif
toolchain/toolchain-external/toolchain-external-linaro-armeb/toolchain-external-linaro-armeb.hash new file +3 -0
@@ -0,0 +1,3 @@ +# Locally calculated +sha256 f6e9c0d3320760fe8f89e9ec3acdd7b4da7eff889c094b4a2acc286fd46f334f gcc-linaro-5.3.1-2016.05-i686_armeb-linux-gnueabihf.tar.xz +sha256 6cf41c8944be56279cc14992aa075174b7a4c5938502536266eaaeef048f9440 gcc-linaro-5.3.1-2016.05-x86_64_armeb-linux-gnueabihf.tar.xz
toolchain/toolchain-external/toolchain-external-linaro-armeb/toolchain-external-linaro-armeb.mk new file +17 -0
@@ -0,0 +1,17 @@ +################################################################################ +# +# toolchain-external-linaro-armeb +# +################################################################################ + +TOOLCHAIN_EXTERNAL_LINARO_ARMEB_VERSION = 2016.05 +TOOLCHAIN_EXTERNAL_LINARO_ARMEB_SITE = https://releases.linaro.org/components/toolchain/binaries/5.3-$(TOOLCHAIN_EXTERNAL_LINARO_ARMEB_VERSION)/armeb-linux-gnueabihf +TOOLCHAIN_EXTERNAL_LINARO_ARMEB_PREFIX = armeb-linux-gnueabihf + +ifeq ($(HOSTARCH),x86) +TOOLCHAIN_EXTERNAL_LINARO_ARMEB_SOURCE = gcc-linaro-5.3.1-$(TOOLCHAIN_EXTERNAL_LINARO_ARMEB_VERSION)-i686_armeb-linux-gnueabihf.tar.xz +else +TOOLCHAIN_EXTERNAL_LINARO_ARMEB_SOURCE = gcc-linaro-5.3.1-$(TOOLCHAIN_EXTERNAL_LINARO_ARMEB_VERSION)-x86_64_armeb-linux-gnueabihf.tar.xz +endif + +$(eval $(toolchain-external-package))
Signature · 1 line
2.5.5
PATCH v2 12/23 toolchain-external-musl-cross: new package
In reply to Romain NaourFrom: Thomas Petazzoni <[email protected]>
This commit adds a new package for the pre-built Musl external toolchains. As of this commit, the code is currently not used, but it will be used as soon as the external toolchain infrastructure gets introduced in a future commit.
--- .../toolchain-external-musl-cross/Config.in | 30 ++++++++++++++++++ .../Config.in.options | 6 ++++ .../toolchain-external-musl-cross.hash | 12 ++++++++ .../toolchain-external-musl-cross.mk | 36 ++++++++++++++++++++++ 4 files changed, 84 insertions(+) create mode 100644 toolchain/toolchain-external/toolchain-external-musl-cross/Config.in create mode 100644 toolchain/toolchain-external/toolchain-external-musl-cross/Config.in.options create mode 100644 toolchain/toolchain-external/toolchain-external-musl-cross/toolchain-external-musl-cross.hash create mode 100644 toolchain/toolchain-external/toolchain-external-musl-cross/toolchain-external-musl-cross.mk
toolchain/toolchain-external/toolchain-external-musl-cross/Config.in new file +30 -0
@@ -0,0 +1,30 @@ +config BR2_TOOLCHAIN_EXTERNAL_MUSL_CROSS + bool "Musl 1.1.12 toolchain" + depends on (BR2_arm && BR2_ARM_EABI && BR2_USE_MMU) || \ + (BR2_arm && BR2_ARM_EABIHF && !BR2_ARM_CPU_ARMV4 && BR2_USE_MMU) || \ + (BR2_armeb && BR2_ARM_EABI && !BR2_ARM_CPU_ARMV7A && BR2_USE_MMU) || \ + BR2_i386 || (BR2_mips && !BR2_SOFT_FLOAT) || \ + BR2_mipsel || (BR2_powerpc && BR2_powerpc_CLASSIC) || \ + BR2_sh4 || BR2_sh4eb || \ + BR2_x86_64 + depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86" + # Unsupported MIPS cores + depends on !BR2_mips_interaptiv && !BR2_mips_m5100 && !BR2_mips_m5101 + # Unsupported for MIPS R6 + depends on !BR2_MIPS_CPU_MIPS32R6 && !BR2_MIPS_CPU_MIPS64R6 + select BR2_TOOLCHAIN_EXTERNAL_MUSL + select BR2_TOOLCHAIN_HAS_SSP + select BR2_INSTALL_LIBSTDCPP + select BR2_HOSTARCH_NEEDS_IA32_LIBS + select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12 + select BR2_TOOLCHAIN_GCC_AT_LEAST_5 + help + Toolchain based on the Musl C library, provided by the + musl-cross project. It uses gcc 5.3, binutils 2.25.1 and + musl 1.1.12. It does not have a cross debugger included. + + The ARM soft-float toolchain is built for ARMv4t, while the + ARM hard-float toolchain is built for ARMv5t. + The x86 toolchain is built for i486. + + http://musl.codu.org/
toolchain/toolchain-external/toolchain-external-musl-cross/Config.in.options new file +6 -0
@@ -0,0 +1,6 @@ +if BR2_TOOLCHAIN_EXTERNAL_MUSL_CROSS + +config BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL + default "toolchain-external-musl-cross" + +endif
toolchain/toolchain-external/toolchain-external-musl-cross/toolchain-external-musl-cross.hash new file +12 -0
@@ -0,0 +1,12 @@ +# Locally calculated +sha256 e32c23d0b83639fc10ad06666ec086b66453b9be44415fe1a818c3c3b526dfb1 crossx86-armeb-linux-musleabi-1.1.12.tar.xz +sha256 eb81bd5d6ada454c6e854b18bfa8dc801333782152166f6cab9fb7cd11692987 crossx86-arm-linux-musleabi-1.1.12.tar.xz +sha256 a050da284ff22d291ae71dfc249ebdedb18334b8d626804760ce7d5963e392e6 crossx86-arm-linux-musleabihf-1.1.12.tar.xz +sha256 18d07f5c8f4cfe373461cf21cf7b1bfefa820a37e96a69b68e0f315d528b4286 crossx86-i486-linux-musl-1.1.12.tar.xz +sha256 1c1480c2618097e402fe804c1431fbd49b0d43520af81d4c1a695a2fa13a3922 crossx86-mipsel-linux-musl-1.1.12.tar.xz +sha256 f0a8b3eb0566138ab3cc77bc09648be15bc325da974ec98b9e67f2fb82be3295 crossx86-mipsel-sf-linux-musl-1.1.12.tar.xz +sha256 6a99989c3dff56776981f6760b2c54dcb9e4032be1d649968bb06c04f2e64177 crossx86-mips-linux-musl-1.1.12.tar.xz +sha256 c082adc3e8b0750bb22ca82628524fd525fd77f534517ac5a66e7ac5a297ee6e crossx86-powerpc-linux-musl-1.1.12.tar.xz +sha256 8c6c9ebb54040e47947b4d3af6823d01fef2bb6ee81b18903c801030c066092b crossx86-sh4eb-linux-musl-1.1.12.tar.xz +sha256 ae9a0a5a60226aa086a56628cfd5c1d283c9dffdca37891d7e6adc2bd21ac2e0 crossx86-sh4-linux-musl-1.1.12.tar.xz +sha256 27e0ea1043a58aebeadf1dacd67e47fd0b5c19fc36f42c9374e5fa3308df09c6 crossx86-x86_64-linux-musl-1.1.12.tar.xz
toolchain/toolchain-external/toolchain-external-musl-cross/toolchain-external-musl-cross.mk new file +36 -0
@@ -0,0 +1,36 @@ +################################################################################ +# +# toolchain-external-musl-cross +# +################################################################################ + +TOOLCHAIN_EXTERNAL_MUSL_CROSS_VERSION = 1.1.12 +TOOLCHAIN_EXTERNAL_MUSL_CROSS_SITE = https://googledrive.com/host/0BwnS5DMB0YQ6bDhPZkpOYVFhbk0/musl-$(TOOLCHAIN_EXTERNAL_MUSL_CROSS_VERSION) + +ifeq ($(BR2_arm)$(BR2_ARM_EABI),yy) +TOOLCHAIN_EXTERNAL_MUSL_CROSS_PREFIX = arm-linux-musleabi +else ifeq ($(BR2_arm)$(BR2_ARM_EABIHF),yy) +TOOLCHAIN_EXTERNAL_MUSL_CROSS_PREFIX = arm-linux-musleabihf +else ifeq ($(BR2_armeb),y) +TOOLCHAIN_EXTERNAL_MUSL_CROSS_PREFIX = armeb-linux-musleabi +else ifeq ($(BR2_i386),y) +TOOLCHAIN_EXTERNAL_MUSL_CROSS_PREFIX = i486-linux-musl +else ifeq ($(BR2_mips):$(BR2_SOFT_FLOAT),y:) +TOOLCHAIN_EXTERNAL_MUSL_CROSS_PREFIX = mips-linux-musl +else ifeq ($(BR2_mipsel):$(BR2_SOFT_FLOAT),y:) +TOOLCHAIN_EXTERNAL_MUSL_CROSS_PREFIX = mipsel-linux-musl +else ifeq ($(BR2_mipsel):$(BR2_SOFT_FLOAT),y:y) +TOOLCHAIN_EXTERNAL_MUSL_CROSS_PREFIX = mipsel-sf-linux-musl +else ifeq ($(BR2_powerpc),y) +TOOLCHAIN_EXTERNAL_MUSL_CROSS_PREFIX = powerpc-linux-musl +else ifeq ($(BR2_sh4),y) +TOOLCHAIN_EXTERNAL_MUSL_CROSS_PREFIX = sh4-linux-musl +else ifeq ($(BR2_sh4eb),y) +TOOLCHAIN_EXTERNAL_MUSL_CROSS_PREFIX = sh4eb-linux-musl +else ifeq ($(BR2_x86_64),y) +TOOLCHAIN_EXTERNAL_MUSL_CROSS_PREFIX = x86_64-linux-musl +endif + +TOOLCHAIN_EXTERNAL_MUSL_CROSS_SOURCE = crossx86-$(TOOLCHAIN_EXTERNAL_MUSL_CROSS_PREFIX)-$(TOOLCHAIN_EXTERNAL_MUSL_CROSS_VERSION).tar.xz + +$(eval $(toolchain-external-package))
Signature · 1 line
2.5.5
PATCH v2 13/23 toolchain-external-codesourcery-aarch64: new package
In reply to Romain NaourFrom: Thomas Petazzoni <[email protected]>
This commit adds a new package for the Sourcery CodeBench external toolchain for the AArch64 architecture. As of this commit, the code is currently not used, but it will be used as soon as the external toolchain infrastructure gets introduced in a future commit.
--- .../Config.in | 17 ++++++++++++++++ .../Config.in.options | 6 ++++++ .../toolchain-external-codesourcery-aarch64.hash | 3 +++ .../toolchain-external-codesourcery-aarch64.mk | 23 ++++++++++++++++++++++ 4 files changed, 49 insertions(+) create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-aarch64/Config.in create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-aarch64/Config.in.options create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-aarch64/toolchain-external-codesourcery-aarch64.hash create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-aarch64/toolchain-external-codesourcery-aarch64.mk
toolchain/toolchain-external/toolchain-external-codesourcery-aarch64/Config.in new file +17 -0
@@ -0,0 +1,17 @@ +config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64 + bool "CodeSourcery AArch64 2014.11" + depends on BR2_aarch64 + depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86" + depends on !BR2_STATIC_LIBS + select BR2_TOOLCHAIN_EXTERNAL_GLIBC + select BR2_TOOLCHAIN_HAS_SSP + select BR2_INSTALL_LIBSTDCPP + select BR2_HOSTARCH_NEEDS_IA32_LIBS + select BR2_TOOLCHAIN_HAS_NATIVE_RPC + select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_16 + select BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 + help + Sourcery CodeBench toolchain for the AArch64 architecture, + from Mentor Graphics. It uses gcc 4.9.1, binutils + 2.24.51.20140217, glibc 2.20, gdb 7.7.50 and kernel headers + 3.16.2.
toolchain/toolchain-external/toolchain-external-codesourcery-aarch64/Config.in.options new file +6 -0
@@ -0,0 +1,6 @@ +if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64 + +config BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL + default "toolchain-external-codesourcery-aarch64" + +endif
toolchain/toolchain-external/toolchain-external-codesourcery-aarch64/toolchain-external-codesourcery-aarch64.hash new file +3 -0
@@ -0,0 +1,3 @@ +# Locally calculated +sha256 405aada821146755c5f2df566375c2a682456d6b8451ee47b88cf1a52b093676 aarch64-amd-2014.11-95-aarch64-amd-linux-gnu-i686-pc-linux-gnu.tar.bz2 +sha256 3f50dd6ee433eb5b6992a1071b988e50379a738f54f58722bc60081613764716 aarch64-amd-2014.11-95-aarch64-amd-linux-gnu.src.tar.bz2
toolchain/toolchain-external/toolchain-external-codesourcery-aarch64/toolchain-external-codesourcery-aarch64.mk new file +23 -0
@@ -0,0 +1,23 @@ +################################################################################ +# +# toolchain-external-codesourcery-aarch64 +# +################################################################################ + +TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64_SITE = http://sourcery.mentor.com/public/gnu_toolchain/$(TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64_PREFIX) +TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64_VERSION = 2014.11-95 +TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64_SOURCE = aarch64-amd-$(TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64_VERSION)-$(TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64_PREFIX)-i686-pc-linux-gnu.tar.bz2 +TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64_ACTUAL_SOURCE_TARBALL = aarch64-amd-$(TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64_VERSION)-$(TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64_PREFIX).src.tar.bz2 +TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64_PREFIX = aarch64-amd-linux-gnu + +define TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64_STAGING_FIXUP + ln -sf ld-2.20.so $(STAGING_DIR)/lib/ld-linux-aarch64.so.1 +endef +TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64_POST_INSTALL_STAGING_HOOKS += TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64_STAGING_FIXUP + +define TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64_TARGET_FIXUP + ln -sf ld-2.20.so $(TARGET_DIR)/lib/ld-linux-aarch64.so.1 +endef +TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64_POST_INSTALL_TARGET_HOOKS += TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64_TARGET_FIXUP + +$(eval $(toolchain-external-package))
Signature · 1 line
2.5.5
PATCH v2 14/23 toolchain-external-codesourcery-arm: new package
In reply to Romain NaourFrom: Thomas Petazzoni <[email protected]>
This commit adds a new package for the Sourcery CodeBench external toolchain for the ARM architecture. As of this commit, the code is currently not used, but it will be used as soon as the external toolchain infrastructure gets introduced in a future commit.
--- .../toolchain-external-codesourcery-arm/Config.in | 33 ++++++++++++++++++++++ .../Config.in.options | 6 ++++ .../toolchain-external-codesourcery-arm.hash | 3 ++ .../toolchain-external-codesourcery-arm.mk | 14 +++++++++ 4 files changed, 56 insertions(+) create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-arm/Config.in create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-arm/Config.in.options create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-arm/toolchain-external-codesourcery-arm.hash create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-arm/toolchain-external-codesourcery-arm.mk
toolchain/toolchain-external/toolchain-external-codesourcery-arm/Config.in new file +33 -0
@@ -0,0 +1,33 @@ +config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM + bool "Sourcery CodeBench ARM 2014.05" + depends on BR2_arm + depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86" + depends on BR2_ARM_EABI + depends on !BR2_STATIC_LIBS + select BR2_TOOLCHAIN_EXTERNAL_GLIBC + select BR2_TOOLCHAIN_HAS_SSP + select BR2_TOOLCHAIN_HAS_NATIVE_RPC + select BR2_INSTALL_LIBSTDCPP + select BR2_HOSTARCH_NEEDS_IA32_LIBS + select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_13 + select BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 + help + Sourcery CodeBench toolchain for the ARM architecture, from + Mentor Graphics. It uses gcc 4.8.3, binutils 2.24.51, glibc + 2.18 and gdb 7.7.50, kernel headers 3.13. It has support + for the following variants: + - ARMv5TE, little endian, soft-float, glibc + Select ARM926T, ARM10T, XScale or another ARMv5 core + Select BR2_SOFT_FLOAT + - ARMv4T, little endian, soft-float, glibc + Select ARM720T, ARM920T, ARM922T or another ARMv4 core + Select BR2_SOFT_FLOAT + - ARMv7-A, Thumb 2, little endian, soft-float, glibc + Select Cortex-A8, Cortex-A9 or another ARMv7-A core + Select BR2_SOFT_FLOAT + Set BR2_TARGET_OPTIMIZATION to -mthumb + +comment "Sourcery CodeBench toolchains available for the EABI ABI" + depends on BR2_arm + depends on !BR2_ARM_EABI + depends on !BR2_STATIC_LIBS
toolchain/toolchain-external/toolchain-external-codesourcery-arm/Config.in.options new file +6 -0
@@ -0,0 +1,6 @@ +if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM + +config BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL + default "toolchain-external-codesourcery-arm" + +endif
toolchain/toolchain-external/toolchain-external-codesourcery-arm/toolchain-external-codesourcery-arm.hash new file +3 -0
@@ -0,0 +1,3 @@ +# Locally calculated +sha256 39ee0e789034334ecc89af94e838e3a4815400ac5ff980f808f466b04778532e arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 +sha256 e16a5b1e41d7ff1e74161f9405182001bc8d1360d89564e73911032e6966cc0d arm-2014.05-29-arm-none-linux-gnueabi.src.tar.bz2
toolchain/toolchain-external/toolchain-external-codesourcery-arm/toolchain-external-codesourcery-arm.mk new file +14 -0
@@ -0,0 +1,14 @@ +################################################################################ +# +# toolchain-external-codesourcery-arm +# +################################################################################ + +TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM_VERSION = 2014.05-29 + +TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM_SITE = http://sourcery.mentor.com/public/gnu_toolchain/$(TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM_PREFIX) +TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM_SOURCE = arm-$(TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM_VERSION)-$(TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM_PREFIX)-i686-pc-linux-gnu.tar.bz2 +TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM_ACTUAL_SOURCE_TARBALL = arm-$(TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM_VERSION)-$(TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM_PREFIX).src.tar.bz2 +TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM_PREFIX = arm-none-linux-gnueabi + +$(eval $(toolchain-external-package))
Signature · 1 line
2.5.5
PATCH v2 15/23 toolchain-external-codesourcery-mips: new package
In reply to Romain NaourFrom: Thomas Petazzoni <[email protected]>
This commit adds a new package for the Sourcery CodeBench external toolchain for the MIPS architecture. As of this commit, the code is currently not used, but it will be used as soon as the external toolchain infrastructure gets introduced in a future commit.
--- .../toolchain-external-codesourcery-mips/Config.in | 93 ++++++++++++++++++++++ .../Config.in.options | 6 ++ .../toolchain-external-codesourcery-mips.hash | 3 + .../toolchain-external-codesourcery-mips.mk | 14 ++++ 4 files changed, 116 insertions(+) create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-mips/Config.in create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-mips/Config.in.options create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-mips/toolchain-external-codesourcery-mips.hash create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-mips/toolchain-external-codesourcery-mips.mk
toolchain/toolchain-external/toolchain-external-codesourcery-mips/Config.in new file +93 -0
@@ -0,0 +1,93 @@ +config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS + bool "Sourcery CodeBench MIPS 2016.05" + depends on BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el + depends on BR2_MIPS_CPU_MIPS32R2 || BR2_MIPS_CPU_MIPS64R2 + # Unsupported MIPS cores + depends on !BR2_mips_interaptiv + depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86" + depends on !BR2_MIPS_NABI32 + depends on !BR2_STATIC_LIBS + select BR2_TOOLCHAIN_EXTERNAL_GLIBC + select BR2_TOOLCHAIN_HAS_SSP + select BR2_TOOLCHAIN_HAS_NATIVE_RPC + select BR2_INSTALL_LIBSTDCPP + select BR2_HOSTARCH_NEEDS_IA32_LIBS + select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_4 + select BR2_TOOLCHAIN_GCC_AT_LEAST_5 + help + Sourcery CodeBench toolchain for the MIPS architecture, from + Mentor Graphics. It uses gcc 5.3, binutils 2.25.51, glibc + 2.23, uClibc 0.9.30 and gdb 7.10.50, kernel headers 4.4.1. It + has support for the following variants: + - MIPS32r2 - Big-Endian, 2008 NaN, O32 + Select MIPS (big endian) core + Disable BR2_SOFT_FLOAT + Set BR2_TARGET_OPTIMIZATION to -mnan=2008 + - MIPS32r2 - Big-Endian, O32 + Select MIPS (big endian) core + Disable BR2_SOFT_FLOAT + - MIPS32r2 - Big-Endian, O32, MIPS16 + Select MIPS (big endian) core + Disable BR2_SOFT_FLOAT + Set BR2_TARGET_OPTIMIZATION to -mips16 + - MIPS32r2 - Big-Endian, Soft-Float, O32 + Select MIPS (big endian) core + Select BR2_SOFT_FLOAT + - MIPS32r2 - Big-Endian, Soft-Float, O32, MIPS16 + Select MIPS (big endian) core + Select BR2_SOFT_FLOAT + Set BR2_TARGET_OPTIMIZATION to -mips16 + - MIPS32r2 - Little-Endian, 2008 NaN, O32 + Select MIPS (little endian) core + Disable BR2_SOFT_FLOAT + Set BR2_TARGET_OPTIMIZATION to -mnan=2008 + - MIPS32r2 - Little-Endian, O32 + Select MIPS (little endian) core + Disable BR2_SOFT_FLOAT + - MIPS32r2 - Little-Endian, O32, MIPS16 + Select MIPS (little endian) core + Disable BR2_SOFT_FLOAT + Set BR2_TARGET_OPTIMIZATION to -mips16 + - MIPS32r2 - Little-Endian, Soft-Float, O32 + Select MIPS (little endian) core + Select BR2_SOFT_FLOAT + - MIPS32r2 - Little-Endian, Soft-Float, O32, MIPS16 + Select MIPS (little endian) core + Select BR2_SOFT_FLOAT + Set BR2_TARGET_OPTIMIZATION to -mips16 + - MIPS32r2 - Little-Endian, Soft-Float, O32, microMIPS + Select MIPS (little endian) core + Select BR2_SOFT_FLOAT + Set BR2_TARGET_OPTIMIZATION to -mmicromips + - MIPS32r2 - uClibc, Big-Endian, 2008 NaN, O32 + Not usable in Buildroot yet. + - MIPS32r2 - uClibc, Big-Endian, O32 + Not usable in Buildroot yet. + - MIPS32r2 - uClibc, Big-Endian, Soft-Float, O32 + Not usable in Buildroot yet. + - MIPS32r2 - uClibc, Little-Endian, 2008 NaN, O32 + Not usable in Buildroot yet. + - MIPS32r2 - uClibc, Little-Endian, O32 + Not usable in Buildroot yet. + - MIPS32r2 - uClibc, Little-Endian, Soft-Float, O32 + Not usable in Buildroot yet. + - MIPS64r2 - Big-Endian, N64 + Select MIPS64 (big endian) core + Select the n64 ABI + Disable BR2_SOFT_FLOAT + - MIPS64r2 - Big-Endian, Soft-Float, N64 + Select MIPS64 (big endian) core + Select the n64 ABI + Select BR2_SOFT_FLOAT + - MIPS64r2 - Little-Endian, N64 + Select MIPS64 (little endian) core + Select the n64 ABI + Disable BR2_SOFT_FLOAT + - MIPS64r2 - Little-Endian, Soft-Float, N64 + Select MIPS64 (little endian) core + Select the n64 ABI + Select BR2_SOFT_FLOAT + +comment "Sourcery CodeBench toolchains are only available for MIPS/MIPS64 o32 and n64" + depends on BR2_MIPS_NABI32 + depends on !BR2_STATIC_LIBS
toolchain/toolchain-external/toolchain-external-codesourcery-mips/Config.in.options new file +6 -0
@@ -0,0 +1,6 @@ +if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS + +config BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL + default "toolchain-external-codesourcery-mips" + +endif
toolchain/toolchain-external/toolchain-external-codesourcery-mips/toolchain-external-codesourcery-mips.hash new file +3 -0
@@ -0,0 +1,3 @@ +# Locally computed +sha256 d354447c4c5160439dafd5464fa3a0266dd41e79f973477238e4f0215a6b5397 mips-2016.05-8-mips-linux-gnu-i686-pc-linux-gnu.tar.bz2 +sha256 2658e55d5b71bba25d6f77e868e18b200ea5f75c8add7ed3a9266e716d9adfff mips-2016.05-8-mips-linux-gnu.src.tar.bz2
toolchain/toolchain-external/toolchain-external-codesourcery-mips/toolchain-external-codesourcery-mips.mk new file +14 -0
@@ -0,0 +1,14 @@ +################################################################################ +# +# toolchain-external-codesourcery-mips +# +################################################################################ + +TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS_VERSION = 2016.05-8 + +TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS_SITE = http://sourcery.mentor.com/public/gnu_toolchain/$(TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS_PREFIX) +TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS_SOURCE = mips-$(TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS_VERSION)-$(TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS_PREFIX)-i686-pc-linux-gnu.tar.bz2 +TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS_ACTUAL_SOURCE_TARBALL = mips-$(TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS_VERSION)-$(TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS_PREFIX).src.tar.bz2 +TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS_PREFIX = mips-linux-gnu + +$(eval $(toolchain-external-package))
Signature · 1 line
2.5.5
PATCH v2 16/23 toolchain-external-codesourcery-niosII: new package
In reply to Romain NaourFrom: Thomas Petazzoni <[email protected]>
This commit adds a new package for the Sourcery CodeBench external toolchain for the NIOS2 architecture. As of this commit, the code is currently not used, but it will be used as soon as the external toolchain infrastructure gets introduced in a future commit.
--- .../toolchain-external-codesourcery-niosII/Config.in | 17 +++++++++++++++++ .../Config.in.options | 6 ++++++ .../toolchain-external-codesourcery-niosII.hash | 3 +++ .../toolchain-external-codesourcery-niosII.mk | 14 ++++++++++++++ 4 files changed, 40 insertions(+) create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-niosII/Config.in create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-niosII/Config.in.options create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-niosII/toolchain-external-codesourcery-niosII.hash create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-niosII/toolchain-external-codesourcery-niosII.mk
toolchain/toolchain-external/toolchain-external-codesourcery-niosII/Config.in new file +17 -0
@@ -0,0 +1,17 @@ +config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII + bool "Sourcery CodeBench Nios-II 2016.05" + depends on BR2_nios2 + depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86" + depends on !BR2_STATIC_LIBS + select BR2_TOOLCHAIN_EXTERNAL_GLIBC + select BR2_TOOLCHAIN_HAS_SSP + select BR2_TOOLCHAIN_HAS_NATIVE_RPC + select BR2_INSTALL_LIBSTDCPP + select BR2_HOSTARCH_NEEDS_IA32_LIBS + select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_4 + select BR2_TOOLCHAIN_GCC_AT_LEAST_5 + select BR2_TOOLCHAIN_HAS_BINUTILS_BUG_19405 # based-on binutils-2.25.1 + help + Sourcery CodeBench toolchain for the Nios-II architecture, + from Mentor Graphics. It uses gcc 5.3, binutils 2.25.51, + glibc 2.23, gdb 7.10.50 and kernel headers 4.4.
toolchain/toolchain-external/toolchain-external-codesourcery-niosII/Config.in.options new file +6 -0
@@ -0,0 +1,6 @@ +if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII + +config BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL + default "toolchain-external-codesourcery-niosII" + +endif
toolchain/toolchain-external/toolchain-external-codesourcery-niosII/toolchain-external-codesourcery-niosII.hash new file +3 -0
@@ -0,0 +1,3 @@ +# Locally calculated +sha256 750639290744adda931c81fa2cd2ffc2bde972488047824dcfaa53c42562191d sourceryg++-2016.05-10-nios2-linux-gnu-i686-pc-linux-gnu.tar.bz2 +sha256 3dc1c2685c0472059547dd7becb5dc991541b8176af39fa7aa5f601d38b9879a sourceryg++-2016.05-10-nios2-linux-gnu.src.tar.bz2
toolchain/toolchain-external/toolchain-external-codesourcery-niosII/toolchain-external-codesourcery-niosII.mk new file +14 -0
@@ -0,0 +1,14 @@ +################################################################################ +# +# toolchain-external-codesourcery-niosII +# +################################################################################ + +TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII_VERSION = 2016.05-10 + +TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII_SITE = http://sourcery.mentor.com/public/gnu_toolchain/$(TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII_PREFIX) +TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII_SOURCE = sourceryg++-$(TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII_VERSION)-$(TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII_PREFIX)-i686-pc-linux-gnu.tar.bz2 +TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII_ACTUAL_SOURCE_TARBALL = sourceryg++-$(TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII_VERSION)-$(TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII_PREFIX).src.tar.bz2 +TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII_PREFIX = nios2-linux-gnu + +$(eval $(toolchain-external-package))
Signature · 1 line
2.5.5
PATCH v2 17/23 toolchain-external-codesourcery-sh: new package
In reply to Romain NaourFrom: Thomas Petazzoni <[email protected]>
This commit adds a new package for the Sourcery CodeBench external toolchain for the SuperH architecture. As of this commit, the code is currently not used, but it will be used as soon as the external toolchain infrastructure gets introduced in a future commit.
--- .../toolchain-external-codesourcery-sh/Config.in | 25 ++++++++++++++++++++++ .../Config.in.options | 6 ++++++ .../toolchain-external-codesourcery-sh.hash | 3 +++ .../toolchain-external-codesourcery-sh.mk | 14 ++++++++++++ 4 files changed, 48 insertions(+) create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-sh/Config.in create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-sh/Config.in.options create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-sh/toolchain-external-codesourcery-sh.hash create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-sh/toolchain-external-codesourcery-sh.mk
toolchain/toolchain-external/toolchain-external-codesourcery-sh/Config.in new file +25 -0
@@ -0,0 +1,25 @@ +config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_SH + bool "Sourcery CodeBench SH 2012.09" + depends on BR2_sh4a || BR2_sh4aeb + depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86" + depends on !BR2_STATIC_LIBS + select BR2_TOOLCHAIN_EXTERNAL_GLIBC + select BR2_TOOLCHAIN_HAS_SSP + select BR2_TOOLCHAIN_HAS_NATIVE_RPC + select BR2_INSTALL_LIBSTDCPP + select BR2_HOSTARCH_NEEDS_IA32_LIBS + select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_5 + select BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 + help + Sourcery CodeBench toolchain for the SuperH architecture, + from Mentor Graphics. It uses gcc 4.7.2, binutils 2.23.51, + glibc 2.16, uClibc 0.9.30, gdb 7.4.50 and kernel headers + 3.5.4. It has support for the following variants: + - SH4A, glibc, little endian + Default. + - SH4A, glibc, big endian + Add -mb to BR2_TARGET_OPTIMIZATION + - SH4A, uClibc, little endian + Not usable in Buildroot yet. + - SH4A, uClibc, big endian + Not usable in Buildroot yet.
toolchain/toolchain-external/toolchain-external-codesourcery-sh/Config.in.options new file +6 -0
@@ -0,0 +1,6 @@ +if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_SH + +config BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL + default "toolchain-external-codesourcery-sh" + +endif
toolchain/toolchain-external/toolchain-external-codesourcery-sh/toolchain-external-codesourcery-sh.hash new file +3 -0
@@ -0,0 +1,3 @@ +# Locally calculated +sha256 59d6766fde244931aa52db01433d5acd051998762a931121c5fc109536a1a802 renesas-2012.09-61-sh-linux-gnu-i686-pc-linux-gnu.tar.bz2 +sha256 e2e58c10e52395d5d35157e35f85233f713c6f9223a652dfc56194cfd2eed004 renesas-2012.09-61-sh-linux-gnu.src.tar.bz2
toolchain/toolchain-external/toolchain-external-codesourcery-sh/toolchain-external-codesourcery-sh.mk new file +14 -0
@@ -0,0 +1,14 @@ +################################################################################ +# +# toolchain-external-sourcery-sh +# +################################################################################ + +TOOLCHAIN_EXTERNAL_CODESOURCERY_SH_VERSION = 2012.09-61 + +TOOLCHAIN_EXTERNAL_CODESOURCERY_SH_SITE = https://sourcery.mentor.com/public/gnu_toolchain/$(TOOLCHAIN_EXTERNAL_CODESOURCERY_SH_PREFIX) +TOOLCHAIN_EXTERNAL_CODESOURCERY_SH_SOURCE = renesas-$(TOOLCHAIN_EXTERNAL_CODESOURCERY_SH_VERSION)-$(TOOLCHAIN_EXTERNAL_CODESOURCERY_SH_PREFIX)-i686-pc-linux-gnu.tar.bz2 +TOOLCHAIN_EXTERNAL_CODESOURCERY_SH_ACTUAL_SOURCE_TARBALL = renesas-$(TOOLCHAIN_EXTERNAL_CODESOURCERY_SH_VERSION)-$(TOOLCHAIN_EXTERNAL_CODESOURCERY_SH_PREFIX).src.tar.bz2 +TOOLCHAIN_EXTERNAL_CODESOURCERY_SH_PREFIX = sh-linux-gnu + +$(eval $(toolchain-external-package))
Signature · 1 line
2.5.5
PATCH v2 18/23 toolchain-external-codesourcery-x86: new package
In reply to Romain NaourFrom: Thomas Petazzoni <[email protected]>
This commit adds a new package for the Sourcery CodeBench external toolchain for the x86 architecture. As of this commit, the code is currently not used, but it will be used as soon as the external toolchain infrastructure gets introduced in a future commit.
--- .../toolchain-external-codesourcery-x86/Config.in | 29 ++++++++++++++++++++++ .../Config.in.options | 6 +++++ .../toolchain-external-codesourcery-x86.hash | 3 +++ .../toolchain-external-codesourcery-x86.mk | 13 ++++++++++ 4 files changed, 51 insertions(+) create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-x86/Config.in create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-x86/Config.in.options create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-x86/toolchain-external-codesourcery-x86.hash create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-x86/toolchain-external-codesourcery-x86.mk
toolchain/toolchain-external/toolchain-external-codesourcery-x86/Config.in new file +29 -0
@@ -0,0 +1,29 @@ +config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_X86 + bool "Sourcery CodeBench x86/x86_64 2012.09" + depends on BR2_i386 || BR2_x86_64 + depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86" + depends on !BR2_STATIC_LIBS + depends on !BR2_x86_jaguar + depends on !BR2_x86_steamroller + select BR2_TOOLCHAIN_EXTERNAL_GLIBC + select BR2_TOOLCHAIN_HAS_SSP + select BR2_TOOLCHAIN_HAS_NATIVE_RPC + select BR2_INSTALL_LIBSTDCPP + select BR2_HOSTARCH_NEEDS_IA32_LIBS + select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_5 + select BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 + help + Sourcery CodeBench toolchain for the x86/x86_64 + architectures, from Mentor Graphics. It uses gcc 4.7.2, + binutils 2.23.51, glibc 2.16, gdb 7.4.50 and kernel headers + 3.5.4. It has support for the following variants: + - Intel Pentium 4, glibc, 32 bits + Default for x86, nothing special to do. + - Intel Atom, glibc, 32 bits + Select an Atom core + - Intel Xeon, glibc, 64 bits + Default for x86_64, nothing special to do. + - Intel Core 2, glibc, 64 bits + Select a Core 2 core + Other architecture variants (beyond Pentium-4/Xeon) are + supported as well, but glibc is not optimised for it.
toolchain/toolchain-external/toolchain-external-codesourcery-x86/Config.in.options new file +6 -0
@@ -0,0 +1,6 @@ +if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_X86 + +config BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL + default "toolchain-external-codesourcery-x86" + +endif
toolchain/toolchain-external/toolchain-external-codesourcery-x86/toolchain-external-codesourcery-x86.hash new file +3 -0
@@ -0,0 +1,3 @@ +# Locally calculated +sha256 ea804cf02014369da52abc4f64e91e96bde2dd2230aca96109459013d4545458 ia32-2012.09-62-i686-pc-linux-gnu-i386-linux.tar.bz2 +sha256 1a9519e415a1e6892c760bf21f7e98f3a633a9d1c5bb8781a96d338e4dd62717 ia32-2012.09-62-i686-pc-linux-gnu.src.tar.bz2
toolchain/toolchain-external/toolchain-external-codesourcery-x86/toolchain-external-codesourcery-x86.mk new file +13 -0
@@ -0,0 +1,13 @@ +################################################################################ +# +# toolchain-external-codesourcery-x86 +# +################################################################################ + +TOOLCHAIN_EXTERNAL_CODESOURCERY_X86_SITE = https://sourcery.mentor.com/public/gnu_toolchain/$(TOOLCHAIN_EXTERNAL_CODESOURCERY_X86_PREFIX) +TOOLCHAIN_EXTERNAL_CODESOURCERY_X86_VERSION = 2012.09-62 +TOOLCHAIN_EXTERNAL_CODESOURCERY_X86_SOURCE = ia32-$(TOOLCHAIN_EXTERNAL_CODESOURCERY_X86_VERSION)-$(TOOLCHAIN_EXTERNAL_CODESOURCERY_X86_PREFIX)-i386-linux.tar.bz2 +TOOLCHAIN_EXTERNAL_CODESOURCERY_X86_ACTUAL_SOURCE_TARBALL = ia32-$(TOOLCHAIN_EXTERNAL_CODESOURCERY_X86_VERSION)-$(TOOLCHAIN_EXTERNAL_CODESOURCERY_X86_PREFIX).src.tar.bz2 +TOOLCHAIN_EXTERNAL_CODESOURCERY_X86_PREFIX = i686-pc-linux-gnu + +$(eval $(toolchain-external-package))
Signature · 1 line
2.5.5
PATCH v2 19/23 toolchain-external-codesourcery-amd64: new package
In reply to Romain NaourThis commit adds a new package for the Sourcery CodeBench external toolchain for the x86_64 architecture. As of this commit, the code is currently not used, but it will be used as soon as the external toolchain infrastructure gets introduced in a future commit.
--- .../Config.in | 24 ++++++++++++++++++++++ .../Config.in.options | 6 ++++++ .../toolchain-external-codesourcery-amd64.hash | 3 +++ .../toolchain-external-codesourcery-amd64.mk | 13 ++++++++++++ 4 files changed, 46 insertions(+) create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-amd64/Config.in create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-amd64/Config.in.options create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-amd64/toolchain-external-codesourcery-amd64.hash create mode 100644 toolchain/toolchain-external/toolchain-external-codesourcery-amd64/toolchain-external-codesourcery-amd64.mk
toolchain/toolchain-external/toolchain-external-codesourcery-amd64/Config.in new file +24 -0
@@ -0,0 +1,24 @@ +config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_AMD64 + bool "Sourcery CodeBench AMD64 2015.11" + depends on BR2_x86_64 + depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86" + depends on !BR2_STATIC_LIBS + depends on BR2_x86_jaguar || BR2_x86_steamroller + select BR2_TOOLCHAIN_EXTERNAL_GLIBC + select BR2_TOOLCHAIN_HAS_SSP + select BR2_TOOLCHAIN_HAS_NATIVE_RPC + select BR2_INSTALL_LIBSTDCPP + select BR2_HOSTARCH_NEEDS_IA32_LIBS + select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_2 + select BR2_TOOLCHAIN_GCC_AT_LEAST_5 + help + Sourcery CodeBench toolchain for the amd64 (x86_64) + architectures, from Mentor Graphics. It uses gcc 5.2, + binutils 2.25.51, glibc 2.22, gdb 7.10.50 and kernel headers + 4.2. It has support for the following variants: + - AMD Puma/Jaguar (family 16h), glibc + Default for x86_64, nothing special to do. + - AMD Steamroller (family 15h), glibc + Select a steamroller core. + No other architecture variants are supported since glibc + is optimized for one of these two baselines.
toolchain/toolchain-external/toolchain-external-codesourcery-amd64/Config.in.options new file +6 -0
@@ -0,0 +1,6 @@ +if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_AMD64 + +config BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL + default "toolchain-external-codesourcery-amd64" + +endif
toolchain/toolchain-external/toolchain-external-codesourcery-amd64/toolchain-external-codesourcery-amd64.hash new file +3 -0
@@ -0,0 +1,3 @@ +# Locally calculated +sha256 3c31206c8b9277f409ee00e4777ba82dfa6da2a4ca0926501cd5fb6bbd1b407e amd-2015.11-139-x86_64-amd-linux-gnu-i686-pc-linux-gnu.tar.bz2 +sha256 0b673f5035f97d5d03c31272cddab0f117d39ad76a5ad2a3bc98c156571527de amd-2015.11-139-x86_64-amd-linux-gnu.src.tar.bz2
toolchain/toolchain-external/toolchain-external-codesourcery-amd64/toolchain-external-codesourcery-amd64.mk new file +13 -0
@@ -0,0 +1,13 @@ +################################################################################ +# +# toolchain-external-codesourcery-amd64 +# +################################################################################ + +TOOLCHAIN_EXTERNAL_CODESOURCERY_AMD64_SITE = https://sourcery.mentor.com/public/gnu_toolchain/$(TOOLCHAIN_EXTERNAL_CODESOURCERY_AMD64_PREFIX) +TOOLCHAIN_EXTERNAL_CODESOURCERY_AMD64_VERSION = 2015.11-139 +TOOLCHAIN_EXTERNAL_CODESOURCERY_AMD64_SOURCE = amd-$(TOOLCHAIN_EXTERNAL_CODESOURCERY_AMD64_VERSION)-$(TOOLCHAIN_EXTERNAL_CODESOURCERY_AMD64_PREFIX)-i686-pc-linux-gnu.tar.bz2 +TOOLCHAIN_EXTERNAL_CODESOURCERY_AMD64_ACTUAL_SOURCE_TARBALL = amd-$(TOOLCHAIN_EXTERNAL_CODESOURCERY_AMD64_VERSION)-$(TOOLCHAIN_EXTERNAL_CODESOURCERY_AMD64_PREFIX).src.tar.bz2 +TOOLCHAIN_EXTERNAL_CODESOURCERY_AMD64_PREFIX = x86_64-amd-linux-gnu + +$(eval $(toolchain-external-package))
Signature · 1 line
2.5.5
PATCH v2 20/23 toolchain-external-synopsys-arc: new package
In reply to Romain NaourFrom: Thomas Petazzoni <[email protected]>
This commit adds a new package for the Synopsys external toolchain for the ARC architecture. As of this commit, the code is currently not used, but it will be used as soon as the external toolchain infrastructure gets introduced in a future commit.
--- .../toolchain-external-synopsys-arc/Config.in | 20 +++++++++++++++++ .../Config.in.options | 6 +++++ .../toolchain-external-synopsys-arc.hash | 5 +++++ .../toolchain-external-synopsys-arc.mk | 26 ++++++++++++++++++++++ 4 files changed, 57 insertions(+) create mode 100644 toolchain/toolchain-external/toolchain-external-synopsys-arc/Config.in create mode 100644 toolchain/toolchain-external/toolchain-external-synopsys-arc/Config.in.options create mode 100644 toolchain/toolchain-external/toolchain-external-synopsys-arc/toolchain-external-synopsys-arc.hash create mode 100644 toolchain/toolchain-external/toolchain-external-synopsys-arc/toolchain-external-synopsys-arc.mk
toolchain/toolchain-external/toolchain-external-synopsys-arc/Config.in new file +20 -0
@@ -0,0 +1,20 @@ +config BR2_TOOLCHAIN_EXTERNAL_SYNOPSYS_ARC + bool "Synopsys ARC 2014.12 toolchain" + depends on BR2_arc + depends on BR2_HOSTARCH = "x86_64" + # does not provide IPv6, and lacks many uClibc features + # expected by Buildroot. The next Synopsys toolchain version + # should fix those problems. + depends on BROKEN + select BR2_TOOLCHAIN_EXTERNAL_UCLIBC + select BR2_INSTALL_LIBSTDCPP + select BR2_TOOLCHAIN_HAS_NATIVE_RPC + select BR2_ENABLE_LOCALE + select BR2_USE_WCHAR + select BR2_TOOLCHAIN_HAS_THREADS + select BR2_TOOLCHAIN_HAS_THREADS_DEBUG + select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_13 + select BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 + help + Toolchain for the ARC cores, from + https://github.com/foss-for-synopsys-dwc-arc-processors/toolchain/releases
toolchain/toolchain-external/toolchain-external-synopsys-arc/Config.in.options new file +6 -0
@@ -0,0 +1,6 @@ +if BR2_TOOLCHAIN_EXTERNAL_SYNOPSYS_ARC + +config BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL + default "toolchain-external-synopsys-arc" + +endif
toolchain/toolchain-external/toolchain-external-synopsys-arc/toolchain-external-synopsys-arc.hash new file +5 -0
@@ -0,0 +1,5 @@ +# Locally calculated +sha256 1fa4ea2c8616623205f1c7beca02ea31b019099528a7433e5b020b0876b93bf3 arc_gnu_2014.12_prebuilt_uclibc_le_arc700_linux_install.tar.gz +sha256 1080f07fcae2bfc176a3ea8d30b9ed8eaecab70fb786639d6ec70cae8322df10 arc_gnu_2014.12_prebuilt_uclibc_be_arc700_linux_install.tar.gz +sha256 aaaf6facd1f60a3cd2a537154ea39cd7d70501c175e30e01a97e8df6cb8226c7 arc_gnu_2014.12_prebuilt_uclibc_le_archs_linux_install.tar.gz +sha256 30711c5f15762764d4cd5ec1e6ced5b1fddd03aac41c424b0c4ec8a45d5d79cd arc_gnu_2014.12_prebuilt_uclibc_be_archs_linux_install.tar.gz
toolchain/toolchain-external/toolchain-external-synopsys-arc/toolchain-external-synopsys-arc.mk new file +26 -0
@@ -0,0 +1,26 @@ +################################################################################ +# +# toolchain-external-synopsys-arc +# +################################################################################ + +TOOLCHAIN_EXTERNAL_SYNOPSYS_ARC_VERSION = 2014.12 +TOOLCHAIN_EXTERNAL_SYNOPSYS_ARC_SITE = https://github.com/foss-for-synopsys-dwc-arc-processors/toolchain/releases/download/arc-$(TOOLCHAIN_EXTERNAL_SYNOPSYS_ARC_VERSION) + +ifeq ($(BR2_arc750d)$(BR2_arc770d),y) +TOOLCHAIN_EXTERNAL_SYNOPSYS_ARC_CORE = arc700 +else +TOOLCHAIN_EXTERNAL_SYNOPSYS_ARC_CORE = archs +endif + +ifeq ($(BR2_arcle),y) +TOOLCHAIN_EXTERNAL_SYNOPSYS_ARC_ENDIANESS = le +TOOLCHAIN_EXTERNAL_SYNOPSYS_ARC_PREFIX = arc-linux +else +TOOLCHAIN_EXTERNAL_SYNOPSYS_ARC_ENDIANESS = be +TOOLCHAIN_EXTERNAL_SYNOPSYS_ARC_PREFIX = arceb-linux +endif + +TOOLCHAIN_EXTERNAL_SYNOPSYS_ARC_SOURCE = arc_gnu_$(TOOLCHAIN_EXTERNAL_SYNOPSYS_ARC_VERSION)_prebuilt_uclibc_$(TOOLCHAIN_EXTERNAL_SYNOPSYS_ENDIANESS)_$(TOOLCHAIN_EXTERNAL_SYNOPSYS_CORE)_linux_install.tar.gz + +$(eval $(toolchain-external-package))
Signature · 1 line
2.5.5
PATCH v2 21/23 toolchain-external-codescape-img-mips: new package
In reply to Romain NaourThis commit adds a new package for the Codescape external toolchain for the MIPS architecture. As of this commit, the code is currently not used, but it will be used as soon as the external toolchain infrastructure gets introduced in a future commit.
--- .../Config.in | 62 ++++++++++++++++++++++ .../Config.in.options | 6 +++ .../toolchain-external-codescape-img-mips.hash | 3 ++ .../toolchain-external-codescape-img-mips.mk | 48 +++++++++++++++++ 4 files changed, 119 insertions(+) create mode 100644 toolchain/toolchain-external/toolchain-external-codescape-img-mips/Config.in create mode 100644 toolchain/toolchain-external/toolchain-external-codescape-img-mips/Config.in.options create mode 100644 toolchain/toolchain-external/toolchain-external-codescape-img-mips/toolchain-external-codescape-img-mips.hash create mode 100644 toolchain/toolchain-external/toolchain-external-codescape-img-mips/toolchain-external-codescape-img-mips.mk
toolchain/toolchain-external/toolchain-external-codescape-img-mips/Config.in new file +62 -0
@@ -0,0 +1,62 @@ +config BR2_TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS + bool "Codescape IMG GNU Linux Toolchain 2016.05" + depends on BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el + depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86" + depends on BR2_MIPS_CPU_MIPS32R6 || (BR2_MIPS_CPU_MIPS64R6 && !BR2_MIPS_SOFT_FLOAT) + select BR2_TOOLCHAIN_EXTERNAL_GLIBC + select BR2_INSTALL_LIBSTDCPP + select BR2_HOSTARCH_NEEDS_IA32_LIBS + select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_0 + select BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 + select BR2_TOOLCHAIN_HAS_FORTRAN + help + Codescape IMG GNU Linux Toolchain 2015.10 for the MIPS + architecture, from Imagination Technologies. It uses gcc + 4.9.2, binutils 2.24.90, glibc 2.20, gdb 7.9.1 and kernel + headers 4.0. It has support for the following variants: + - MIPS32r6 - Big-Endian, Hard-Float, 2008 NaN, o32 ABI + Select 'MIPS (big endian)' Target Architecture + Select 'mips 32r6' Target Architecture Variant + Disable 'Use soft-float' + - MIPS32r6 - Big-Endian, Soft-Float, 2008 NaN, o32 ABI + Select 'MIPS (big endian)' Target Architecture + Select 'mips 32r6' Target Architecture Variant + Enable 'Use soft-float' + - MIPS32r6 - Little-Endian, Hard-Float, 2008 NaN, o32 ABI + Select 'MIPS (little endian)' Target Architecture + Select 'mips 32r6' Target Architecture Variant + Disable 'Use soft-float' + - MIPS32r6 - Little-Endian, Soft-Float, 2008 NaN, o32 ABI + Select 'MIPS (little endian)' Target Architecture + Select 'mips 32r6' Target Architecture Variant + Enable 'Use soft-float' + - MIPS32r6 - Little-Endian, Hard-Float, 2008 NaN, o32 ABI, microMIPS + Select 'MIPS (little endian)' Target Architecture + Select 'mips 32r6' Target Architecture Variant + Disable 'Use soft-float' + Set BR2_TARGET_OPTIMIZATION to '-mmicromips' + - MIPS32r6 - Little-Endian, Soft-Float, 2008 NaN, o32 ABI, microMIPS + Select 'MIPS (little endian)' Target Architecture + Select 'mips 32r6' Target Architecture Variant + Enable 'Use soft-float' + Set BR2_TARGET_OPTIMIZATION to '-mmicromips' + - MIPS64r6 - Big-Endian, Hard-Float, 2008 NaN, n32 ABI + Select 'MIPS64 (big endian)' Target Architecture + Select 'mips 64r6' Target Architecture Variant + Select 'n32' Target ABI + Disable 'Use soft-float' + - MIPS64r6 - Little-Endian, Hard-Float, 2008 NaN, n32 ABI + Select 'MIPS64 (little endian)' Target Architecture + Select 'mips 64r6' Target Architecture Variant + Select 'n32' Target ABI + Disable 'Use soft-float' + - MIPS64r6 - Big-Endian, Hard-Float, 2008 NaN, n64 ABI + Select 'MIPS64 (big endian)' Target Architecture + Select 'mips 64r6' Target Architecture Variant + Select 'n64' Target ABI + Disable 'Use soft-float' + - MIPS64r6 - Little-Endian, Hard-Float, 2008 NaN, n64 ABI + Select 'MIPS64 (little endian)' Target Architecture + Select 'mips 64r6' Target Architecture Variant + Select 'n64' Target ABI + Disable 'Use soft-float'
toolchain/toolchain-external/toolchain-external-codescape-img-mips/Config.in.options new file +6 -0
@@ -0,0 +1,6 @@ +if BR2_TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS + +config BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL + default "toolchain-external-codescape-img-mips" + +endif
toolchain/toolchain-external/toolchain-external-codescape-img-mips/toolchain-external-codescape-img-mips.hash new file +3 -0
@@ -0,0 +1,3 @@ +# Codescape toolchains from Imagination Technologies +# From: http://codescape-mips-sdk.imgtec.com/components/toolchain/2016.05-03/downloads.html +sha256 e3c1f292ac6a9f12480af431c85a7ed9dfa011a52fd62a50be3363ec6b9bc872 Codescape.GNU.Tools.Package.2016.05-03.for.MIPS.IMG.Linux.CentOS-5.x86.tar.gz
toolchain/toolchain-external/toolchain-external-codescape-img-mips/toolchain-external-codescape-img-mips.mk new file +48 -0
48 lines not on this page · raw message
Signature · 1 line
2.5.5
PATCH v2 22/23 toolchain-external-codescape-mti-mips: new package
In reply to Romain NaourThis commit adds a new package for the Codescape external toolchain for the MIPS architecture. As of this commit, the code is currently not used, but it will be used as soon as the external toolchain infrastructure gets introduced in a future commit.
--- .../Config.in | 73 ++++++++++++++++++++++ .../Config.in.options | 6 ++ .../toolchain-external-codescape-mti-mips.hash | 3 + .../toolchain-external-codescape-mti-mips.mk | 48 ++++++++++++++ 4 files changed, 130 insertions(+) create mode 100644 toolchain/toolchain-external/toolchain-external-codescape-mti-mips/Config.in create mode 100644 toolchain/toolchain-external/toolchain-external-codescape-mti-mips/Config.in.options create mode 100644 toolchain/toolchain-external/toolchain-external-codescape-mti-mips/toolchain-external-codescape-mti-mips.hash create mode 100644 toolchain/toolchain-external/toolchain-external-codescape-mti-mips/toolchain-external-codescape-mti-mips.mk
toolchain/toolchain-external/toolchain-external-codescape-mti-mips/Config.in new file +73 -0
@@ -0,0 +1,73 @@ +config BR2_TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS + bool "Codescape MTI GNU Linux Toolchain 2016.05" + depends on BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el + depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86" + depends on BR2_MIPS_CPU_MIPS32R2 || (BR2_MIPS_CPU_MIPS64R2 && !BR2_MIPS_SOFT_FLOAT) || \ + BR2_MIPS_CPU_MIPS32R5 || (BR2_MIPS_CPU_MIPS64R5 && !BR2_MIPS_SOFT_FLOAT) + select BR2_TOOLCHAIN_EXTERNAL_GLIBC + select BR2_INSTALL_LIBSTDCPP + select BR2_HOSTARCH_NEEDS_IA32_LIBS + select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_0 + select BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 + select BR2_TOOLCHAIN_HAS_FORTRAN + help + Codescape MTI GNU Linux Toolchain 2015.10 for the MIPS + architecture, from Imagination Technologies. It uses gcc + 4.9.2, binutils 2.24.90, glibc 2.20, gdb 7.9.1 and kernel + headers 4.0. It has support for the following variants: + - MIPS32r2 - Big-Endian, Hard-Float, Legacy NaN, o32 ABI + Select 'MIPS (big endian)' Target Architecture + Select 'mips 32r2' Target Architecture Variant + Disable 'Use soft-float' + - MIPS32r2 - Big-Endian, Hard-Float, 2008 NaN, o32 ABI + Select 'MIPS (big endian)' Target Architecture + Select 'mips 32r2' Target Architecture Variant + Disable 'Use soft-float' + Set BR2_TARGET_OPTIMIZATION to '-mnan=2008' + - MIPS32r2 - Big-Endian, Soft-Float, Legacy NaN, o32 ABI + Select 'MIPS (big endian)' Target Architecture + Select 'mips 32r2' Target Architecture Variant + Enable 'Use soft-float' + - MIPS32r2 - Little-Endian, Hard-Float, Legacy NaN, o32 ABI + Select 'MIPS (little endian)' Target Architecture + Select 'mips 32r2' Target Architecture Variant + Disable 'Use soft-float' + - MIPS32r2 - Little-Endian, Hard-Float, 2008 NaN, o32 ABI + Select 'MIPS (little endian)' Target Architecture + Select 'mips 32r2' Target Architecture Variant + Disable 'Use soft-float' + Set BR2_TARGET_OPTIMIZATION to '-mnan=2008' + - MIPS32r2 - Little-Endian, Soft-Float, Legacy NaN, o32 ABI + Select 'MIPS (little endian)' Target Architecture + Select 'mips 32r2' Target Architecture Variant + Enable 'Use soft-float' + - MIPS32r2 - Little-Endian, Hard-Float, 2008 NaN, o32 ABI, microMIPS + Select 'MIPS (little endian)' Target Architecture + Select 'mips 32r2' Target Architecture Variant + Enable 'Use soft-float' + Set BR2_TARGET_OPTIMIZATION to '-mmicromips' + - MIPS32r2 - Little-Endian, Soft-Float, Legacy NaN, o32 ABI, microMIPS + Select 'MIPS (little endian)' Target Architecture + Select 'mips 32r2' Target Architecture Variant + Disable 'Use soft-float' + Set BR2_TARGET_OPTIMIZATION to '-mmicromips' + - MIPS64r2 - Big-Endian, Hard-Float, Legacy NaN, n32 ABI + Select 'MIPS64 (big endian)' Target Architecture + Select 'mips 64r2' Target Architecture Variant + Select 'n32' Target ABI + Disable 'Use soft-float' + - MIPS64r2 - Little-Endian, Hard-Float, Legacy NaN, n32 ABI + Select 'MIPS64 (little endian)' Target Architecture + Select 'mips 64r2' Target Architecture Variant + Select 'n32' Target ABI + Disable 'Use soft-float' + - MIPS64r2 - Big-Endian, Hard-Float, Legacy NaN, n64 ABI + Select 'MIPS64 (big endian)' Target Architecture + Select 'mips 64r2' Target Architecture Variant + Select 'n64' Target ABI + Disable 'Use soft-float' + - MIPS64r2 - Little-Endian, Hard-Float, Legacy NaN, n64 ABI + Select 'MIPS64 (little endian)' Target Architecture + Select 'mips 64r2' Target Architecture Variant + Select 'n64' Target ABI + Disable 'Use soft-float'
toolchain/toolchain-external/toolchain-external-codescape-mti-mips/Config.in.options new file +6 -0
@@ -0,0 +1,6 @@ +if BR2_TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS + +config BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL + default "toolchain-external-codescape-mti-mips" + +endif
toolchain/toolchain-external/toolchain-external-codescape-mti-mips/toolchain-external-codescape-mti-mips.hash new file +3 -0
@@ -0,0 +1,3 @@ +# Codescape toolchains from Imagination Technologies +# From: http://codescape-mips-sdk.imgtec.com/components/toolchain/2016.05-03/downloads.html +sha256 10b8ab6d7c492abc19ecabafedc6bc5f12ff88107a3cb76dc452b3a9522d9c56 Codescape.GNU.Tools.Package.2016.05-03.for.MIPS.MTI.Linux.CentOS-5.x86.tar.gz
toolchain/toolchain-external/toolchain-external-codescape-mti-mips/toolchain-external-codescape-mti-mips.mk new file +48 -0
48 lines not on this page · raw message
Signature · 1 line
2.5.5
PATCH v2 23/23 toolchain-external: introduce and use external toolchain infra
In reply to Romain NaourThis fairly large commit is needed to switch in one atomic change from the old single package based external toolchain handling, to a mechanism based on a common external toolchain package infrastructure and separate packages for each toolchain family. The purpose is to clearly separate the common external toolchain logic from the toolchain-specific details and generally make the external toolchain code hopefully easier to maintain.
To achieve this, this commit:
- Introduce in pkg-toolchain-external.mk the 'toolchain-external-package' macro, which is the core of the external toolchain package infrastructure. Like any other package infrastructure, it defines a number of variables and provides a behavior for the configure, build and install steps.
- Turn the toolchain-external.mk file in a simple virtual package, which automatically depends on the selected external toolchain. Like any other virtual package, the Kconfig variable BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL indicates which package is providing the currently selected toolchain.
- Removes all the toolchain-specific definitions from toolchain/toolchain-external/Config.in as well as the hash file, and instead use the per-toolchain packages in the subdirectories toolchain/toolchain-external/*/.
- Wine: Use $(TOOLCHAIN_EXTERNAL_PREFIX) instead of
$(BR2_TOOLCHAIN_EXTERNAL_PREFIX) which was removed.
- Remove the old toolchain-external.hash file. The hash is now provided by the toolchain package.
Notes:
- The hack for setting TOOLCHAIN_EXTERNAL_BIN for the ADI bfin toolchain is no longer needed.
---
v2: - merge all pkg-toolchain-external* into pkg-toolchain-external.mk (Arnout)
- rebase on master
fix two big issue:
1) TOOLCHAIN_EXTERNAL_COMMON_WRAPPER_ARGS were not included in the toolchain wrapper.
2) TOOLCHAIN_EXTERNAL_CFLAGS wasn't included in $(2)_CFLAGS, same for TOOLCHAIN_EXTERNAL_LIBS and $(2)_LIBS. So no libraries were intalled in target.
---
package/Makefile.in | 2 +-
package/wine/wine.mk | 2 +-
toolchain/toolchain-external/Config.in | 982 +--------------------
...chain-external.mk => pkg-toolchain-external.mk} | 816 +++++++----------
.../toolchain-external/toolchain-external.hash | 67 --
toolchain/toolchain-external/toolchain-external.mk | 817 +----------------
6 files changed, 388 insertions(+), 2298 deletions(-)
copy toolchain/toolchain-external/{toolchain-external.mk => pkg-toolchain-external.mk} (53%)
delete mode 100644 toolchain/toolchain-external/toolchain-external.hashpackage/Makefile.in +1 -1
@@ -184,7 +184,7 @@ endif ifeq ($(BR2_TOOLCHAIN_BUILDROOT),y) TARGET_CROSS = $(HOST_DIR)/usr/bin/$(GNU_TARGET_NAME)- else -TARGET_CROSS = $(HOST_DIR)/usr/bin/$(call qstrip,$(BR2_TOOLCHAIN_EXTERNAL_PREFIX))- +TARGET_CROSS = $(HOST_DIR)/usr/bin/$(TOOLCHAIN_EXTERNAL_PREFIX)- endif # Define TARGET_xx variables for all common binutils/gcc
package/wine/wine.mk +1 -1
@@ -34,7 +34,7 @@ WINE_CONF_OPTS = \ # wrapper believes what the real gcc is named, and force the tuple of # the external toolchain, not the one we compute in GNU_TARGET_NAME. ifeq ($(BR2_TOOLCHAIN_EXTERNAL),y) -WINE_CONF_OPTS += TARGETFLAGS="-b $(call qstrip,$(BR2_TOOLCHAIN_EXTERNAL_PREFIX))" +WINE_CONF_OPTS += TARGETFLAGS="-b $(TOOLCHAIN_EXTERNAL_PREFIX)" endif ifeq ($(BR2_PACKAGE_ALSA_LIB)$(BR2_PACKAGE_ALSA_LIB_SEQ)$(BR2_PACKAGE_ALSA_LIB_RAWMIDI),yyy)
toolchain/toolchain-external/Config.in +44 -938
1,003 lines not on this page · raw message
toolchain/toolchain-external/pkg-toolchain-external.mk renamed from toolchain/toolchain-external/toolchain-external.mk +340 -476
940 lines not on this page · raw message
toolchain/toolchain-external/toolchain-external.hash deleted +0 -67
67 lines not on this page · raw message
toolchain/toolchain-external/toolchain-external.mk +2 -815
823 lines not on this page · raw message
Signature · 1 line
2.5.5
PATCH v2 23/23 toolchain-external: introduce and use external toolchain infra
Hi All,
Le 29/10/2016 ? 14:09, Romain Naour a ?crit :
Quoted 50 lines
This fairly large commit is needed to switch in one atomic change from the old single package based external toolchain handling, to a mechanism based on a common external toolchain package infrastructure and separate packages for each toolchain family. The purpose is to clearly separate the common external toolchain logic from the toolchain-specific details and generally make the external toolchain code hopefully easier to maintain.
To achieve this, this commit:
- Introduce in pkg-toolchain-external.mk the 'toolchain-external-package' macro, which is the core of the external toolchain package infrastructure. Like any other package infrastructure, it defines a number of variables and provides a behavior for the configure, build and install steps.
- Turn the toolchain-external.mk file in a simple virtual package, which automatically depends on the selected external toolchain. Like any other virtual package, the
KconfigvariableBR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNALindicates which package is providing the currently selected toolchain.- Removes all the toolchain-specific definitions from toolchain/toolchain-external/Config.in as well as the hash file, and instead use the per-toolchain packages in the subdirectories toolchain/toolchain-external/*/.
- Wine: Use $(TOOLCHAIN_EXTERNAL_PREFIX) instead of
$(BR2_TOOLCHAIN_EXTERNAL_PREFIX) which was removed.- Remove the old toolchain-external.hash file. The hash is now provided by the toolchain package.
Notes:
- The hack for settingTOOLCHAIN_EXTERNAL_BINfor the ADI bfin toolchain is no longer needed.Signed-off-by Thomas Petazzoni <[email protected]>Signed-off-by Romain Naour <[email protected]>---
v2: - merge all pkg-toolchain-external* into pkg-toolchain-external.mk (Arnout)
- rebase on masterfix two big issue:
1)TOOLCHAIN_EXTERNAL_COMMON_WRAPPER_ARGSwere not included in the toolchain wrapper.
2)TOOLCHAIN_EXTERNAL_CFLAGSwasn't included in $(2)_CFLAGS, same forTOOLCHAIN_EXTERNAL_LIBSand $(2)_LIBS. So no libraries were intalled in target.
---
[...]
Quoted 6 lines
toolchain/toolchain-external/Config.in +6
-0+source "toolchain/toolchain-external/toolchain-external-blackfin-uclinux/Config.in" +source "toolchain/toolchain-external/toolchain-external-arago-armv5te/Config.in" +source "toolchain/toolchain-external/toolchain-external-arago-armv7a/Config.in" +source "toolchain/toolchain-external/toolchain-external-codescape-mti-mips/Config.in" +source "toolchain/toolchain-external/toolchain-external-codescape-img-mips/Config.in" +source "toolchain/toolchain-external/toolchain-external-linaro-aarch64/Config.in"
toolchain/toolchain-external/Config.in choice · line 29
Quoted 10 lines
toolchain/toolchain-external/Config.in +10
-0+source "toolchain/toolchain-external/toolchain-external-linaro-arm/Config.in" +source "toolchain/toolchain-external/toolchain-external-linaro-armeb/Config.in" +source "toolchain/toolchain-external/toolchain-external-musl-cross/Config.in" +source "toolchain/toolchain-external/toolchain-external-codesourcery-aarch64/Config.in" +source "toolchain/toolchain-external/toolchain-external-codesourcery-amd64/Config.in" +source "toolchain/toolchain-external/toolchain-external-codesourcery-arm/Config.in" +source "toolchain/toolchain-external/toolchain-external-codesourcery-mips/Config.in" +source "toolchain/toolchain-external/toolchain-external-codesourcery-niosII/Config.in" +source "toolchain/toolchain-external/toolchain-external-codesourcery-sh/Config.in" +source "toolchain/toolchain-external/toolchain-external-codesourcery-x86/Config.in"
The codesourcery toolchains were named sourcery in a previous version of this series, but now it's not sorted alphabetically.
Also, for ARM the default toochain choice is arago which is an very old toolchain (2011), do we want to keep the default ARM choice to linaro or codesourcery toolchain ?
With the change, some existing defconfig will not use the same toolchain.
Best regards,
Romain
Quoted 6 lines
toolchain/toolchain-external/Config.in +6
-0+source "toolchain/toolchain-external/toolchain-external-synopsys-arc/Config.in" + +# Kept last, so it remains the non-default choice, unless there isn't +# any available toolchain profile for the currently selected +# architecture. +source "toolchain/toolchain-external/toolchain-external-custom/Config.in"
[...]
Quoted 20 lines
toolchain/toolchain-external/Config.in +19
-0+source "toolchain/toolchain-external/toolchain-external-blackfin-uclinux/Config.in.options" +source "toolchain/toolchain-external/toolchain-external-arago-armv5te/Config.in.options" +source "toolchain/toolchain-external/toolchain-external-arago-armv7a/Config.in.options" +source "toolchain/toolchain-external/toolchain-external-codescape-mti-mips/Config.in.options" +source "toolchain/toolchain-external/toolchain-external-codescape-img-mips/Config.in.options" +source "toolchain/toolchain-external/toolchain-external-linaro-aarch64/Config.in.options" +source "toolchain/toolchain-external/toolchain-external-linaro-arm/Config.in.options" +source "toolchain/toolchain-external/toolchain-external-linaro-armeb/Config.in.options" +source "toolchain/toolchain-external/toolchain-external-musl-cross/Config.in.options" +source "toolchain/toolchain-external/toolchain-external-codesourcery-arm/Config.in.options" +source "toolchain/toolchain-external/toolchain-external-codesourcery-amd64/Config.in.options" +source "toolchain/toolchain-external/toolchain-external-codesourcery-aarch64/Config.in.options" +source "toolchain/toolchain-external/toolchain-external-codesourcery-mips/Config.in.options" +source "toolchain/toolchain-external/toolchain-external-codesourcery-niosII/Config.in.options" +source "toolchain/toolchain-external/toolchain-external-codesourcery-sh/Config.in.options" +source "toolchain/toolchain-external/toolchain-external-codesourcery-x86/Config.in.options" +source "toolchain/toolchain-external/toolchain-external-synopsys-arc/Config.in.options" + +source "toolchain/toolchain-external/toolchain-external-custom/Config.in.options"
PATCH v2 23/23 toolchain-external: introduce and use external toolchain infra
Hello,
Quoted 14 lines · Romain Naour
Quoted 14 lines
toolchain/toolchain-external/Config.in +14
-0+source "toolchain/toolchain-external/toolchain-external-blackfin-uclinux/Config.in" +source "toolchain/toolchain-external/toolchain-external-arago-armv5te/Config.in" +source "toolchain/toolchain-external/toolchain-external-arago-armv7a/Config.in" +source "toolchain/toolchain-external/toolchain-external-codescape-mti-mips/Config.in" +source "toolchain/toolchain-external/toolchain-external-codescape-img-mips/Config.in" +source "toolchain/toolchain-external/toolchain-external-linaro-aarch64/Config.in" +source "toolchain/toolchain-external/toolchain-external-linaro-arm/Config.in" +source "toolchain/toolchain-external/toolchain-external-linaro-armeb/Config.in" +source "toolchain/toolchain-external/toolchain-external-musl-cross/Config.in" +source "toolchain/toolchain-external/toolchain-external-codesourcery-aarch64/Config.in" +source "toolchain/toolchain-external/toolchain-external-codesourcery-amd64/Config.in" +source "toolchain/toolchain-external/toolchain-external-codesourcery-arm/Config.in" +source "toolchain/toolchain-external/toolchain-external-codesourcery-mips/Config.in" +source "toolchain/toolchain-external/toolchain-external-codesourcery-niosII/Config.in"
Quoted 8 lines
toolchain/toolchain-external/Config.in choice · line 29
Quoted 2 lines
toolchain/toolchain-external/Config.in +2
-0+source "toolchain/toolchain-external/toolchain-external-codesourcery-sh/Config.in" +source "toolchain/toolchain-external/toolchain-external-codesourcery-x86/Config.in"The codesourcery toolchains were named sourcery in a previous version of this series, but now it's not sorted alphabetically.
Also, for ARM the default toochain choice is arago which is an very old toolchain (2011), do we want to keep the default ARM choice to linaro or codesourcery toolchain ?
You're talking about Arago vs. Sourcery, and you conclude with a question about Linaro vs. Sourcery, so I'm confused.
So:
- The Linaro toolchain is EABIhf, the Sourcery toolchain is EABI, so there is never a choice between Linaro and Sourcery for a given target configuration.
- The Arago toolchain is indeed old, and I'd rather not use it for our default on ARM. Maybe we can keep an alphabetic ordering, and add a "default" Config.in clause in the choice...endchoice? Yes, it is weird to have such a default in the generic code, but I don't see another option.
Thanks,
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com
PATCH v2 23/23 toolchain-external: introduce and use external toolchain infra
Hi Thomas,
Le 01/11/2016 ? 14:23, Thomas Petazzoni a ?crit :
Quoted 26 lines
Hello,
Quoted 14 lines · Romain Naour
Quoted 14 lines
toolchain/toolchain-external/Config.in +14
-0+source "toolchain/toolchain-external/toolchain-external-blackfin-uclinux/Config.in" +source "toolchain/toolchain-external/toolchain-external-arago-armv5te/Config.in" +source "toolchain/toolchain-external/toolchain-external-arago-armv7a/Config.in" +source "toolchain/toolchain-external/toolchain-external-codescape-mti-mips/Config.in" +source "toolchain/toolchain-external/toolchain-external-codescape-img-mips/Config.in" +source "toolchain/toolchain-external/toolchain-external-linaro-aarch64/Config.in" +source "toolchain/toolchain-external/toolchain-external-linaro-arm/Config.in" +source "toolchain/toolchain-external/toolchain-external-linaro-armeb/Config.in" +source "toolchain/toolchain-external/toolchain-external-musl-cross/Config.in" +source "toolchain/toolchain-external/toolchain-external-codesourcery-aarch64/Config.in" +source "toolchain/toolchain-external/toolchain-external-codesourcery-amd64/Config.in" +source "toolchain/toolchain-external/toolchain-external-codesourcery-arm/Config.in" +source "toolchain/toolchain-external/toolchain-external-codesourcery-mips/Config.in" +source "toolchain/toolchain-external/toolchain-external-codesourcery-niosII/Config.in"Quoted 8 lines
toolchain/toolchain-external/Config.in choice · line 29
Quoted 2 lines
toolchain/toolchain-external/Config.in +2
-0+source "toolchain/toolchain-external/toolchain-external-codesourcery-sh/Config.in" +source "toolchain/toolchain-external/toolchain-external-codesourcery-x86/Config.in"The codesourcery toolchains were named sourcery in a previous version of this series, but now it's not sorted alphabetically.
Also, for ARM the default toochain choice is arago which is an very old toolchain (2011), do we want to keep the default ARM choice to linaro or codesourcery toolchain ?
Quoted 2 lines
You're talking about Arago vs. Sourcery, and you conclude with a question about Linaro vs. Sourcery, so I'm confused.
There are two problem in this patch:
1) The alphabetical order (Sourcery toolchains) which is fixed easily.
2) With toolchains sorted alphabetically, the current default choice is changed silently with the introduction of the external toolchain infra.
Quoted 6 lines
So:
- The Linaro toolchain is EABIhf, the Sourcery toolchain is EABI, so there is never a choice between Linaro and Sourcery for a given target configuration.
Ok for this one but my concern was about Sourcery over Arago ARM toolchains and Sourcery over Codescape MIPS toolchains. Notice that Linaro provide an EABI toolchains [1], if someone add this toolchain in Buildroot we will have a choice between Linaro and Sourcery toolchains.
My understanding is: currently we have a list of "preferred" toolchains with a fall back to custom toolchains. So even if we want to keep toolchains sorted alphabetically here, we have to make an exception for toolchain-external-custom package.
Quoted 6 lines
- The Arago toolchain is indeed old, and I'd rather not use it for our default on ARM. Maybe we can keep an alphabetic ordering, and add a "default" Config.in clause in the choice...endchoice? Yes, it is weird to have such a default in the generic code, but I don't see another option.
I guess you don't really like the patch 24/24 of the last series (v3):
http://patchwork.ozlabs.org/patch/689378/
Adding a "default" in Config.in may be difficult to maintain over the time.
Thoughts ?
Best regards,
Romain
[1]
https://releases.linaro.org/components/toolchain/binaries/5.3-2016.05/arm-linux-gnueabi
Quoted 5 lines
Thanks,
Thomas
PATCH v2 23/23 toolchain-external: introduce and use external toolchain infra
Hello,
Quoted 8 lines · Romain Naour
Quoted 3 lines
- The Linaro toolchain is EABIhf, the Sourcery toolchain is EABI, so there is never a choice between Linaro and Sourcery for a given target configuration.
Ok for this one but my concern was about Sourcery over Arago ARM toolchains and Sourcery over Codescape MIPS toolchains. Notice that Linaro provide an EABI toolchains [1], if someone add this toolchain in Buildroot we will have a choice between Linaro and Sourcery toolchains.
OK.
Quoted 4 lines
My understanding is: currently we have a list of "preferred" toolchains with a fall back to custom toolchains. So even if we want to keep toolchains sorted alphabetically here, we have to make an exception for toolchain-external-custom package.
Correct, the "custom" option should definitely be the last one, we prefer to use pre-defined toolchains when available.
Quoted 8 lines
Quoted 5 lines
- The Arago toolchain is indeed old, and I'd rather not use it for our default on ARM. Maybe we can keep an alphabetic ordering, and add a "default" Config.in clause in the choice...endchoice? Yes, it is weird to have such a default in the generic code, but I don't see another option.
I guess you don't really like the patch 24/24 of the last series (v3):
http://patchwork.ozlabs.org/patch/689378/
So, in fact we have two choice:
(1) Play with the "source" order, to get some toolchains considered as the default choice over other toolchains. This is what your patch 24/24 currently does.
Advantage is that we don't have to maintain a list of "default" statement. The only drawback is that we violate the rule of "let's include by alphabetic ordering".
(2) Add a potentially long list of "default" statement. This solution is painful IMO, and its only advantage is that we don't violate the "order alphabetically" rule.
So despite what Yann said, I'm in fact going to propose that we stick with (1), i.e what your patch does currently. Yes, it's a violation of the "order alphabetically" rule, but it's the easiest solution, and is probably explained by comments in your patch.
Best regards,
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com