Skip to contentSkip to conversation

Splitting the toolchain-external package

PATCH Superseded Romain Naour 3 participants 40 messages Oct 29, 2016 – Nov 2, 2016

v2 of 4 Superseded Latest is v4 →

lore
Share & tools
lore
#0 lore raw

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.hash
Signature · 1 line
2.5.5
#1 lore raw

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
index b7a36be..d383d5f 100644
@@ -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
#2 lore raw

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.

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
index b7a36be..d383d5f 100644
@@ -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.  |
'------------------------------^-------^------------------^--------------------'
#3 lore raw

PATCH v2 2/23 toolchain-external: TOOLCHAIN_EXTERNAL_INSTALL_*_LIBS: use arguments instead of global variables

In reply to Romain Naour

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_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
index d383d5f..ddf77aa 100644
@@ -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
#4 lore raw

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_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 +4 -1
index d383d5f..ddf77aa 100644
@@ -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 -12
 		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 · 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.  |
'------------------------------^-------^------------------^--------------------'
#5 lore raw

PATCH v2 3/23 toolchain-external: TOOLCHAIN_EXTERNAL_INSTALL_WRAPPER: use arguments instead of global variables

In reply to Romain Naour

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.

---
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
index ddf77aa..84b6a03 100644
@@ -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
#6 lore raw

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.

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
index ddf77aa..84b6a03 100644

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 -1
 		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 · 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.  |
'------------------------------^-------^------------------^--------------------'
#7 lore raw

PATCH v2 4/23 toolchain-external: TOOLCHAIN_EXTERNAL_INSTALL_TARGET_GDBSERVER: use arguments instead of global variables

In reply to Romain Naour

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_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
index 84b6a03..6ae4bf5 100644
@@ -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
#8 lore raw

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_DIR when calling TOOLCHAIN_EXTERNAL_INSTALL_TARGET_GDBSERVER.

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
index 84b6a03..6ae4bf5 100644
@@ -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.  |
'------------------------------^-------^------------------^--------------------'
#9 lore raw

PATCH v2 5/23 toolchain-external-blackfin-uclinux: new package

In reply to Romain Naour

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.

---
 .../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
new file mode 100644
index 0000000..8b299e8
@@ -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
new file mode 100644
index 0000000..a13cbba
@@ -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
new file mode 100644
index 0000000..b320d94
@@ -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
new file mode 100644
index 0000000..0c3eb9b
@@ -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
#10 lore raw

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.

---
 .../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
new file mode 100644
index 0000000..8b299e8
@@ -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
new file mode 100644
index 0000000..a13cbba

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
+endif
toolchain/toolchain-external/toolchain-external-blackfin-uclinux/toolchain-external-blackfin-uclinux.hash new file +3 -0
new file mode 100644
index 0000000..b320d94
@@ -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 +26 -0
new file mode 100644
index 0000000..0c3eb9b
@@ -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.  |
'------------------------------^-------^------------------^--------------------'
#11 lore raw

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.mk from 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
#12 lore raw

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.mk from 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.  |
'------------------------------^-------^------------------^--------------------'
#13 lore raw

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 _CMDS macros; 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
#14 lore raw

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 _CMDS macros; 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

#15 lore raw

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 _CMDS macros; 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 savedefconfig

Which 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.  |
'------------------------------^-------^------------------^--------------------'
#16 lore raw

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
#17 lore raw

PATCH v2 5/23 toolchain-external-blackfin-uclinux: new package

In reply to Romain Naour

Romain, 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.

