aboutsummaryrefslogtreecommitdiff
path: root/toolchain
Commit message (Collapse)AuthorAgeFilesLines
* toolchain: CodeSourcery AMD64 affected by PR20006Gravatar Yann E. MORIN2018-11-292-0/+6
| | | | | | | Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Romain Naour <romain.naour@gmail.com> Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* toolchain/toolchain-buildroot: enable glibc for all little-endian ARCs with ↵Gravatar Alexey Brodkin2018-11-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | atomic ops Initially we had a port only for ARCv2 cores but then with a simple change ARCompact cores got supported as well. So we generalize from BR2_archs to BR2_arcle as we haven't tried to get glibc working on big-endian ARCs yet. Also we never bothered to check avaialbility of atomic instructions in the core but in case of Glibc for ARC this is really a must, so we add this check here. Note in case of uClibc we may have system w/o HW atomics but: 1. Only single-core systems are allowed 2. Atomic instructions are emulated via arc_usr_cmpxchg syscall Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com> Cc: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Cc: Peter Korsgaard <peter@korsgaard.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* toolchain: move glibc nsswitch.conf handling to a post-target hookGravatar Peter Korsgaard2018-10-212-10/+10
| | | | | | | | | | | | | | | | nsswitch.conf is processed both by the toolchain, nss-mdns and nss-myhostname without any guaranteed ordering in between. The toolchain package ensures that nsswitch.conf is available, and the two nss-* packages tweaks the content, so the toolchain processing should run before the nss-* ones. Toolchain is a dependency of all the packages, so ensure this is done by moving the toolchain handling to a post-target-install hook. Also move the variable to toolchain/toolchain/toolchain.mk where the virtual toolchain package is defined for clarity. Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* toolchain-external-arm-aarch64-be: fix check-package warningGravatar Thomas Petazzoni2018-10-201-1/+0
| | | | | | | | Fixes: toolchain/toolchain-external/toolchain-external-arm-aarch64-be/toolchain-external-arm-aarch64-be.mk:12: consecutive empty lines Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* toolchain-external: add fortran support option for custom external toolchainsGravatar Romain Naour2018-10-201-0/+8
| | | | | | | | | | If a custom external toolchain is used, we can't enable the fortran support. Add a new option for that. Signed-off-by: Romain Naour <romain.naour@gmail.com> Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Cc: Samuel Martin <s.martin49@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* toolchain-external: add Arm AArch64-BE toolchain 8.2-2018.08Gravatar Romain Naour2018-10-205-0/+47
| | | | | | | | | | | | This is the same toolchain that was previously distributed by Linaro. [1] Switch default toolchain as this toolchain supersed the Linaro AArch64-BE toolchain. Only x86_64 host are supported, so keep Linaro toolchain for x86 host. [1] https://developer.arm.com/open-source/gnu-toolchain/gnu-a/downloads Signed-off-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* toolchain-external: add Arm AArch64 toolchain 8.2-2018.08Gravatar Romain Naour2018-10-205-1/+47
| | | | | | | | | | | | | | This is the same toolchain that was previously distributed by Linaro. [1] Switch default toolchain as this toolchain supersed the Linaro AArch64 toolchain. Only x86_64 host are supported, so keep Linaro toolchain for x86 host. Tested with qemu_aarch64_virt_defconfig. [1] https://developer.arm.com/open-source/gnu-toolchain/gnu-a/downloads Signed-off-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* toolchain-external: add Arm ARM toolchain 8.2-2018.08Gravatar Romain Naour2018-10-205-1/+58
| | | | | | | | | | | | | | This is the same toolchain that was previously distributed by Linaro. [1] Switch default toolchain as this toolchain supersed the Linaro ARM toolchain. Only x86_64 host are supported, so keep Linaro toolchain for x86 host. Tested with qemu_arm_vexpress_defconfig. [1] https://developer.arm.com/open-source/gnu-toolchain/gnu-a/downloads Signed-off-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* toolchain/toolchain-wrapper: add BR2_SSP_* supportGravatar Matt Weber2018-10-202-0/+17
| | | | | | | Migrate the stack protection flag management into the wrapper. Signed-off-by: Matthew Weber <matthew.weber@rockwellcollins.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* toolchain/toolchain-wrapper: add BR2_RELRO_Gravatar Matt Weber2018-10-202-2/+86
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The RELRO/PIE flags are currently passed via CFLAGS/LDFLAGS and this patch proposes moving them to the toolchain wrapper. (1) The flags should _always_ be passed, without leaving the possibility for any package to ignore them. I.e, when BR2_RELRO_FULL=y is used in a build, all executables should be built PIE. Passing those options through the wrapper ensures they are used during the build of all packages. (2) Some options are incompatible with -fPIE. For example, when building object files for a shared libraries, -fPIC is used, and -fPIE shouldn't be used in combination with -fPIE. Similarly, -r or -static are directly incompatible as they are different link time behaviors then the intent of PIE. Passing those options through the wrapper allows to add some "smart" logic to only pass -fPIE/-pie when relevant. (3) Some toolchain, kernel and bootloader packages may want to explicitly disable PIE in a build where the rest of the userspace has intentionally enabled it. The wrapper provides an option to key on the -fno-pie/-no-pie and bypass the appending of RELRO flags. The current Kernel and U-boot source trees include this option. https://github.com/torvalds/linux/commit/8438ee76b004ef66d125ade64c91fc128047d244 https://github.com/u-boot/u-boot/commit/6ace36e19a8cfdd16ce7c02625edf36864897bf5 If using PIE with a older Kernel and/or U-boot version, a backport of these changes might be required. However this patchset also uses the __KERNEL__ and __UBOOT__ defines as a way to disable PIE. NOTE: The current implementation via CFLAGS/LDFLAGS has caused some build time failures as the conditional logic doesn't yet exist in Buildroot: https://bugs.busybox.net/show_bug.cgi?id=11206 https://bugs.busybox.net/show_bug.cgi?id=11321 Good summary of the most common build failures related to enabling pie: https://wiki.ubuntu.com/SecurityTeam/PIE [Peter: minor cleanups] Signed-off-by: Matthew Weber <matthew.weber@rockwellcollins.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* pkg-toolchain-external.mk: fix s/CC_TARGET_ARCH/GCC_TARGET_ARCH/ typoGravatar Peter Korsgaard2018-10-011-1/+1
| | | | | | | | | commit e0d14fb21b (toolchain-external: drop no longer needed CC_TARGET_<foo>_ variables) dropped the CC_TARGET_* variables, but missed one. Fix that. Reported-by: Mark Corbin <mark.corbin@embecosm.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* toolchain-external: drop no longer needed CC_TARGET_<foo>_ variablesGravatar Thomas Petazzoni2018-10-011-32/+24
| | | | | | | | | | | | | | | Since the introduction of the GCC_TARGET_<foo> variables in arch/arch.mk in commit bd0640a2139119e2fdb4b384ebf32d1edcb0fdaa ("arch: allow GCC target options to be optionally overwritten") and the removal of the BR2_GCC_TARGET_CPU_REVISION, the CC_TARGET_<foo>_ variables in pkg-toolchain-external.mk map 1:1 with the corresponding GCC_TARGET_<foo> variables. So let's drop the CC_TARGET_<foo>_ variables, and use directly the GCC_TARGET_<foo> ones. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* arch: drop BR2_GCC_TARGET_CPU_REVISION optionGravatar Thomas Petazzoni2018-10-011-4/+0
| | | | | | | | | | | In commit 325bb37942f8d3826dab9dc6e88b25234e67a2cf, support for the Blackfin architecture was removed. This was our only use of BR2_GCC_TARGET_CPU_REVISION, and since this config option somewhat complicates the calculation of the --with-cpu/-mcpu option values, let's drop it. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* arch: add support for RISC-V 64-bit (riscv64) architectureGravatar Mark Corbin2018-09-231-2/+4
| | | | | | | | | | | | | | This enables a riscv64 system to be built with a Buildroot generated toolchain (gcc >= 7.x, binutils >= 2.30, glibc only). This configuration has been used to successfully build a qemu-bootable riscv-linux-4.15 kernel (https://github.com/riscv/riscv-linux.git). Signed-off-by: Mark Corbin <mark.corbin@embecosm.com> [Thomas: - simplify arch.mk.riscv by directly setting GCC_TARGET_ARCH - simplify glibc.mk changes by using GLIBC_CONF_ENV.] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* arch: allow GCC target options to be optionally overwrittenGravatar Mark Corbin2018-09-231-11/+11
| | | | | | | | | | | | | The BR2_GCC_TARGET_* configuration variables are copied to corresponding GCC_TARGET_* variables which may then be optionally modified or overwritten by architecture specific makefiles. All makefiles must use the new GCC_TARGET_* variables instead of the BR2_GCC_TARGET_* versions. Signed-off-by: Mark Corbin <mark.corbin@embecosm.com> [Thomas: simplify include of arch/arch.mk] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* toolchain: add 4.18.x choice for headersGravatar Bernd Kuhls2018-09-062-0/+9
| | | | | | | Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com> (cherry picked from commit 7f62d8122bc42b84608cad34fb005b4870c143d5) Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* toolchain: improve musl check to support static toolchainsGravatar Thomas Petazzoni2018-08-212-8/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The check_musl function currently builds a program and verifies if the program interpreter starts with /lib/ld-musl. While this works fine for dynamically linked programs, this obviously doesn't work for a purely static musl toolchain such as [1]. There is no easy way to identify a toolchain as using the musl C library. For glibc, dynamic linking is always supported, so we look at the dynamic linker name. For uClibc, there is a distinctive uClibc_config.h header file. There is no such distinctive feature in musl. We end up resorting to looking for the string MUSL_LOCPATH, which is used by musl locale_map.c source file. This string has been present in musl since 2014. It certainly isn't a very stable or convincing solution to identify the C library as being musl, but it's the best we could find. Note that we are sure there is a libc.a file, because the check_unusable_toolchain function checks that there is a such a file. [1] http://autobuild.buildroot.net/toolchains/tarballs/br-arm-musl-static-2018.05.tar.bz2 Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* toolchain: add BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS hidden optionGravatar Fabrice Fontaine2018-08-181-10/+27
| | | | | | | | | | | Add BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS variable and use it in BR2_TOOLCHAIN_HAS_GCC_BUG_64735. This new variable will be used to select boost atomic when lock-free atomic ints are not available Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* toolchain-external-linaro-aarch64-be: new packageGravatar Ofer Heifetz2018-06-285-0/+49
| | | | | | | | | | | This commit adds a new package for the Linaro external toolchain for the AArch64 Big Endian architecture. https://releases.linaro.org/components/toolchain/binaries/7.3-2018.05 Signed-off-by: Ofer Heifetz <oferh@marvell.com> Reviewed-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* toolchain: bump ARC prebuild toolchain to arc-2018.03Gravatar Evgeniy Didin2018-06-283-8/+8
| | | | | | | | | Lets update prebuilt ARC toolchain to the most recent arc-2018.03. Signed-off-by: Evgeniy Didin <didin@synopsys.com> Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Cc: arc-buildroot@synopsys.com Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* toolchain-external: bump version of Linaro ARMeb toolchain to 7.3-2018.05Gravatar Romain Naour2018-06-233-9/+9
| | | | | | | https://releases.linaro.org/components/toolchain/binaries/7.3-2018.05 Signed-off-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* toolchain-external: bump version of Linaro ARM toolchain to 7.3-2018.05Gravatar Romain Naour2018-06-233-9/+9
| | | | | | | | | https://releases.linaro.org/components/toolchain/binaries/7.3-2018.05 Tested with qemu_arm_vexpress_defconfig. Signed-off-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* toolchain-external: bump version of Linaro AArch64 toolchain to 7.3-2018.05Gravatar Romain Naour2018-06-233-7/+7
| | | | | | | | | https://releases.linaro.org/components/toolchain/binaries/7.3-2018.05 Tested with qemu_aarch64_virt_defconfig. Signed-off-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* toolchain: add 4.17.x choice for headersGravatar Fabio Estevam2018-06-042-0/+9
| | | | | Signed-off-by: Fabio Estevam <festevam@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* Merge branch 'next'Gravatar Peter Korsgaard2018-06-025-20/+24
|\ | | | | | | Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
| * toolchain-external: bump CodeSourcery NIOSII to 2018.05Gravatar Romain Naour2018-05-303-12/+13
| | | | | | | | | | | | | | | | | | Re-add BR2_TOOLCHAIN_HAS_SSP since the toolchain support SSP. Tested with qemu_nios2_10m50_defconfig and Qemu 2.10.1-3.fc27 release. Signed-off-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
| * toolchain-external: add gcc 8 entryGravatar Romain Naour2018-05-301-0/+6
| | | | | | | | | | | | | | | | This patch allows to use an external toolchain based on gcc 8. Signed-off-by: Romain Naour <romain.naour@gmail.com> Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
| * toolchain: add gcc 8 entryGravatar Romain Naour2018-05-301-0/+5
| | | | | | | | | | | | | | | | | | In order to add gcc 8 support for internal and external toolchain in follow-up commits, introduce BR2_TOOLCHAIN_GCC_AT_LEAST_8 symbol. Signed-off-by: Romain Naour <romain.naour@gmail.com> Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
| * toolchain: remove BR2_TOOLCHAIN_HAS_SHADOW_PASSWORDSGravatar Baruch Siach2018-05-132-8/+0
| | | | | | | | | | | | | | | | | | | | | | | | Commit b9882925a4 (toolchain: introduce BR2_TOOLCHAIN_HAS_SHADOW_PASSWORDS) added this symbol to identify Blackfin toolchains without shadow passwords support. We no longer support Blackfin. Cc: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com> Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Signed-off-by: Baruch Siach <baruch@tkos.co.il> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* | toolchain: allow disabling packages affected by gcc bug 85180Gravatar Matt Weber2018-05-301-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Works around https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85180 which is an issue where the Microblaze architecture had code that caused a infinite recursion while optimizing in versions of GCC earlier than 8.x. More BR discussion can be found on this thread. http://buildroot-busybox.2317881.n4.nabble.com/autobuild-buildroot-net-Build-results-for-2018-04-25-td192721.html Resolves: http://autobuild.buildroot.net/results/b42d68c66d8ea035845a28c5530ef0682fd95713 (boost) http://autobuild.buildroot.net/results/af976a4805fb8b3f0c17a8e3a1f901b2255caa0b (flare-engine) http://autobuild.buildroot.net/results/d20/d20700bd538ba1e9d45ab8a61ecbbba1a320ef38 (gst-ffmpeg) CC: Romain Naour <romain.naour@gmail.com> Signed-off-by: Matthew Weber <matthew.weber@rockwellcollins.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* | toolchain: GCC bug 85862Gravatar Matt Weber2018-05-211-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | GCC < 7.x hangs while building libnss for the Microblaze Arch. Discovered by http://autobuild.buildroot.net/results/158e8ebb39713e1b436a5cc1a1916f46c30694df Reported: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85862 Simlar to: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=49218 [Peter: tweak ecryptfs comment, add comment/dependencies for qt5webengine] Signed-off-by: Matthew Weber <matthew.weber@rockwellcollins.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* | toolchain/buildroot: fix default of C library choiceGravatar Petr Vorel2018-05-131-1/+1
|/ | | | | | | | The BR2_TOOLCHAIN_UCLIBC symbol doesn't exist, it was meant to be BR2_TOOLCHAIN_BUILDROOT_UCLIBC. Signed-off-by: Petr Vorel <petr.vorel@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* toolchain-external-custom: allow specifying relative path to binariesGravatar Calin Crisan2018-04-192-1/+14
| | | | | | | | | | | | | | | | | | There are cases where a downloaded toolchain doesn't have its binaries placed directly in a "bin" subfolder (where BuildRoot currently looks for them). A common example is the official Raspberry Pi Toolchain (https://github.com/raspberrypi/tools), which has its binaries in "arm-bcm2708/arm-linux-gnueabihf/bin". This commit introduces BR2_TOOLCHAIN_EXTERNAL_REL_BIN_PATH that defaults to "bin" and can be changed as needed. Signed-off-by: Calin Crisan <ccrisan@gmail.com> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr> [Thomas: rework a bit how TOOLCHAIN_EXTERNAL_REL_BIN_PATH is defined.] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* toolchain, gcc, gdb, binutils, uclibc: remove Blackfin codeGravatar Thomas Petazzoni2018-04-152-2/+1
| | | | | | | This commit removes Blackfin related code from all toolchain code and components. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* toolchain: add 4.16.x choice for headersGravatar Bernd Kuhls2018-04-092-0/+9
| | | | | | Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de> Tested-by: Luca Ceresoli <luca@lucaceresoli.net> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* toolchain-wrapper: use -ffp-contract=off on MIPS Xburst for gcc >= 4.6Gravatar Waldemar Brodkorb2018-04-012-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since gcc 4.6, GCC deprecated -mfused-madd, -ffp-contract=off should be used for the Xburst workaround. Tested with the MIPS Sourcery 2011.03 toolchain (based on gcc 4.5), the toolchain wrapper uses -mno-fused-madd, as expected: $ BR2_DEBUG_WRAPPER=2 ./output/host/bin/mips-linux-gnu-gcc -o toto toto.c Toolchain wrapper executing: '/home/thomas/toolchains/mips-2011.03/bin/mips-linux-gnu-gcc' '--sysroot' '/home/thomas/projets/buildroot/output/host/mipsel-buildroot-linux-gnu/sysroot' '-mabi=32' '-msoft-float' '-mno-fused-madd' '-EL' '-march=mips32r2' '-o' 'toto' 'toto.c' And with the MIPS Sourcery 2012.09 toolchain (based on gcc 4.7), the toolchain wrapper uses -ffp-contract=off, as expected: $ BR2_DEBUG_WRAPPER=2 ./output/host/bin/mips-linux-gnu-gcc -o toto toto.c Toolchain wrapper executing: '/home/thomas/toolchains/mips-2012.09/bin/mips-linux-gnu-gcc' '--sysroot' '/home/thomas/projets/buildroot/output/host/mipsel-buildroot-linux-gnu/sysroot' '-mabi=32' '-msoft-float' '-ffp-contract=off' '-EL' '-march=mips32r2' '-o' 'toto' 'toto.c' Fixes the ci20_defconfig build: https://gitlab.com/buildroot.org/buildroot/-/jobs/60303132 Signed-off-by: Waldemar Brodkorb <wbx@openadk.org> [Thomas: rework to continue supporting pre-gcc-4.6 toolchains, extend the commit log after doing more testing.] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Reviewed-by: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* toolchain/*/Config.in: re-wrap help textGravatar Ricardo Martincoski2018-04-014-13/+20
| | | | | | | | | ... to follow the convention <tab><2 spaces><62 chars>. Signed-off-by: Ricardo Martincoski <ricardo.martincoski@gmail.com> Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Cc: Arnout Vandecappelle <arnout@mind.be> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* toolchain/*/Config.in: fix attributes orderGravatar Ricardo Martincoski2018-04-013-8/+8
| | | | | | | ... to follow the convention: type, default, depends on, select, help. Signed-off-by: Ricardo Martincoski <ricardo.martincoski@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* toolchain/toolchain.mk: fix code styleGravatar Ricardo Martincoski2018-04-011-10/+14
| | | | | | | | | | | | | | | | | Rearrange the header of the .mk file so it becomes similar to a header from a package. It doesn't fit in one line, so split the details to a comment below the header. GCONV_LIBS is only used inside this file, so rename it to start with TOOLCHAIN_, following the namespace convention already used by packages. Rename the hook COPY_GCONV_LIBS to TOOLCHAIN_GLIBC_COPY_GCONV_LIBS following the convention used for hooks in packages. Signed-off-by: Ricardo Martincoski <ricardo.martincoski@gmail.com> Cc: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com> Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* toolchain/wrapper: fix code styleGravatar Ricardo Martincoski2018-04-011-1/+5
| | | | | | | | | | The header of the .mk file fits in one line, so rearrange it to be similar to a header from a package. Signed-off-by: Ricardo Martincoski <ricardo.martincoski@gmail.com> Cc: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com> Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* toolchain: merge toolchain-common.in to Config.inGravatar Ricardo Martincoski2018-04-012-470/+470
| | | | | | | | | | | | | | | | | | toolchain-common.in is a Config.in file with an uncommon name. It is just included by toolchain/Config.in, and toolchain/Config.in is not that long, so instead of renaming the file, merge it to toolchain/Config.in. Move the raw contents from the file to the exact location it is currently included in order to not change the order in the menu. Update the references in the manual as well. Suggested-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Signed-off-by: Ricardo Martincoski <ricardo.martincoski@gmail.com> Cc: Arnout Vandecappelle <arnout@mind.be> Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* toolchain: fix detection of SSP supportGravatar Carlos Santos2018-03-252-2/+1
| | | | | | | | | | | | | | | | GCC issues a warning message if -fstack-protector is passed but SSP is not available, so in order to force the compilation to fail we must also pass -Werror. All external toolchains were verified. The only one whose configuration incorrectly selected BR2_TOOLCHAIN_HAS_SSP was CodeSourcery NIOSII. Fixes: http://autobuild.buildroot.net/results/ce8fe8ac9cf0db01ae15d476ea714ff176965cfb http://autobuild.buildroot.net/results/09ce8f05e28c0219f499ce55130e896cae0c8b45 Signed-off-by: Carlos Santos <casantos@datacom.ind.br> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* pkg-cmake: install CMake files as part of a packageGravatar Thomas Petazzoni2018-03-251-3/+0
| | | | | | | | | | | | | | | | | | | | Currently, the toolchainfile.cmake and Buildroot.cmake files are installed outside of any package, just triggered by the toolchain target. As part of the per-package SDK effort, we are trying to avoid anything that installs to the global $(HOST_DIR), and this is one of the remaining files installed in $(HOST_DIR) outside of any package. We fix this by installing such files as part of the toolchain package post-install staging hooks. Yes, a post-install staging hook to install things to $(HOST_DIR) is a bit weird, but the toolchain infrastructure is made of target packages only, and they all install a lot of stuff to $(HOST_DIR) already. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* toolchain: limit musl/kernel headers conflict workaroundGravatar Baruch Siach2018-02-141-6/+6
| | | | | | | | | | | | | | | | | | | | | The musl/kernel headers workaround was added in commit 196932cd91 (toolchain: workaround musl/kernel headers conflict) to fix definition collisions in networking related headers between musl headers and kernel headers. Kernel headers from version 4.15 and newer do not need this workaround anymore since kernel commit c0bace798436bc (uapi libc compat: add fallback for unsupported libcs). The C library does not have to define the __GLIBC__ macro to make the __UAPI_DEF_* macros effective. Updated the comment to accordingly. Tested with the xl2tp package. This package fails to build with older kernel headers without the workaround (struct in_pktinfo redefinition, among others). With 4.15 headers, xl2tp builds fine with this patch applied. That is, no workaround needed. Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Signed-off-by: Baruch Siach <baruch@tkos.co.il> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* toolchain: add 4.15.x choice for headersGravatar Fabio Estevam2018-01-282-0/+9
| | | | | Signed-off-by: Fabio Estevam <festevam@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* toolchain/toolchain-external: libatomic should also be copied for musl ↵Gravatar Thomas Petazzoni2018-01-171-2/+2
| | | | | | | | | | | | | | toolchains libatomic, like libgcc_s, is provided by gcc, so there is no reason to copy it over only for the glibc and uclibc cases, it should also be copied for the musl case. Without this, a program linked with libatomic on a musl system will fail to run due to the missing library. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain: bump ARC prebuild toolchain to arc-2017.09Gravatar Evgeniy Didin2018-01-093-10/+9
| | | | | | | | | | | | | There might be subtle differences between uClibc configuration compared to Buildroot's one. Native RPC now is disabled because uClinc-ng has removed it. Signed-off-by: Evgeniy Didin <didin@synopsys.com> Cc: Alexey Brodkin <abrodkin@synopsys.com> Cc: arc-buildroot@synopsys.com Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain: m68k coldfire is also affected by gcc bug 64735Gravatar Jan Heylen2018-01-071-0/+1
| | | | | | | | | | Verified experimentally by using exception_ptr with m68k_cf5208 and looking at the value of ATOMIC_INT_LOCK_FREE. ATOMIC_INT_LOCK_FREE=1, so the issue is present. Also verified that gcc 7.x fixed it also for cf5208. Signed-off-by: Jan Heylen <jan.heylen@nokia.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain: post-pone evaluation of TOOLCHAIN_EXTERNAL_BINGravatar Thomas Petazzoni2017-12-311-1/+1
| | | | | | | | | | | | | | | | | | The upcoming per-package SDK functionality is heavily based on the fact that HOST_DIR, STAGING_DIR and TARGET_DIR are evaluated during the configure/build/install steps of the packages. Therefore, any evaluation-during-assignment using := is going to cause problems, and need to be turned into evaluation-during-use using =. This patch fix up one such instance in the external toolchain code. This change is independent from the per-package SDK functionality, and could be applied separately. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain-external: bump version of Linaro AArch64 toolchain to 7.2-2017.11Gravatar Romain Naour2017-12-293-8/+7
| | | | | | | | | https://releases.linaro.org/components/toolchain/binaries/7.2-2017.11 Tested with qemu_aarch64_virt_defconfig. Signed-off-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>