toolchain-external: CodeSourcery AMD64: support only one version
PATCH 1/7 toolchain-external: CodeSourcery AMD64: support only one version
See the conclusion about external toolchains during the Buildroot meeting [1]:
"In the future, we stick to a single external toolchain version. The Kconfig symbol should not encode the version (avoid legacy handling)"
[1] http://elinux.org/index.php?title=Buildroot:DeveloperDaysELCE2015#Report
--- toolchain/toolchain-external/Config.in | 4 ++-- toolchain/toolchain-external/toolchain-external.mk | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-)
toolchain/toolchain-external/Config.in +2 -2
@@ -692,7 +692,7 @@ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_SH201103 - SH4A, uClibc, big endian Not usable in Buildroot yet. -config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_AMD64_201405 +config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_AMD64 bool "Sourcery CodeBench AMD64 2014.05" depends on BR2_x86_64 depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
@@ -1001,7 +1001,7 @@ config BR2_TOOLCHAIN_EXTERNAL_PREFIX default "i686-pc-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_X86_201109 default "i686-pc-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_X86_201203 default "i686-pc-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_X86_201209 - default "x86_64-amd-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_AMD64_201405 + default "x86_64-amd-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_AMD64 default "bfin-uclinux" if BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_2013R1 && BR2_BINFMT_FLAT default "bfin-linux-uclibc" if BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_2013R1 && BR2_BINFMT_FDPIC default "bfin-uclinux" if BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_2014R1 && BR2_BINFMT_FLAT
toolchain/toolchain-external/toolchain-external.mk +1 -1
@@ -385,7 +385,7 @@ TOOLCHAIN_EXTERNAL_SOURCE = ia32-2012.03-27-i686-pc-linux-gnu-i386-linux.tar.bz2 else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_X86_201209),y) TOOLCHAIN_EXTERNAL_SITE = https://sourcery.mentor.com/public/gnu_toolchain/i686-pc-linux-gnu TOOLCHAIN_EXTERNAL_SOURCE = ia32-2012.09-62-i686-pc-linux-gnu-i386-linux.tar.bz2 -else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_AMD64_201405),y) +else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_AMD64),y) TOOLCHAIN_EXTERNAL_SITE = https://sourcery.mentor.com/public/gnu_toolchain/x86_64-amd-linux-gnu TOOLCHAIN_EXTERNAL_SOURCE = amd-2014.05-25-x86_64-amd-linux-gnu-i686-pc-linux-gnu.tar.bz2 else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_2013R1),y)
Signature · 1 line
2.4.3
PATCH 2/7 toolchain-external: bump CodeSourcery AMD64 to 2015.11
Use a stronger hash.
--- toolchain/toolchain-external/Config.in | 12 ++++++------ toolchain/toolchain-external/toolchain-external.hash | 6 ++---- toolchain/toolchain-external/toolchain-external.mk | 2 +- 3 files changed, 9 insertions(+), 11 deletions(-)
toolchain/toolchain-external/Config.in +6 -6
@@ -693,7 +693,7 @@ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_SH201103 Not usable in Buildroot yet. config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_AMD64 - bool "Sourcery CodeBench AMD64 2014.05" + 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
@@ -702,13 +702,13 @@ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_AMD64 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 + 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 4.8.3, - binutils 2.24.51, glibc 2.18, gdb 7.7.50 and kernel headers - 3.13.0. It has support for the following variants: + 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
toolchain/toolchain-external/toolchain-external.hash +2 -4
@@ -6,10 +6,6 @@ md5 ad4a66e4791606c5df70f48c4a97b0ec mips-2014.11-22-mips-linux-gnu-i686-pc-li # From: https://sourcery.mentor.com/GNUToolchain/release2791 md5 14facaac538a43533b89d969d7904d46 mips-2014.05-27-mips-linux-gnu-i686-pc-linux-gnu.tar.bz2 -# Sourcery CodeBench Lite for AMD64 -# From https://sourcery.mentor.com/GNUToolchain/release2777 -md5 a1f8650d1a5ff726cca0893522fd8745 amd-2014.05-25-x86_64-amd-linux-gnu-i686-pc-linux-gnu.tar.bz2 - ###################################### # Next hashes are all locally computed
@@ -41,6 +37,8 @@ sha256 59d6766fde244931aa52db01433d5acd051998762a931121c5fc109536a1a802 renesas sha256 5f308a3fe0752f181fd0d33a70a17efb8300d0e34a94ed18a1a0304dc18e150e ia32-2011.09-24-i686-pc-linux-gnu-i386-linux.tar.bz2 sha256 6ac2f0d9ec56242ecbe4315533f3e00a675909850a41bdafc052fbfe27ece300 ia32-2012.03-27-i686-pc-linux-gnu-i386-linux.tar.bz2 sha256 ea804cf02014369da52abc4f64e91e96bde2dd2230aca96109459013d4545458 ia32-2012.09-62-i686-pc-linux-gnu-i386-linux.tar.bz2 +# AMD64 +sha256 cb4d071db8aefb8005fe72824b96568d93a50f5acd85bacf505a34fe2f265f70 amd-2015.11-36-x86_64-amd-linux-gnu-i686-pc-linux-gnu.tar.bz2 # Aarch64 sha256 8ea78c5988b2bb507534f1ad46aa46659f66b39d55f2fc40e163a90b4195e70f aarch64-2014.05-30-aarch64-linux-gnu-i686-pc-linux-gnu.tar.bz2
toolchain/toolchain-external/toolchain-external.mk +1 -1
@@ -387,7 +387,7 @@ TOOLCHAIN_EXTERNAL_SITE = https://sourcery.mentor.com/public/gnu_toolchain/i686- TOOLCHAIN_EXTERNAL_SOURCE = ia32-2012.09-62-i686-pc-linux-gnu-i386-linux.tar.bz2 else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_AMD64),y) TOOLCHAIN_EXTERNAL_SITE = https://sourcery.mentor.com/public/gnu_toolchain/x86_64-amd-linux-gnu -TOOLCHAIN_EXTERNAL_SOURCE = amd-2014.05-25-x86_64-amd-linux-gnu-i686-pc-linux-gnu.tar.bz2 +TOOLCHAIN_EXTERNAL_SOURCE = amd-2015.11-36-x86_64-amd-linux-gnu-i686-pc-linux-gnu.tar.bz2 else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_2013R1),y) TOOLCHAIN_EXTERNAL_SITE = http://downloads.sourceforge.net/project/adi-toolchain/2013R1/2013R1-RC1/i386 TOOLCHAIN_EXTERNAL_SOURCE = blackfin-toolchain-2013R1-RC1.i386.tar.bz2
Signature · 1 line
2.4.3
PATCH 2/7 toolchain-external: bump CodeSourcery AMD64 to 2015.11
Dear Romain Naour,
Quoted 3 lines · Romain Naour
Use a stronger hash.
Signed-off-by Romain Naour <[email protected]>
Build a minimal rootfs using that toolchain after applying this patch.
Also checked the hash file is correct:
amd-2015.11-36-x86_64-amd-linux-gnu-i686-pc-linux-gnu.tar.bz2: OK (sha256: cb4d071db8aefb8005fe72824b96568d93a50f5acd85bacf505a34fe2f265f70)
Regards,
Vincent.
PATCH 3/7 toolchain-external: CodeSourcery NIOSII: support only one version
In reply to Romain NaourSee the conclusion about external toolchains during the Buildroot meeting [1]:
"In the future, we stick to a single external toolchain version. The Kconfig symbol should not encode the version (avoid legacy handling)"
[1] http://elinux.org/index.php?title=Buildroot:DeveloperDaysELCE2015#Report
--- package/aiccu/Config.in | 6 ++---- package/boost/Config.in | 3 +-- package/connman/Config.in | 2 +- package/crda/Config.in | 6 ++---- package/cryptsetup/Config.in | 6 ++---- package/dmraid/Config.in | 6 ++---- package/ffmpeg/Config.in | 3 +-- package/flann/Config.in | 2 -- package/janus-gateway/Config.in | 6 ++---- package/libcap-ng/Config.in | 2 +- package/libmicrohttpd/Config.in | 6 ++---- package/libupnpp/Config.in | 6 ++---- package/lxc/Config.in | 6 ++---- package/mesa3d/Config.in | 6 ++---- package/mosquitto/Config.in | 6 ++---- package/ofono/Config.in | 4 ++-- package/pixman/pixman.mk | 2 +- package/squeezelite/Config.in | 3 +-- package/tovid/Config.in | 3 +-- package/upmpdcli/Config.in | 6 ++---- package/util-linux/Config.in | 2 +- toolchain/toolchain-external/Config.in | 21 ++------------------- .../toolchain-external/toolchain-external.hash | 1 - toolchain/toolchain-external/toolchain-external.mk | 18 +----------------- 24 files changed, 35 insertions(+), 97 deletions(-)
package/aiccu/Config.in +2 -4
@@ -4,8 +4,7 @@ config BR2_PACKAGE_AICCU depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU # fork() # Triggers the _gp link issue - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201305 - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201405 + depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII select BR2_PACKAGE_GNUTLS help SixXS Automatic IPv6 Connectivity Client Utility
@@ -24,5 +23,4 @@ config BR2_PACKAGE_AICCU comment "aiccu needs a toolchain w/ wchar, threads" depends on BR2_USE_MMU depends on !(BR2_USE_WCHAR && BR2_TOOLCHAIN_HAS_THREADS) - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201305 - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201405 + depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII
package/boost/Config.in +1 -2
@@ -3,8 +3,7 @@ comment "boost needs a toolchain w/ C++, threads, wchar" config BR2_PACKAGE_BOOST_ARCH_SUPPORTS bool - default y if !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201405 && \ - !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201305 + default y if !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII config BR2_PACKAGE_BOOST bool "boost"
package/connman/Config.in +1 -1
@@ -52,7 +52,7 @@ config BR2_PACKAGE_CONNMAN_NEARD config BR2_PACKAGE_CONNMAN_OFONO bool "enable ofono support" - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201405 # libcap-ng + depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII # libcap-ng select BR2_PACKAGE_OFONO config BR2_PACKAGE_CONNMAN_DEBUG
package/crda/Config.in +2 -4
@@ -7,8 +7,7 @@ config BR2_PACKAGE_CRDA # regdb is a runtime dependency select BR2_PACKAGE_WIRELESS_REGDB # Triggers the _gp link issue - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201305 - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201405 + depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII help Central Regulatory Domain Agent.
@@ -21,5 +20,4 @@ config BR2_PACKAGE_CRDA comment "crda needs a toolchain w/ threads, dynamic library" depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201305 - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201405 + depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII
package/cryptsetup/Config.in +2 -4
@@ -10,8 +10,7 @@ config BR2_PACKAGE_CRYPTSETUP depends on !BR2_STATIC_LIBS # lvm2 depends on BR2_USE_WCHAR # util-linux # Triggers the _gp link issue - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201305 - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201405 + depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII help This tool helps manipulate dm-crypt and luks partitions for on-disk encryption.
@@ -21,5 +20,4 @@ config BR2_PACKAGE_CRYPTSETUP comment "cryptsetup needs a toolchain w/ wchar, threads, dynamic library" depends on BR2_USE_MMU depends on !BR2_USE_WCHAR || BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201305 - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201405 + depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII
package/dmraid/Config.in +2 -4
@@ -4,8 +4,7 @@ config BR2_PACKAGE_DMRAID depends on BR2_USE_MMU # lvm2 depends on !BR2_STATIC_LIBS # lvm2 # dmraid triggers the _gp link issue - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201305 - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201405 + depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII select BR2_PACKAGE_LVM2 help dmraid discovers, activates, deactivates and displays properties
@@ -17,6 +16,5 @@ config BR2_PACKAGE_DMRAID comment "dmraid needs a toolchain w/ threads, dynamic library" depends on BR2_USE_MMU # dmraid triggers the _gp link issue - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201305 - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201405 + depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS
package/ffmpeg/Config.in +1 -2
@@ -1,8 +1,7 @@ menuconfig BR2_PACKAGE_FFMPEG bool "ffmpeg" # fenv.h lacks FE_INVALID, FE_OVERFLOW & FE_UNDERFLOW - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201305 - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201405 + depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII help FFmpeg is a complete, cross-platform solution to record, convert and stream audio and video.
package/flann/Config.in +0 -2
@@ -2,8 +2,6 @@ config BR2_PACKAGE_FLANN bool "flann" depends on BR2_INSTALL_LIBSTDCPP depends on !BR2_STATIC_LIBS - # triggers an assert in the linker of this toolchain - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201305 help FLANN is a library for performing fast approximate nearest neighbor searches in high dimensional spaces. It contains a
package/janus-gateway/Config.in +2 -4
@@ -11,8 +11,7 @@ config BR2_PACKAGE_JANUS_GATEWAY depends on BR2_USE_WCHAR # libnice -> libglib2 depends on BR2_USE_MMU # libnice depends on !BR2_STATIC_LIBS # dlopen - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201305 # libmicrohttpd - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201405 # libmicrohttpd + depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII # libmicrohttpd help Janus is an open source, general purpose, WebRTC gateway designed and developed by Meetecho.
@@ -22,5 +21,4 @@ config BR2_PACKAGE_JANUS_GATEWAY comment "janus-gateway needs a toolchain w/ dynamic library, threads, wchar" depends on BR2_USE_MMU depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201305 - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201405 + depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII
package/libcap-ng/Config.in +1 -1
@@ -1,6 +1,6 @@ config BR2_PACKAGE_LIBCAP_NG bool "libcap-ng" - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201405 # triggers compiler bug + depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII # triggers compiler bug help The libcap-ng library is intended to make programming with posix capabilities much easier than the traditional libcap
package/libmicrohttpd/Config.in +2 -4
@@ -2,8 +2,7 @@ config BR2_PACKAGE_LIBMICROHTTPD bool "libmicrohttpd" depends on BR2_TOOLCHAIN_HAS_THREADS # Triggers the _gp link issue - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201305 - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201405 + depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII help GNU libmicrohttpd is a small C library that makes it easy to run an HTTP server as part of another application.
@@ -27,5 +26,4 @@ endif comment "libmicrohttpd needs a toolchain w/ threads" depends on !BR2_TOOLCHAIN_HAS_THREADS - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201305 - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201405 + depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII
package/libupnpp/Config.in +2 -4
@@ -7,8 +7,7 @@ config BR2_PACKAGE_LIBUPNPP depends on BR2_TOOLCHAIN_HAS_THREADS # libupnp depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_5 # Triggers the _gp link issue - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201305 - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201405 + depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII help The libupnpp C++ library wraps libupnp for easier use by upmpdcli and upplay.
@@ -16,6 +15,5 @@ config BR2_PACKAGE_LIBUPNPP http://www.lesbonscomptes.com/upmpdcli/ comment "libupnpp needs a toolchain w/ C++, threads, gcc >= 4.5" - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201305 - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201405 + depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_5
package/lxc/Config.in +2 -4
@@ -6,8 +6,7 @@ config BR2_PACKAGE_LXC # build system forcefully builds a shared library depends on !BR2_STATIC_LIBS # the toolchain doesn't support setns syscall - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201305 - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201405 + depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 # libcap help Linux Containers (LXC), provides the ability to group and isolate
@@ -18,8 +17,7 @@ config BR2_PACKAGE_LXC comment "lxc needs a toolchain w/ threads, headers >= 3.0, dynamic library" depends on BR2_USE_MMU - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201305 - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201405 + depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII depends on !BR2_TOOLCHAIN_HAS_THREADS \ || !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 \ || BR2_STATIC_LIBS
package/mesa3d/Config.in +2 -4
@@ -13,8 +13,7 @@ menuconfig BR2_PACKAGE_MESA3D depends on !BR2_STATIC_LIBS depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # Triggers the _gp link issue in nios2 - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201305 - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201405 + depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII help Mesa 3D, an open-source implementation of the OpenGL specification.
@@ -153,7 +152,6 @@ config BR2_PACKAGE_PROVIDES_LIBGLES endif # BR2_PACKAGE_MESA3D comment "mesa3d needs a toolchain w/ C++, NPTL, dynamic library" - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201305 - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201405 + depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS_NPTL || \ BR2_STATIC_LIBS
package/mosquitto/Config.in +2 -4
@@ -3,8 +3,7 @@ config BR2_PACKAGE_MOSQUITTO depends on BR2_USE_MMU # fork() depends on !BR2_STATIC_LIBS # builds .so # Triggers the _gp link issue - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201405 - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201305 + depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII help Mosquitto is an open source message broker that implements the MQ Telemetry Transport protocol versions 3.1 and
@@ -19,5 +18,4 @@ config BR2_PACKAGE_MOSQUITTO comment "mosquitto needs a toolchain w/ dynamic library" depends on BR2_USE_MMU depends on BR2_STATIC_LIBS - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201405 - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201305 + depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII
package/ofono/Config.in +2 -2
@@ -3,7 +3,7 @@ config BR2_PACKAGE_OFONO depends on BR2_USE_WCHAR # gettext, libglib2 depends on BR2_TOOLCHAIN_HAS_THREADS # dbus, libglib2 depends on BR2_USE_MMU # dbus, libglib2 - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201405 # libcap-ng + depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII # libcap-ng depends on !BR2_STATIC_LIBS # dlopen() select BR2_PACKAGE_LIBCAP_NG select BR2_PACKAGE_DBUS
@@ -19,4 +19,4 @@ config BR2_PACKAGE_OFONO comment "ofono needs a toolchain w/ dynamic library, wchar, threads" depends on BR2_USE_MMU depends on BR2_STATIC_LIBS || !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201405 + depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII
package/pixman/pixman.mk +1 -1
@@ -26,7 +26,7 @@ endif # toolchain gets confused about TLS access through GOT (PIC), so disable TLS # movhi r4, %got_hiadj(%tls_ldo(fast_path_cache)) # {standard input}:172: Error: bad expression -ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201405),y) +ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII),y) PIXMAN_CONF_ENV += CFLAGS="$(TARGET_CFLAGS) -DPIXMAN_NO_TLS" endif
package/squeezelite/Config.in +1 -2
@@ -21,8 +21,7 @@ config BR2_PACKAGE_SQUEEZELITE_FFMPEG bool "Enable WMA and ALAC decoding" default y select BR2_PACKAGE_FFMPEG - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201305 # ffmpeg - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201405 # ffmpeg + depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII # ffmpeg config BR2_PACKAGE_SQUEEZELITE_DSD bool "Enable DSD decoding"
package/tovid/Config.in +1 -2
@@ -5,8 +5,7 @@ config BR2_PACKAGE_TOVID depends on BR2_INSTALL_LIBSTDCPP depends on BR2_USE_WCHAR depends on BR2_PACKAGE_PYTHON || BR2_PACKAGE_PYTHON3 - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201305 # ffmpeg - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201405 # ffmpeg + depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII # ffmpeg depends on BR2_PACKAGE_MPLAYER_ARCH_SUPPORTS # The below dependencies are runtime dependencies only select BR2_PACKAGE_BUSYBOX_SHOW_OTHERS # procps_ng
package/upmpdcli/Config.in +2 -4
@@ -6,8 +6,7 @@ config BR2_PACKAGE_UPMPDCLI depends on BR2_TOOLCHAIN_HAS_THREADS # libupnpp -> libupnp depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_6 # libupnpp triggers the _gp link issue - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201305 - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201405 + depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII help upmpdcli is a UPnP Media Renderer front-end for MPD, the Music Player Daemon. It supports UPnP gapless track transitions and
@@ -16,6 +15,5 @@ config BR2_PACKAGE_UPMPDCLI http://www.lesbonscomptes.com/upmpdcli/ comment "upmpdcli needs a toolchain w/ C++, threads, gcc >= 4.6" - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201305 - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201405 + depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_6
package/util-linux/Config.in +1 -1
@@ -211,7 +211,7 @@ config BR2_PACKAGE_UTIL_LINUX_SCHEDUTILS config BR2_PACKAGE_UTIL_LINUX_SETPRIV bool "setpriv" - depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201405 # libcap-ng + depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII # libcap-ng select BR2_PACKAGE_LIBCAP_NG help Run a program with different Linux privilege settings
toolchain/toolchain-external/Config.in +2 -19
@@ -501,7 +501,7 @@ comment "Sourcery CodeBench toolchains are only available for MIPS/MIPS64 o32 an depends on BR2_MIPS_NABI32 depends on !BR2_STATIC_LIBS -config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201405 +config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII bool "Sourcery CodeBench Nios-II 2014.05" depends on BR2_nios2 depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
@@ -517,22 +517,6 @@ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201405 from Mentor Graphics. It uses gcc 4.8.3, binutils 2.24.51, glibc 2.19.90, gdb 7.7.50 and kernel headers 3.12. -config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201305 - bool "Sourcery CodeBench Nios-II 2013.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_NATIVE_RPC - select BR2_INSTALL_LIBSTDCPP - select BR2_HOSTARCH_NEEDS_IA32_LIBS - select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_7 - select BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 - help - Sourcery CodeBench toolchain for the Nios-II architecture, - from Mentor Graphics. It uses gcc 4.7.3, binutils 2.23.52, - glibc 2.17, gdb 7.4.50 and kernel headers 3.7.0. - config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC201203 bool "Sourcery CodeBench PowerPC 2012.03" depends on BR2_powerpc
@@ -990,8 +974,7 @@ config BR2_TOOLCHAIN_EXTERNAL_PREFIX default "mips-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS201405 default "mips-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS201411 default "mips-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS201505 - default "nios2-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201305 - default "nios2-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201405 + default "nios2-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII default "powerpc-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC201009 default "powerpc-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC201103 default "powerpc-mentor-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC201203
toolchain/toolchain-external/toolchain-external.hash +0 -1
@@ -23,7 +23,6 @@ sha256 395f1c504a8fb6b7a10663143627b7eee2edc8fd884aa13c4b8505a3623960f5 arm-201 sha256 8455854d3b3abbc2328e6c061c6b9625ef8f9c1f236db9f1771877715bd70b9b arm-2013.11-33-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 sha256 39ee0e789034334ecc89af94e838e3a4815400ac5ff980f808f466b04778532e arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 # NiosII -sha256 29567361910b020751ea8041ecb45b3cc74714e71c6deb4981b678772b746b33 sourceryg++-2013.05-43-nios2-linux-gnu-i686-pc-linux-gnu.tar.bz2 sha256 fb02fe3d595bd80a6e0ebc9d59a64010d84ae8d13f47e241b3a335f42b0414dc sourceryg++-2014.05-47-nios2-linux-gnu-i686-pc-linux-gnu.tar.bz2 # PowerPC sha256 d68d1a2a055ece3824a1a11fcc0a8e813ee1d215025247cce0d877caa12c4b54 freescale-2010.09-55-powerpc-linux-gnu-i686-pc-linux-gnu.tar.bz2
toolchain/toolchain-external/toolchain-external.mk +1 -17
@@ -351,11 +351,7 @@ else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS201505),y) TOOLCHAIN_EXTERNAL_SITE = http://sourcery.mentor.com/public/gnu_toolchain/mips-linux-gnu TOOLCHAIN_EXTERNAL_SOURCE = mips-2015.05-18-mips-linux-gnu-i686-pc-linux-gnu.tar.bz2 TOOLCHAIN_EXTERNAL_POST_INSTALL_STAGING_HOOKS += TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS201505_LIB_NAMES_FIX -else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201305),y) -TOOLCHAIN_EXTERNAL_SITE = http://sourcery.mentor.com/public/gnu_toolchain/nios2-linux-gnu -TOOLCHAIN_EXTERNAL_SOURCE = sourceryg++-2013.05-43-nios2-linux-gnu-i686-pc-linux-gnu.tar.bz2 -TOOLCHAIN_EXTERNAL_POST_INSTALL_STAGING_HOOKS += TOOLCHAIN_EXTERNAL_SANITIZE_KERNEL_HEADERS -else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII201405),y) +else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII),y) TOOLCHAIN_EXTERNAL_SITE = http://sourcery.mentor.com/public/gnu_toolchain/nios2-linux-gnu TOOLCHAIN_EXTERNAL_SOURCE = sourceryg++-2014.05-47-nios2-linux-gnu-i686-pc-linux-gnu.tar.bz2 else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC201009),y)
@@ -757,18 +753,6 @@ define TOOLCHAIN_EXTERNAL_INSTALL_WRAPPER done endef -# This sed magic is taken from Linux headers_install.sh script. -define TOOLCHAIN_EXTERNAL_SANITIZE_KERNEL_HEADERS - $(Q)$(call MESSAGE,"Sanitizing kernel headers") - find $(STAGING_DIR)/usr/include/linux/ -name "*.h" | xargs sed -r -i \ - -e 's/([ \t(])(__user|__force|__iomem)[ \t]/\1/g' \ - -e 's/__attribute_const__([ \t]|$$)/\1/g' \ - -e 's@^#include <linux/compiler.h>@@' \ - -e 's/(^|[^a-zA-Z0-9])__packed([^a-zA-Z0-9_]|$$)/\1__attribute__((packed))\2/g' \ - -e 's/(^|[ \t(])(inline|asm|volatile)([ \t(]|$$)/\1__\2__\3/g' \ - -e 's@#(ifndef|define|endif[ \t]*/[*])[ \t]*_UAPI@#\1 @' -endef - # # Generate gdbinit file for use with Buildroot #
Signature · 1 line
2.4.3
PATCH 3/7 toolchain-external: CodeSourcery NIOSII: support only one version
Dear Romain Naour,
Quoted 8 lines · Romain Naour
See the conclusion about external toolchains during the Buildroot meeting [1]:
"In the future, we stick to a single external toolchain version. TheKconfigsymbol should not encode the version (avoid legacy handling)"[1] http://elinux.org/index.php?title=Buildroot:DeveloperDaysELCE2015#Report
Signed-off-by Romain Naour <[email protected]>
Build a minimal rootfs using that toolchain after applying this patch.
Regards,
Vincent.
PATCH 4/7 toolchain-external: bump CodeSourcery NIOSII to 2015.11
In reply to Romain NaourSome package black list CS NIOSII toolchains, mainly due to _gp link issue. A follow up patch can remove the restriction case by case.
--- toolchain/toolchain-external/Config.in | 10 +++++----- toolchain/toolchain-external/toolchain-external.hash | 2 +- toolchain/toolchain-external/toolchain-external.mk | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-)
toolchain/toolchain-external/Config.in +5 -5
@@ -502,7 +502,7 @@ comment "Sourcery CodeBench toolchains are only available for MIPS/MIPS64 o32 an depends on !BR2_STATIC_LIBS config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII - bool "Sourcery CodeBench Nios-II 2014.05" + bool "Sourcery CodeBench Nios-II 2015.11" depends on BR2_nios2 depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86" depends on !BR2_STATIC_LIBS
@@ -510,12 +510,12 @@ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII select BR2_TOOLCHAIN_HAS_NATIVE_RPC select BR2_INSTALL_LIBSTDCPP select BR2_HOSTARCH_NEEDS_IA32_LIBS - select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12 - select BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 + select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_2 + select BR2_TOOLCHAIN_GCC_AT_LEAST_5 help Sourcery CodeBench toolchain for the Nios-II architecture, - from Mentor Graphics. It uses gcc 4.8.3, binutils 2.24.51, - glibc 2.19.90, gdb 7.7.50 and kernel headers 3.12. + from Mentor Graphics. It uses gcc 5.2, binutils 2.25.51, + glibc 2.22, gdb 7.10.50 and kernel headers 4.2. config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC201203 bool "Sourcery CodeBench PowerPC 2012.03"
toolchain/toolchain-external/toolchain-external.hash +1 -1
@@ -23,7 +23,7 @@ sha256 395f1c504a8fb6b7a10663143627b7eee2edc8fd884aa13c4b8505a3623960f5 arm-201 sha256 8455854d3b3abbc2328e6c061c6b9625ef8f9c1f236db9f1771877715bd70b9b arm-2013.11-33-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 sha256 39ee0e789034334ecc89af94e838e3a4815400ac5ff980f808f466b04778532e arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 # NiosII -sha256 fb02fe3d595bd80a6e0ebc9d59a64010d84ae8d13f47e241b3a335f42b0414dc sourceryg++-2014.05-47-nios2-linux-gnu-i686-pc-linux-gnu.tar.bz2 +sha256 cc47745dc1264fcb8fb98fb1315ab772ab98691396021c455229b58abaf887f5 sourceryg++-2015.11-27-nios2-linux-gnu-i686-pc-linux-gnu.tar.bz2 # PowerPC sha256 d68d1a2a055ece3824a1a11fcc0a8e813ee1d215025247cce0d877caa12c4b54 freescale-2010.09-55-powerpc-linux-gnu-i686-pc-linux-gnu.tar.bz2 sha256 525e1f53abbf65c2974ae9af762c45bb38520fe5fc50e968a23fe6a18e9eec04 freescale-2011.03-38-powerpc-linux-gnu-i686-pc-linux-gnu.tar.bz2
toolchain/toolchain-external/toolchain-external.mk +1 -1
@@ -353,7 +353,7 @@ TOOLCHAIN_EXTERNAL_SOURCE = mips-2015.05-18-mips-linux-gnu-i686-pc-linux-gnu.tar TOOLCHAIN_EXTERNAL_POST_INSTALL_STAGING_HOOKS += TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS201505_LIB_NAMES_FIX else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII),y) TOOLCHAIN_EXTERNAL_SITE = http://sourcery.mentor.com/public/gnu_toolchain/nios2-linux-gnu -TOOLCHAIN_EXTERNAL_SOURCE = sourceryg++-2014.05-47-nios2-linux-gnu-i686-pc-linux-gnu.tar.bz2 +TOOLCHAIN_EXTERNAL_SOURCE = sourceryg++-2015.11-27-nios2-linux-gnu-i686-pc-linux-gnu.tar.bz2 else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC201009),y) TOOLCHAIN_EXTERNAL_SITE = http://sourcery.mentor.com/public/gnu_toolchain/powerpc-linux-gnu TOOLCHAIN_EXTERNAL_SOURCE = freescale-2010.09-55-powerpc-linux-gnu-i686-pc-linux-gnu.tar.bz2
Signature · 1 line
2.4.3
PATCH 4/7 toolchain-external: bump CodeSourcery NIOSII to 2015.11
Dear Romain Naour,
Quoted 4 lines · Romain Naour
Some package black list CS NIOSII toolchains, mainly due to
_gplink issue. A follow up patch can remove the restriction case by case.Signed-off-by Romain Naour <[email protected]>
Build a minimal rootfs using that toolchain after applying this patch.
Regards,
Vincent.
PATCH 4/7 toolchain-external: bump CodeSourcery NIOSII to 2015.11
Hi Thomas, All,
Le 24/11/2015 16:22, Vicente Olivert Riera a ?crit :
Quoted 6 lines
Dear Romain Naour,
Quoted 3 lines · Romain Naour
Some package black list CS NIOSII toolchains, mainly due to
_gplink issue. A follow up patch can remove the restriction case by case.
While testing this toolchain, I built libcap-ng package successfully but it still failed with buildroot internal toolchain with gcc 5.2.
I tried today with gcc 5.3 [1] which contain this patch [2].
So, libcap-ng should depends on BR2_TOOLCHAIN_GCC_AT_LEAST_5 for niosII target. By doing this all niosII/libcap-ng issues are avoided [3] :)
[1] http://patchwork.ozlabs.org/patch/553175/
[2]
https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=3e326557585ffde323867375539f04643fcad29a
[3]
http://autobuild.buildroot.net/results/901/90186d1fe134b804c0101554296b1235dc0ccbb0/build-end.log
Quoted 3 lines
Quoted 1 line
Signed-off-by Romain Naour <[email protected]>Reviewed-by Vicente Olivert Riera <[email protected]>
Thanks Vicente for the review and testing for this series :)
Best regards,
Romain
Quoted 7 lines
Build a minimal rootfs using that toolchain after applying this patch.
Regards,
Vincent.
PATCH 5/7 toolchain-external: bump CodeSourcery aarch64 to 2014.11
In reply to Romain NaourLike for 2014.05 [1], this toolchain need a small fixup:
Buildroot picks up aarch64-linux-gnu/libc/lib64 and all its contents, but does not pickup aarch64-linux-gnu/libc/lib to populate the staging directory. aarch64-linux-gnu/libc/lib contain a single symlink which is lost during Buildroot staging install :
aarch64-linux-gnu/libc/lib/ld-linux-aarch64.so.1 -> ../lib64/ld-2.20.so
Add a custom post install staging hook to create it manually.
A runtime testing show that /lib/ld-2.20.so and /lib/ld-linux-aarch64.so.1 are missing in the file system.
Add another post install target hook to copy ld-2.20.so and create the symlink.
Runtime tested using qemu_aarch64_virt_defconfig.
[1] http://patchwork.ozlabs.org/patch/467857/
--- toolchain/toolchain-external/Config.in | 13 +++++++------ .../toolchain-external/toolchain-external.hash | 2 +- toolchain/toolchain-external/toolchain-external.mk | 22 ++++++++++++++++++++-- 3 files changed, 28 insertions(+), 9 deletions(-)
toolchain/toolchain-external/Config.in +7 -6
@@ -851,7 +851,7 @@ config BR2_TOOLCHAIN_EXTERNAL_LINARO_AARCH64 http://www.linaro.org/engineering/armv8/ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64 - bool "CodeSourcery AArch64 2014.05" + bool "CodeSourcery AArch64 2015.11" depends on BR2_aarch64 depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86" depends on !BR2_STATIC_LIBS
@@ -859,12 +859,13 @@ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64 select BR2_INSTALL_LIBSTDCPP select BR2_HOSTARCH_NEEDS_IA32_LIBS select BR2_TOOLCHAIN_HAS_NATIVE_RPC - select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_13 - select BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 + 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.8.3, binutils 2.24, - glibc 2.18, gdb 7.7.50 and kernel headers 3.13. + 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. config BR2_TOOLCHAIN_EXTERNAL_MUSL_CROSS bool "Musl 1.1.6 toolchain (experimental)"
@@ -970,7 +971,7 @@ config BR2_TOOLCHAIN_EXTERNAL_PREFIX default "arm-arago-linux-gnueabi" if BR2_TOOLCHAIN_EXTERNAL_ARAGO_ARMV7A_201109 default "arm-arago-linux-gnueabi" if BR2_TOOLCHAIN_EXTERNAL_ARAGO_ARMV5TE_201109 default "aarch64-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_LINARO_AARCH64 - default "aarch64-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64 + default "aarch64-amd-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64 default "mips-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS201405 default "mips-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS201411 default "mips-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS201505
toolchain/toolchain-external/toolchain-external.hash +1 -1
@@ -39,7 +39,7 @@ sha256 ea804cf02014369da52abc4f64e91e96bde2dd2230aca96109459013d4545458 ia32-20 # AMD64 sha256 cb4d071db8aefb8005fe72824b96568d93a50f5acd85bacf505a34fe2f265f70 amd-2015.11-36-x86_64-amd-linux-gnu-i686-pc-linux-gnu.tar.bz2 # Aarch64 -sha256 8ea78c5988b2bb507534f1ad46aa46659f66b39d55f2fc40e163a90b4195e70f aarch64-2014.05-30-aarch64-linux-gnu-i686-pc-linux-gnu.tar.bz2 +sha256 405aada821146755c5f2df566375c2a682456d6b8451ee47b88cf1a52b093676 aarch64-amd-2014.11-95-aarch64-amd-linux-gnu-i686-pc-linux-gnu.tar.bz2 # ARM toolchains from Texas Instrument's Arago project sha256 f2febf3b3c565536461ad4405f1bcb835d75a6afb2a8bec958a1248cb4b81fc7 arago-2011.09-armv7a-linux-gnueabi-sdk.tar.bz2
toolchain/toolchain-external/toolchain-external.mk +20 -2
@@ -286,6 +286,22 @@ define TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS201505_LIB_NAMES_FIX $(STAGING_DIR)/usr/include/gnu/ endef +# Buildroot picks up aarch64-linux-gnu/libc/lib64 and all its contents, but +# does not pickup aarch64-linux-gnu/libc/lib to populate the staging directory. +# aarch64-linux-gnu/libc/lib contain a single symlink which is lost during +# Buildroot staging install : +# aarch64-linux-gnu/libc/lib/ld-linux-aarch64.so.1 -> ../lib64/ld-2.20.so +define TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64_STAGING_FIXUP + ln -sf ld-2.20.so $(STAGING_DIR)/lib/ld-linux-aarch64.so.1 +endef + +# For some reason aarch64-linux-gnu/libc/lib64/ld-2.20.so is not copied to +# target directory. +define TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64_TARGET_FIXUP + cp -f $(STAGING_DIR)/lib/ld-2.20.so $(TARGET_DIR)/lib/ + ln -sf ld-2.20.so $(TARGET_DIR)/lib/ld-linux-aarch64.so.1 +endef + # 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,
@@ -406,8 +422,10 @@ TOOLCHAIN_EXTERNAL_SOURCE = gcc-linaro-5.1-2015.08-x86_64_aarch64-linux-gnu.tar. endif TOOLCHAIN_EXTERNAL_POST_INSTALL_STAGING_HOOKS += TOOLCHAIN_EXTERNAL_LINARO_AARCH64_SYMLINK else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64),y) -TOOLCHAIN_EXTERNAL_SITE = http://sourcery.mentor.com/public/gnu_toolchain/aarch64-linux-gnu -TOOLCHAIN_EXTERNAL_SOURCE = aarch64-2014.05-30-aarch64-linux-gnu-i686-pc-linux-gnu.tar.bz2 +TOOLCHAIN_EXTERNAL_SITE = http://sourcery.mentor.com/public/gnu_toolchain/aarch64-amd-linux-gnu +TOOLCHAIN_EXTERNAL_SOURCE = aarch64-amd-2014.11-95-aarch64-amd-linux-gnu-i686-pc-linux-gnu.tar.bz2 +TOOLCHAIN_EXTERNAL_POST_INSTALL_STAGING_HOOKS += TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64_STAGING_FIXUP +TOOLCHAIN_EXTERNAL_POST_INSTALL_TARGET_HOOKS += TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64_TARGET_FIXUP else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_MUSL_CROSS),y) TOOLCHAIN_EXTERNAL_VERSION = 1.1.6 TOOLCHAIN_EXTERNAL_SITE = https://googledrive.com/host/0BwnS5DMB0YQ6bDhPZkpOYVFhbk0/musl-$(TOOLCHAIN_EXTERNAL_VERSION)
Signature · 1 line
2.4.3
PATCH 5/7 toolchain-external: bump CodeSourcery aarch64 to 2014.11
Dear Romain Naour,
the patch subject is wrong. You are bumping to 2015.11 instead of 2014.11. I guess the maintainer will not mind to fix it for you.
Quoted 16 lines · Romain Naour
Like for 2014.05 [1], this toolchain need a small fixup:
Buildroot picks up aarch64-linux-gnu/libc/lib64 and all its contents, but does not pickup aarch64-linux-gnu/libc/lib to populate the staging directory. aarch64-linux-gnu/libc/lib contain a single symlink which is lost during Buildroot staging install :
aarch64-linux-gnu/libc/lib/ld-linux-aarch64.so.1 -> ../lib64/ld-2.20.soAdd a custom post install staging hook to create it manually.
A runtime testing show that
/lib/ld-2.20.soand/lib/ld-linux-aarch64.so.1are missing in the file system.Add another post install target hook to copy ld-2.20.so and create the symlink.
Quoted 6 lines
Runtime tested using
qemu_aarch64_virt_defconfig.[1] http://patchwork.ozlabs.org/patch/467857/
Signed-off-by Romain Naour <[email protected]>Cc Thomas Petazzoni <[email protected]>
Build a minimal rootfs using that toolchain after applying this patch.
Regards,
Vincent.
PATCH 5/7 toolchain-external: bump CodeSourcery aarch64 to 2014.11
Hi Vicente,
Le 24/11/2015 16:31, Vicente Olivert Riera a ?crit :
Quoted 4 lines
Dear Romain Naour,
the patch subject is wrong. You are bumping to 2015.11 instead of 2014.11. I guess the maintainer will not mind to fix it for you.
Thanks for the review and testing :)
Actually the patch subject is correct, this is the aarch64 CodeSourcery 2014.11 toolchain... but the typo is in the Config.in prompt:
s/2015.11/2014.11/
Dear maintainer, can you fix it while applying. Thanks!
Best regards,
Romain
Quoted 32 lines · Romain Naour
Quoted 16 lines
Like for 2014.05 [1], this toolchain need a small fixup:
Buildroot picks up aarch64-linux-gnu/libc/lib64 and all its contents, but does not pickup aarch64-linux-gnu/libc/lib to populate the staging directory. aarch64-linux-gnu/libc/lib contain a single symlink which is lost during Buildroot staging install :
aarch64-linux-gnu/libc/lib/ld-linux-aarch64.so.1 -> ../lib64/ld-2.20.soAdd a custom post install staging hook to create it manually.
A runtime testing show that
/lib/ld-2.20.soand/lib/ld-linux-aarch64.so.1are missing in the file system.Add another post install target hook to copy ld-2.20.so and create the symlink.
Quoted 6 lines
Runtime tested using
qemu_aarch64_virt_defconfig.[1] http://patchwork.ozlabs.org/patch/467857/
Signed-off-by Romain Naour <[email protected]>Cc Thomas Petazzoni <[email protected]>Build a minimal rootfs using that toolchain after applying this patch.
Regards,
Vincent.
PATCH 6/7 toolchain-external: CodeSourcery MIPS: support only one version
In reply to Romain NaourSee the conclusion about external toolchains during the Buildroot meeting [1]:
"In the future, we stick to a single external toolchain version. The Kconfig symbol should not encode the version (avoid legacy handling)"
[1] http://elinux.org/index.php?title=Buildroot:DeveloperDaysELCE2015#Report
--- toolchain/toolchain-external/Config.in | 180 +-------------------- .../toolchain-external/toolchain-external.hash | 4 - toolchain/toolchain-external/toolchain-external.mk | 8 +- 3 files changed, 3 insertions(+), 189 deletions(-)
toolchain/toolchain-external/Config.in +2 -178
@@ -236,7 +236,7 @@ config BR2_TOOLCHAIN_EXTERNAL_ARAGO_ARMV5TE_201109 This toolchain uses software-floating point. -config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS201505 +config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS bool "Sourcery CodeBench MIPS 2015.05" depends on BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el depends on BR2_mips_32r2 || BR2_mips_64r2
@@ -323,180 +323,6 @@ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS201505 Select the n64 ABI Select BR2_SOFT_FLOAT -config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS201411 - bool "Sourcery CodeBench MIPS 2014.11" - depends on BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el - depends on BR2_mips_32r2 || BR2_mips_64r2 - 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_NATIVE_RPC - select BR2_INSTALL_LIBSTDCPP - select BR2_HOSTARCH_NEEDS_IA32_LIBS - select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_16 - select BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 - help - Sourcery CodeBench toolchain for the MIPS architecture, from - Mentor Graphics. It uses gcc 4.9.1, binutils 2.24.51, glibc - 2.20, uClibc 0.9.30 and gdb 7.7.50, kernel headers 3.16.2. 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 - -config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS201405 - bool "Sourcery CodeBench MIPS 2014.05" - depends on BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el - depends on BR2_mips_32r2 || BR2_mips_64r2 - 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_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 MIPS architecture, from - Mentor Graphics. It uses gcc 4.8.3, binutils 2.24.51, glibc - 2.18, uClibc 0.9.30 and gdb 7.7.50, kernel headers 3.13. 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
@@ -972,9 +798,7 @@ config BR2_TOOLCHAIN_EXTERNAL_PREFIX default "arm-arago-linux-gnueabi" if BR2_TOOLCHAIN_EXTERNAL_ARAGO_ARMV5TE_201109 default "aarch64-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_LINARO_AARCH64 default "aarch64-amd-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64 - default "mips-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS201405 - default "mips-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS201411 - default "mips-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS201505 + default "mips-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS default "nios2-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII default "powerpc-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC201009 default "powerpc-linux-gnu" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC201103
toolchain/toolchain-external/toolchain-external.hash +0 -4
@@ -1,10 +1,6 @@ # Sourcery CodeBench Lite for MIPS # From: https://sourcery.mentor.com/GNUToolchain/release3068 md5 0fcdc0fee260c7bed060c999bfe8440d mips-2015.05-18-mips-linux-gnu-i686-pc-linux-gnu.tar.bz2 -# From: https://sourcery.mentor.com/GNUToolchain/release2935 -md5 ad4a66e4791606c5df70f48c4a97b0ec mips-2014.11-22-mips-linux-gnu-i686-pc-linux-gnu.tar.bz2 -# From: https://sourcery.mentor.com/GNUToolchain/release2791 -md5 14facaac538a43533b89d969d7904d46 mips-2014.05-27-mips-linux-gnu-i686-pc-linux-gnu.tar.bz2 ###################################### # Next hashes are all locally computed
toolchain/toolchain-external/toolchain-external.mk +1 -7
@@ -357,13 +357,7 @@ TOOLCHAIN_EXTERNAL_SITE = http://releases.linaro.org/components/toolchain/binari TOOLCHAIN_EXTERNAL_SOURCE = gcc-linaro-5.1-2015.08-x86_64_armeb-linux-gnueabihf.tar.xz endif TOOLCHAIN_EXTERNAL_POST_INSTALL_STAGING_HOOKS += TOOLCHAIN_EXTERNAL_LINARO_ARMEBHF_SYMLINK -else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS201405),y) -TOOLCHAIN_EXTERNAL_SITE = http://sourcery.mentor.com/public/gnu_toolchain/mips-linux-gnu -TOOLCHAIN_EXTERNAL_SOURCE = mips-2014.05-27-mips-linux-gnu-i686-pc-linux-gnu.tar.bz2 -else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS201411),y) -TOOLCHAIN_EXTERNAL_SITE = http://sourcery.mentor.com/public/gnu_toolchain/mips-linux-gnu -TOOLCHAIN_EXTERNAL_SOURCE = mips-2014.11-22-mips-linux-gnu-i686-pc-linux-gnu.tar.bz2 -else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS201505),y) +else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS),y) TOOLCHAIN_EXTERNAL_SITE = http://sourcery.mentor.com/public/gnu_toolchain/mips-linux-gnu TOOLCHAIN_EXTERNAL_SOURCE = mips-2015.05-18-mips-linux-gnu-i686-pc-linux-gnu.tar.bz2 TOOLCHAIN_EXTERNAL_POST_INSTALL_STAGING_HOOKS += TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS201505_LIB_NAMES_FIX
Signature · 1 line
2.4.3
PATCH 6/7 toolchain-external: CodeSourcery MIPS: support only one version
Dear Romain Naour,
Quoted 9 lines · Romain Naour
See the conclusion about external toolchains during the Buildroot meeting [1]:
"In the future, we stick to a single external toolchain version. TheKconfigsymbol should not encode the version (avoid legacy handling)"[1] http://elinux.org/index.php?title=Buildroot:DeveloperDaysELCE2015#Report
Signed-off-by Romain Naour <[email protected]>Cc Vicente Olivert Riera <[email protected]>
Build a minimal rootfs using that toolchain after applying this patch.
Regards,
Vincent.
PATCH 7/7 toolchain-external: bump CodeSourcery MIPS to 2015.11
In reply to Romain NaourUse a stronger hash.
--- toolchain/toolchain-external/Config.in | 10 +++---- .../toolchain-external/toolchain-external.hash | 4 +-- toolchain/toolchain-external/toolchain-external.mk | 34 +--------------------- 3 files changed, 8 insertions(+), 40 deletions(-)
toolchain/toolchain-external/Config.in +5 -5
@@ -237,7 +237,7 @@ config BR2_TOOLCHAIN_EXTERNAL_ARAGO_ARMV5TE_201109 This toolchain uses software-floating point. config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS - bool "Sourcery CodeBench MIPS 2015.05" + bool "Sourcery CodeBench MIPS 2015.11" depends on BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el depends on BR2_mips_32r2 || BR2_mips_64r2 depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
@@ -247,12 +247,12 @@ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS select BR2_TOOLCHAIN_HAS_NATIVE_RPC select BR2_INSTALL_LIBSTDCPP select BR2_HOSTARCH_NEEDS_IA32_LIBS - select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_19 - select BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 + select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_2 + select BR2_TOOLCHAIN_GCC_AT_LEAST_5 help Sourcery CodeBench toolchain for the MIPS architecture, from - Mentor Graphics. It uses gcc 4.9.2, binutils 2.24.51, glibc - 2.21, uClibc 0.9.30 and gdb 7.7.50, kernel headers 3.19. It + Mentor Graphics. It uses gcc 5.2, binutils 2.25.51, glibc + 2.22, uClibc 0.9.30 and gdb 7.10.50, kernel headers 4.2. It has support for the following variants: - MIPS32r2 - Big-Endian, 2008 NaN, O32 Select MIPS (big endian) core
toolchain/toolchain-external/toolchain-external.hash +2 -2
@@ -1,6 +1,6 @@ # Sourcery CodeBench Lite for MIPS -# From: https://sourcery.mentor.com/GNUToolchain/release3068 -md5 0fcdc0fee260c7bed060c999bfe8440d mips-2015.05-18-mips-linux-gnu-i686-pc-linux-gnu.tar.bz2 +# Locally computed +sha256 e653102803d0fadc0a83286400c03bc7932ab081d3f8fc8917c34e76468315a2 mips-2015.11-32-mips-linux-gnu-i686-pc-linux-gnu.tar.bz2 ###################################### # Next hashes are all locally computed
toolchain/toolchain-external/toolchain-external.mk +1 -33
@@ -255,37 +255,6 @@ define TOOLCHAIN_EXTERNAL_LINARO_AARCH64_SYMLINK ln -snf . $(TARGET_DIR)/usr/lib/aarch64-linux-gnu endef -# The CodeSourcery MIPS 2015.05 toolchain has some missing headers we -# need to create manually in order to avoid compilation errors. A bug -# has been already reported and fixed upstream, and the fix will be -# included in the next release. -define TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS201505_LIB_NAMES_FIX - cp $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)/mips-linux-gnu/libc/usr/include/gnu/lib-names-o32_hard.h \ - $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)/mips-linux-gnu/libc/usr/include/gnu/lib-names-o32_soft.h - $(SED) 's#hard#soft#' $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)/mips-linux-gnu/libc/usr/include/gnu/lib-names-o32_soft.h - - cp $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)/mips-linux-gnu/libc/usr/include/gnu/lib-names-o32_hard.h \ - $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)/mips-linux-gnu/libc/usr/include/gnu/lib-names-o32_hard_2008.h - $(SED) 's#hard#hard_2008#' $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)/mips-linux-gnu/libc/usr/include/gnu/lib-names-o32_hard_2008.h - $(SED) 's#ld.so.1#ld-linux-mipsn8.so.1#' $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)/mips-linux-gnu/libc/usr/include/gnu/lib-names-o32_hard_2008.h - $(SED) '/LD_SO/i \ - #define LD_LINUX_MIPSN8_SO "ld-linux-mipsn8.so.1"' \ - $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)/mips-linux-gnu/libc/usr/include/gnu/lib-names-o32_hard_2008.h - - cp $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)/mips-linux-gnu/libc/usr/include/gnu/lib-names-o32_soft.h \ - $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)/mips-linux-gnu/libc/usr/include/gnu/lib-names-n64_soft.h - $(SED) 's#o32#n64#' $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)/mips-linux-gnu/libc/usr/include/gnu/lib-names-n64_soft.h - - cp $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)/mips-linux-gnu/libc/usr/include/gnu/lib-names-o32_soft.h \ - $(STAGING_DIR)/usr/include/gnu/ - - cp $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)/mips-linux-gnu/libc/usr/include/gnu/lib-names-o32_hard_2008.h \ - $(STAGING_DIR)/usr/include/gnu/ - - cp $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)/mips-linux-gnu/libc/usr/include/gnu/lib-names-n64_soft.h \ - $(STAGING_DIR)/usr/include/gnu/ -endef - # Buildroot picks up aarch64-linux-gnu/libc/lib64 and all its contents, but # does not pickup aarch64-linux-gnu/libc/lib to populate the staging directory. # aarch64-linux-gnu/libc/lib contain a single symlink which is lost during
@@ -359,8 +328,7 @@ endif TOOLCHAIN_EXTERNAL_POST_INSTALL_STAGING_HOOKS += TOOLCHAIN_EXTERNAL_LINARO_ARMEBHF_SYMLINK else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS),y) TOOLCHAIN_EXTERNAL_SITE = http://sourcery.mentor.com/public/gnu_toolchain/mips-linux-gnu -TOOLCHAIN_EXTERNAL_SOURCE = mips-2015.05-18-mips-linux-gnu-i686-pc-linux-gnu.tar.bz2 -TOOLCHAIN_EXTERNAL_POST_INSTALL_STAGING_HOOKS += TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS201505_LIB_NAMES_FIX +TOOLCHAIN_EXTERNAL_SOURCE = mips-2015.11-32-mips-linux-gnu-i686-pc-linux-gnu.tar.bz2 else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII),y) TOOLCHAIN_EXTERNAL_SITE = http://sourcery.mentor.com/public/gnu_toolchain/nios2-linux-gnu TOOLCHAIN_EXTERNAL_SOURCE = sourceryg++-2015.11-27-nios2-linux-gnu-i686-pc-linux-gnu.tar.bz2
Signature · 1 line
2.4.3
PATCH 7/7 toolchain-external: bump CodeSourcery MIPS to 2015.11
Dear Romain Naour,
Quoted 4 lines · Romain Naour
Use a stronger hash.
Signed-off-by Romain Naour <[email protected]>Cc Vicente Olivert Riera <[email protected]>
Build a minimal rootfs using that toolchain after applying this patch.
Also checked the hash value is correct:
mips-2015.11-32-mips-linux-gnu-i686-pc-linux-gnu.tar.bz2: OK (sha256:e653102803d0fadc0a83286400c03bc7932ab081d3f8fc8917c34e76468315a2)
Also checked the lib-names headers problem has been fixed in this version.
Regards,
Vincent.
PATCH 1/7 toolchain-external: CodeSourcery AMD64: support only one version
In reply to Romain NaourDear Romain Naour,
Quoted 8 lines · Romain Naour
See the conclusion about external toolchains during the Buildroot meeting [1]:
"In the future, we stick to a single external toolchain version. TheKconfigsymbol should not encode the version (avoid legacy handling)"[1] http://elinux.org/index.php?title=Buildroot:DeveloperDaysELCE2015#Report
Signed-off-by Romain Naour <[email protected]>
Build a minimal rootfs using that toolchain after applying this patch.
Regards,
Vincent.
PATCH 1/7 toolchain-external: CodeSourcery AMD64: support only one version
In reply to Romain NaourRomain,
Quoted 8 lines · Romain Naour
See the conclusion about external toolchains during the Buildroot meeting [1]:
"In the future, we stick to a single external toolchain version. TheKconfigsymbol should not encode the version (avoid legacy handling)"[1] http://elinux.org/index.php?title=Buildroot:DeveloperDaysELCE2015#Report
Signed-off-by Romain Naour <[email protected]>
I have applied patches 1, 2, 3, 4, 6 and 7 of this patch series. Could you send patches doing the same (reducing to one version only) for other CodeSourcery toolchains as well ?
Regarding patch 5, I don't really like the hacks needed with the dynamic loader, and would like to see if there is a way to avoid having those hacks.
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
PATCH 1/7 toolchain-external: CodeSourcery AMD64: support only one version
Hi Thomas,
Le 19/12/2015 13:57, Thomas Petazzoni a ?crit :
Quoted 8 lines
Romain,
Quoted 5 lines · Romain Naour
See the conclusion about external toolchains during the Buildroot meeting [1]:
"In the future, we stick to a single external toolchain version. TheKconfigsymbol should not encode the version (avoid legacy handling)"
Quoted 7 lines
Quoted 3 lines
[1] http://elinux.org/index.php?title=Buildroot:DeveloperDaysELCE2015#Report
Signed-off-by Romain Naour <[email protected]>I have applied patches 1, 2, 3, 4, 6 and 7 of this patch series. Could you send patches doing the same (reducing to one version only) for other CodeSourcery toolchains as well ?
Sure, I'll do it.
Quoted 4 lines
Regarding patch 5, I don't really like the hacks needed with the dynamic loader, and would like to see if there is a way to avoid having those hacks.
I'm agree these hack are not great but I wanted to avoid touching the external-toolchain.mk for this corner case...
Best regards,
Romain
Quoted 3 lines
Thomas
PATCH 1/7 toolchain-external: CodeSourcery AMD64: support only one version
In reply to Thomas PetazzoniHi Thomas,
Le 19/12/2015 13:57, Thomas Petazzoni a ?crit :
Quoted 12 lines
Romain,
Quoted 8 lines · Romain Naour
See the conclusion about external toolchains during the Buildroot meeting [1]:
"In the future, we stick to a single external toolchain version. TheKconfigsymbol should not encode the version (avoid legacy handling)"[1] http://elinux.org/index.php?title=Buildroot:DeveloperDaysELCE2015#Report
Signed-off-by Romain Naour <[email protected]>
Quoted 7 lines
I have applied patches 1, 2, 3, 4, 6 and 7 of this patch series. Could you send patches doing the same (reducing to one version only) for other CodeSourcery toolchains as well ?
Regarding patch 5, I don't really like the hacks needed with the dynamic loader, and would like to see if there is a way to avoid having those hacks.
Well, this CS toolchain defeat (once again) the Buildroot toolchain-external Makefile code...
I removed the hack from TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64_STAGING_FIXUP but I had to do something in copy_toolchain_sysroot() to handle the special case.
if we use a 64 bits toolchain we also look at "lib" directory to see if there are some symlink to libraries belonging to "lib64". If yes, we create the corresponding symlink in STAGING_DIR.
toolchain/helpers.mk +12 -0
@@ -142,6 +142,18 @@ copy_toolchain_sysroot = \ $${ARCH_SYSROOT_DIR}/$$i/ $(STAGING_DIR)/$$i/ ; \ fi ; \ done ; \ + if [ $${ARCH_LIB_DIR} = "lib64" ] ; then \ + if [ -d $${ARCH_SYSROOT_DIR}/lib ] ; then \ + mkdir -p `dirname $(STAGING_DIR)/lib` ; \ + SYMLINKS=`find $${ARCH_SYSROOT_DIR}/lib -maxdepth 1 -type l 2>/dev/null` ; \ + for i in $${SYMLINKS} ; do \ + relpath=`readlink -f $${i}` ; \ + if [ "`dirname $${relpath}`" = "$${ARCH_SYSROOT_DIR}lib64" ] ; then \ + ln -sf `basename $${relpath}` $(STAGING_DIR)/lib/`basename $${i}` ; \ + fi ; \ + done ; \ + fi ; \ + fi ; \ if [ `readlink -f $${SYSROOT_DIR}` != `readlink -f $${ARCH_SYSROOT_DIR}` ] ; then \ if [ ! -d $${ARCH_SYSROOT_DIR}/usr/include ] ; then \ cp -a $${SYSROOT_DIR}/usr/include $(STAGING_DIR)/usr ; \
I don't think it's better than TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64_STAGING_FIXUP.
The same kind of change should be done in copy_toolchain_lib_root() to copy the dynamic loader.
In the common case, we expect that it match this pattern: ld*.so.* But it's not the case here because the symlink to the dynamic loader is in another directory (lib) and we are looking for it in (lib64). So the LIB_EXTERNAL_LIBS += ld*.so.* doesn't match any library during the copy to TARGET_DIR.
That's why the system doesn't boot at runtime.
Thoughts ?
Best regards,
Romain
Quoted 3 lines
Thomas