[--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
new file mode 100644
index 0000000..0c3eb9b
@@ -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.  |
'------------------------------^-------^------------------^--------------------'
#18 lore raw

PATCH v2 6/23 toolchain-external-arago-armv7a: new package

In reply to Romain Naour

From: 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
new file mode 100644
index 0000000..a3ea6b2
@@ -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
new file mode 100644
index 0000000..96018f5
@@ -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
new file mode 100644
index 0000000..a66900a
@@ -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
new file mode 100644
index 0000000..93e3e79
@@ -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
#19 lore raw

PATCH v2 7/23 toolchain-external-arago-armv5te: new package

In reply to Romain Naour

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-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
new file mode 100644
index 0000000..2c821a4
@@ -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
new file mode 100644
index 0000000..dd08ee0
@@ -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
new file mode 100644
index 0000000..dd70004
@@ -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
new file mode 100644
index 0000000..f06728e
@@ -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
#20 lore raw

PATCH v2 8/23 toolchain-external-custom: new package

In reply to Romain Naour

From: 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
new file mode 100644
index 0000000..a913feb
@@ -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
new file mode 100644
index 0000000..1d40f08
@@ -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
#21 lore raw

PATCH v2 9/23 toolchain-external-linaro-aarch64: new package

In reply to Romain Naour

From: 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
new file mode 100644
index 0000000..662f7d7
@@ -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
new file mode 100644
index 0000000..627f10b
@@ -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
new file mode 100644
index 0000000..7a2c038
@@ -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
new file mode 100644
index 0000000..abf2630
@@ -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
#22 lore raw

PATCH v2 10/23 toolchain-external-linaro-arm: new package

In reply to Romain Naour

From: 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
new file mode 100644
index 0000000..bf8649a
@@ -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
new file mode 100644
index 0000000..9d9ecef
@@ -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
new file mode 100644
index 0000000..8106426
@@ -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
new file mode 100644
index 0000000..bb7718a
@@ -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
#23 lore raw

PATCH v2 11/23 toolchain-external-linaro-armeb: new package

In reply to Romain Naour

This 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
new file mode 100644
index 0000000..ed84c47
@@ -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
new file mode 100644
index 0000000..0fa7619
@@ -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
new file mode 100644
index 0000000..7952b50
@@ -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
new file mode 100644
index 0000000..9d4d843
@@ -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
#24 lore raw

PATCH v2 12/23 toolchain-external-musl-cross: new package

In reply to Romain Naour

From: 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
new file mode 100644
index 0000000..5cffa2d
@@ -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
new file mode 100644
index 0000000..899b4da
@@ -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
new file mode 100644
index 0000000..beef8fd
@@ -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
new file mode 100644
index 0000000..0ff4099
@@ -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
#25 lore raw

PATCH v2 13/23 toolchain-external-codesourcery-aarch64: new package

In reply to Romain Naour

From: 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
new file mode 100644
index 0000000..2fbb218
@@ -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
new file mode 100644
index 0000000..706c35d
@@ -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
new file mode 100644
index 0000000..f7d3f29
@@ -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
new file mode 100644
index 0000000..198e9e0
@@ -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
#26 lore raw

PATCH v2 14/23 toolchain-external-codesourcery-arm: new package

In reply to Romain Naour

From: 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
new file mode 100644
index 0000000..037985b
@@ -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
new file mode 100644
index 0000000..59634d5
@@ -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
new file mode 100644
index 0000000..535f4aa
@@ -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
new file mode 100644
index 0000000..9df156c
@@ -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
#27 lore raw

PATCH v2 15/23 toolchain-external-codesourcery-mips: new package

In reply to Romain Naour

From: 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
new file mode 100644
index 0000000..6a13ae6
@@ -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
new file mode 100644
index 0000000..7381a07
@@ -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
new file mode 100644
index 0000000..2d80338
@@ -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
new file mode 100644
index 0000000..868b0d4
@@ -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
#28 lore raw

PATCH v2 16/23 toolchain-external-codesourcery-niosII: new package

In reply to Romain Naour

From: 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
new file mode 100644
index 0000000..54eed8c
@@ -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
new file mode 100644
index 0000000..9d41db8
@@ -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
new file mode 100644
index 0000000..a60c49f
@@ -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
new file mode 100644
index 0000000..be86e99
@@ -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
#29 lore raw

PATCH v2 17/23 toolchain-external-codesourcery-sh: new package

In reply to Romain Naour

From: 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
new file mode 100644
index 0000000..a47dab7
@@ -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
new file mode 100644
index 0000000..3ae5f85
@@ -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
new file mode 100644
index 0000000..ff2ba5f
@@ -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
new file mode 100644
index 0000000..44ee02c
@@ -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
#30 lore raw

PATCH v2 18/23 toolchain-external-codesourcery-x86: new package

In reply to Romain Naour

From: 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
new file mode 100644
index 0000000..bcbdd26
@@ -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
new file mode 100644
index 0000000..97bebf9
@@ -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
new file mode 100644
index 0000000..a003f7a
@@ -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
new file mode 100644
index 0000000..146b70c
@@ -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
#31 lore raw

PATCH v2 19/23 toolchain-external-codesourcery-amd64: new package

In reply to Romain Naour

This 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
new file mode 100644
index 0000000..86486c8
@@ -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
new file mode 100644
index 0000000..9ba67f8
@@ -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
new file mode 100644
index 0000000..ea5f300
@@ -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
new file mode 100644
index 0000000..e82b35f
@@ -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
#32 lore raw

PATCH v2 20/23 toolchain-external-synopsys-arc: new package

In reply to Romain Naour

From: 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
new file mode 100644
index 0000000..641eca8
@@ -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
new file mode 100644
index 0000000..dfa9d84
@@ -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
new file mode 100644
index 0000000..b684cce
@@ -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
new file mode 100644
index 0000000..bc3a43c
@@ -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
#33 lore raw

PATCH v2 21/23 toolchain-external-codescape-img-mips: new package

In reply to Romain Naour

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

Cc Vicente Olivert Riera <[email protected]>
---
 .../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
new file mode 100644
index 0000000..1f0d4d1
@@ -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
new file mode 100644
index 0000000..8c534a5
@@ -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
new file mode 100644
index 0000000..e4ae9e1
@@ -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
#34 lore raw

PATCH v2 22/23 toolchain-external-codescape-mti-mips: new package

In reply to Romain Naour

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

Cc Vicente Olivert Riera <[email protected]>
---
 .../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
new file mode 100644
index 0000000..f899467
@@ -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
new file mode 100644
index 0000000..c6a3c4b
@@ -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
new file mode 100644
index 0000000..0d785f2
@@ -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
#35 lore raw

PATCH v2 23/23 toolchain-external: introduce and use external toolchain infra

In reply to Romain Naour

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 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.hash
package/Makefile.in +1 -1
index 5d591e9..bd73219 100644
@@ -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
index d9a0ecf..47ba90a 100644
@@ -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
#36 lore raw

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

[...]

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"
#37 lore raw

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
#38 lore raw

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

#39 lore raw

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