summaryrefslogtreecommitdiffstats
path: root/toolchain/toolchain-external
Commit message (Collapse)AuthorAgeFilesLines
* toolchain/external: fix building the wrapper on MIPSYann E. MORIN2014-11-271-3/+11
| | | | | | | | | | | | | | | | | | | | | | | Some crazy folks use MIPS machines as build machines. ;-) On MIPS, the only acceptable hash-style is 'sysv', because the MIPS ABI defines that the GOT ordering to be the same as the symbols ordering, while GNU hash requires symbols to be sorted by their hash. Looking at binutils' code, it seems that only MIPS suffers from that limitation. Currently, we force the toolchain wrapper to be linked with both hash styles, which breaks on MIPS. So, fix that by singling out MIPS, and use sysv in that case, and both otherwise. Reported-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Reviewed-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com> Tested-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* toolchain-external: update Linaro toolchainsThomas Petazzoni2014-11-112-13/+13
| | | | | | | | | | | Bump the ARM, ARMeb and AArch64 Linaro toolchains from 14.08 to 14.09. We can't bump to 14.10, because they completely changed the toolchains and they are now completely broken: they switched from Crosstool-NG to a new build tool to generate the toolchain, and now the sysroot handling is completely borked. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* toolchain-external: do not use BR2_GCC_TARGET_TUNE anymoreThomas Petazzoni2014-11-072-14/+3
| | | | | | | | Since the BR2_GCC_TARGET_TUNE value is always empty now, there is no longer a point in using it in the external toolchain logic. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* toolchain-external: use BR2_ARM_CPU_ARM* optionsThomas Petazzoni2014-11-061-8/+6
| | | | | | | | | | | | Refactor the toolchain-external Config.in file to use the BR2_ARM_CPU_ARM*. All of the changes are purely mechanical, except for the Arago ARMv5 toolchain: it had a 'depends on BR2_GCC_TARGET_ARCH != "armv5t"', but armv5t was not a possible value for BR2_GCC_TARGET_ARCH. Since the toolchain is ARMv5TE, the only ARM architectures we need to exclude are ARMv4 and ARMv4T. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* toolchain: external 3.17 headers typo fixKaroly Kasza2014-10-091-1/+1
| | | | | | | | | | Commit 2d312b7b61c98716535513a2743a85d4d7e8a084 had a typo "." instead of "_" in BR2_TOOLCHAIN_HEADERS_AT_LEAST_3.17. This made selecting 3.17 as custom external headers version impossible. Signed-off-by: Karoly Kasza <kaszak@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* .mk files: bulk aligment and whitespace cleanup of assignmentsThomas De Schampheleire2014-10-071-26/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The Buildroot coding style defines one space around make assignments and does not align the assignment symbols. This patch does a bulk fix of offending packages. The package infrastructures (or more in general assignments to calculated variable names, like $(2)_FOO) are not touched. Alignment of line continuation characters (\) is kept as-is. The sed command used to do this replacement is: find * -name "*.mk" | xargs sed -i \ -e 's#^\([A-Z0-9a-z_]\+\)\s*\([?:+]\?=\)\s*$#\1 \2#' -e 's#^\([A-Z0-9a-z_]\+\)\s*\([?:+]\?=\)\s*\([^\\]\+\)$#\1 \2 \3#' -e 's#^\([A-Z0-9a-z_]\+\)\s*\([?:+]\?=\)\s*\([^\\ \t]\+\s*\\\)\s*$#\1 \2 \3#' -e 's#^\([A-Z0-9a-z_]\+\)\s*\([?:+]\?=\)\(\s*\\\)#\1 \2\3#' Brief explanation of this command: ^\([A-Z0-9a-z_]\+\) a regular variable at the beginning of the line \([?:+]\?=\) any assignment character =, :=, ?=, += \([^\\]\+\) any string not containing a line continuation \([^\\ \t]\+\s*\\\) string, optional whitespace, followed by a line continuation character \(\s*\\\) optional whitespace, followed by a line continuation character Hence, the first subexpression handles empty assignments, the second handles regular assignments, the third handles regular assignments with line continuation, and the fourth empty assignments with line continuation. This expression was tested on following test text: (initial tab not included) FOO = spaces before FOO = spaces before and after FOO = tab before FOO = tab and spaces before FOO = tab after FOO = tab and spaces after FOO = spaces and tab after FOO = \ FOO = bar \ FOO = bar space \ FOO = \ GENIMAGE_DEPENDENCIES = host-pkgconf libconfuse FOO += spaces before FOO ?= spaces before and after FOO := FOO = FOO = FOO = FOO = $(MAKE1) CROSS_COMPILE=$(TARGET_CROSS) -C AT91BOOTSTRAP3_DEFCONFIG = \ AXEL_DISABLE_I18N=--i18n=0 After this bulk change, following manual fixups were done: - fix line continuation alignment in cegui06 and spice (the sed expression leaves the number of whitespace between the value and line continuation character intact, but the whitespace before that could have changed, causing misalignment. - qt5base was reverted, as this package uses extensive alignment which actually makes the code more readable. Finally, the end result was manually reviewed. Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com> Cc: Yann E. Morin <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* toolchain: add 3.17 choice for headersGustavo Zacarias2014-10-061-0/+4
| | | | | Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* toolchain-external: bump ARM, ARMeb and AArch64 Linaro toolchains to 14.08Thomas Petazzoni2014-09-162-13/+13
| | | | | Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* toolchain-external: remove CodeSourcery ARM 2012.03, add 2014.05Thomas Petazzoni2014-09-162-23/+23
| | | | | Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* toolchain-external: add CodeSourcery AArch64 toolchainThomas Petazzoni2014-09-162-0/+19
| | | | | Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* toolchain-external: Add CodeSourcery Nios-II 2014.05Ezequiel García2014-09-012-0/+19
| | | | | | | | | | | | This new toolchain release fixes a number of issues found with the previous one. In particular, the issues with fallocate64, prlimit64 and the ill-installed linux headers seem to be fixed now. Therefore, there's not need to sanitize the headers for this toolchain and some packages should now build fine (e.g. fio). Signed-off-by: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* toolchain: add 3.16 choice for headersGustavo Zacarias2014-08-041-0/+4
| | | | | Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain-external: remove experimental Blackfin toolchainThomas Petazzoni2014-07-102-30/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The 2014R1 toolchain is provided in two flavours by Analog Devices: one based on gcc 4.3.x, which is considered stable, and one based on gcc 4.5.x, considered experimental. In commit 5a65b8e185fab38824da5e9b7b5b9e781e31d368 ("toolchain-external: add ADI Blackfin 2014R1 toolchain, remove 2012R1") both variants were added. However, after some testing in the autobuilders, and discussion with the Analog Devices folks, it turns out that the experimental version of the toolchain is too experimental. It causes numerous build failures, and the Analog Devices folks clearly say that it's an early release and that they expect quite a few problems to show up. Therefore, this commit removes the experimental flavor and keeps only the stable variant. Note that the removal/renaming of the Config.in options is not a problem, since those options were added after the 2014.05 release. Fixes: http://autobuild.buildroot.org/results/2a9/2a9d9c332a206fdb46bc8ba022c74d23082a6312/ http://autobuild.buildroot.org/results/e1c/e1ce0c1cdd0139208dddaa8f2441ab0e3ab2385e/ http://autobuild.buildroot.org/results/993/993aca3f4719afaa4b37524f9136fb8cdc53a066/ and more. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* toolchain-external: add CodeSourcery PowerPC 2012.03Thomas Petazzoni2014-06-142-0/+22
| | | | | | | However, this toolchain is only usable for e500v2 with the SPE ABI. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Tested-by: Ryan Barnett <ryan.barnett@rockwellcollins.com>
* toolchain-external: bump musl external toolchains to 1.1.1Thomas Petazzoni2014-06-132-15/+16
| | | | | | | | | | And while we're at it, factorize the definition of the musl version, since it's common to the definition of the tarball names for the various supported architectures. [Peter: Adjust Config.in info to match new version] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* toolchain-external: add ADI Blackfin 2014R1 toolchain, remove 2012R1Thomas Petazzoni2014-06-092-15/+39
| | | | | | | | | This commit adds support for two ADI Blackfin toolchains: the 'stable' 2014R1 based on gcc 4.3, and the 'experimental' 2014R1 based on gcc 4.5. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
* toolchain-external: add CodeSourcery MIPS 2014.05, remove 2012.09Thomas Petazzoni2014-06-092-23/+23
| | | | | Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
* toolchain-external: bump Linaro AArch64 toolchain to 2014.05Thomas Petazzoni2014-06-092-3/+3
| | | | | Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
* toolchain-external: bump Linaro ARMeb toolchain to 2014.04Thomas Petazzoni2014-06-092-5/+5
| | | | | | | | For some reason, there is no ARMeb toolchain available in the 2014.05 Linaro release. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
* toolchain-external: bump Linaro ARM to 2014.05Thomas Petazzoni2014-06-092-6/+5
| | | | | | | | The major changes are: switch to gcc 4.9 instead of 4.8, and switch to glibc 2.19 instead of glibc 2.18. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
* toolchain-external: support only one Linaro AArch64 toolchain at a timeThomas Petazzoni2014-06-092-41/+3
| | | | | | | | | Linaro toolchains are released so frequently (every month) that it doesn't make much sense to support 3 consecutive versions. So, like we do for ARM big-endian, let's support only one version at a time. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
* toolchain-external: support only one Linaro ARM toolchain at a timeThomas Petazzoni2014-06-092-58/+4
| | | | | | | | | Linaro toolchains are released so frequently (every month) that it doesn't make much sense to support 3 consecutive versions. So, like we do for ARM big-endian, let's support only one version at a time. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
* toolchain-external: do not pass TOOLCHAIN_EXTERNAL_CFLAGS for kernel headers ↵Thomas Petazzoni2014-06-091-1/+1
| | | | | | | | | | | | | | | | | | | check When getting the sysroot used for the kernel headers version check, passing TOOLCHAIN_EXTERNAL_CFLAGS causes a problem when used with multilib toolchains, where only the main sysroot has the header files, and the other sysroots only have the libraries. Since the kernel headers version used is normally the same for all sysroots, this commit solves this problem by removing the TOOLCHAIN_EXTERNAL_CFLAGS argument when calling toolchain_find_sysroot, so that it returns the main sysroot, in which <linux/version.h> can be found for the kernel headers version check. Cc: Yann E. MORIN <yann.morin.1998@free.fr> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
* toolchain-external: apply kernel headers check to non-custom toolchainsThomas Petazzoni2014-06-091-5/+3
| | | | | | | | | | | | | | | | | | | | | Since the introduction of the kernel headers Config.in options, the external toolchain logic had a check for custom external toolchains to verify that the kernel headers version entered by the user matches the one of the toolchain. However, this check was not made for non-custom external toolchains (i.e the built-in profiles, such as Linaro, CodeSourcery and al.), making the assumption that the Buildroot developers will do the right selection. However, it is quite nice when bumping external toolchains to have this automatic kernel headers version check, to ensure we select the appropriate kernel headers version. Therefore, this commit makes the kernel headers version check applicable to non-custom external toolchains. Cc: Yann E. MORIN <yann.morin.1998@free.fr> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
* toolchain: add 3.15 choice for headersGustavo Zacarias2014-06-091-0/+4
| | | | | | | | [Thomas: fix BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_15 to select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_14 and not itself.] Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain-external: restrict Musl external toolchain to Microblaze BEThomas Petazzoni2014-05-302-3/+3
| | | | | | | | | | | | | | | | As reported by William Welch <bvwelch@gmail.com>, the Musl external toolchain provided by the musl-cross project is only Microblaze big-endian. In fact, Musl seems to only support the big endian variant of the Microblaze architecture, with the microblaze-* tuple. This commit makes sure the Musl pre-built external toolchain provided by musl-cross can only be selected for a big-endian Microblaze configuration. Reported-by: William Welch <bvwelch@gmail.com> Cc: William Welch <bvwelch@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* toolchain-external: fix Linaro 2014.02 symlinkThomas Petazzoni2014-05-211-0/+1
| | | | | | | | | | | | | | | | | In commit cd32da8f7931af61737df293d1f8bcedaab8648e ("toolchain-external: add Linaro ARM big endian toolchain") a mistake was made, probably due to a rebase conflict that was incorrectly solved: the call to the post install staging hook that creates the necessary symbolic links for a root filesystem based on Linaro 2014.02 to work was removed. This commit reinstates this call, which should fix the problem observed by Maxime Hadjinlian while using Linaro 2014.02. Reported-by: Maxime Hadjinlian <maxime.hadjinlian@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Tested-by: Maxime Hadjinlian <maxime.hadjinlian@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* toolchain-external: Sourcery CodeBench ARM 2013.05 affected by PR58595Thomas Petazzoni2014-05-121-0/+1
| | | | | | | | | Fixes: http://autobuild.buildroot.org/results/6b3/6b342c2d101348e4d39285f45481e2aafa3d8b3f/ Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* toolchain-external: add publicly available musl toolchainsThomas Petazzoni2014-05-062-0/+57
| | | | | | | | | This commit adds ten toolchains based on the musl C library that are publicly available from the musl-cross project. [Peter: fix ppc prefix, only for classic ABI] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* toolchain: generate a gdbinit fileThomas Petazzoni2014-05-051-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | This commit slightly improves the external toolchain backend, and the gdb build logic to create a file named $(STAGING_DIR)/usr/share/buildroot/gdbinit which can be used as a gdbinit file using gdb -x option. This allows gdb to automatically use the proper sysroot to find libraries. The initial insight for this patch comes from the report of Oded Hanson <OHanson@xsightsys.com>, who found an issue with the Eclipse Buildroot plugin, which was setting a solib-path in gdb, but not a sysroot. Setting a solib-path was enough to find shared libraries, but not the dynamic linker. And since Eclipse doesn't allow to set the sysroot in any other way than giving a gdbinit file, it makes sense to have Buildroot generate a gdbinit file (which can be used in other situations than Eclipse). To achieve this, this commit introduces a gen_gdbinit_file helper in toolchain/helpers.mk, and uses it for the internal toolchain and external toolchain backends. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> [ThomasDS: minor updates in commit message] Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* toolchain-external: add Linaro ARM big endian toolchainThomas Petazzoni2014-04-142-1/+36
| | | | | | | | | | Linaro has started to release ARM big endian toolchains, so we integrate this toolchain in the external toolchain logic of Buildroot. Since ARM big endian is probably going to be a lot more uncommon than ARM little endian, we will only support one version at a time of this toolchain. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain-external: bump Linaro AArch64 toolchainsThomas Petazzoni2014-04-142-18/+18
| | | | Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain-external: remove useless info in help text of Linaro ARM toolchainsThomas Petazzoni2014-04-141-6/+0
| | | | | | | | | | | The information "To use this toolchain, you must disable soft float usage." which was visible in the help text of Linaro toolchains is no longer useful, since those toolchains are only visible when the ARM EABIhf ABI is selected, which by design is not compatible with soft-float. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
* toolchain-external: bump Linaro ARM toolchainsThomas Petazzoni2014-04-142-24/+24
| | | | Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain-external: Introduce kernel headers sanitizationEzequiel García2014-04-141-0/+13
| | | | | | | | | | | | | | | | The Nios-II Sourcery external toolchain (the only Nios-II we currently support) exports broken kernel headers. In particular, these kernels should be exported using the "headers_install" rule which applies a set of fixes on the kernel headers so they are suitable for userspace usage. In order to fix this, add a post-install hook to perform the header fixes ourselves. The result is equivalent to apply the "headers_install" rule. Fixes: http://autobuild.buildroot.net/results/c32/c32ad4bac5f651502e551f7733f702afaa0e742a/ Signed-off-by: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain: add option to declare toolchains affected by gcc PR 58595Thomas Petazzoni2014-04-141-0/+1
| | | | Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* ext-toolchain-wrapper: fix typoBaruch Siach2014-04-101-1/+1
| | | | | | Signed-off-by: Baruch Siach <baruch@tkos.co.il> Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* support/check-kernel-headers: fix old custom toolchains without -print-sysrootYann E. MORIN2014-04-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Old toolchains, with old gcc that do not support -print-sysroot, break the kernel-headers version check script: it fails to find the sysroot of the toolchain, and thus ends up including the host's linux/version.h. Most of the time, this will break early, since the host's kernel headers will not match the toolchain settings. But it can happen that the check is succesful, although the configuration of the toolchain is wrong: - the custom toolchain has kernel headers vX.Y - the user selected vX.Z (Z!=Y) - the host has headers vX.Y In this case, the check passes OK, but the build of some packages later on will break (which is exactly what those _AT_LEAST_XXX options were added to avoid). Fix that by passing the sysroot to the check script, instead of the cross compiler. We get the sysroot as thus: - for custom toolchains, we use the macro toolchain_find_sysroot. We can do that, because we already have a complete sysroot with libc.a at that time. - for internal toolchain using a custom kernel headers version, we just use $(STAGING_DIR). We can't use the macro as for custom toolchains above, because at the time we install the kernel headers, we do not yet have a complete sysroot with a libc.a. But we can just use $(STAGING_DIR), since we're only interested in the kernel headers. For all other types of toolchains, we already have the _AT_LEAST_XXX options properly set, so we need not add a check in this case. Fixes: http://autobuild.buildroot.net/results/f33/f331a6eff0b0b93c73af52db3a6b43e4e598577e/ http://autobuild.buildroot.net/results/a57/a5797c025bec50c10efdcff74945aab4021d05e4/ [...] [Thanks to Thomas for pointing out the toolchain_find_sysroot macro!] Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* external toolchain: add 3.14 choice for kernel headersSamuel Martin2014-04-071-0/+4
| | | | | | Signed-off-by: Samuel Martin <s.martin49@gmail.com> Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* liburcu: disable build with gcc-4.8.x on ARMSamuel Martin2014-03-231-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Because of a gcc bug [1], liburcu checks for compiler version [2] and stops the build prematurely if gcc-4.8.[0-2] is detected for ARM. However a bug fix exists [3] and may be backported by ARM toolchain providers; that's what is done in Buildroot [4] or Linaro [5]. So, this change: - add a patch in liburcu to allow build with ARM gcc-4.8.2; - adds a new hidden symbol to reflect the toolchain status with regard to this bug [1]; - and controls liburcu visibility. However, a limitation of this is when the user is using a custom toolchain; that's why the bug details have been added in the liburcu help message. [1] http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58854 [2] http://git.lttng.org/?p=userspace-rcu.git;a=commitdiff;h=4b79310 [3] http://gcc.gnu.org/viewcvs/gcc?view=revision&revision=204665 [4] http://git.buildroot.net/buildroot/commit/?id=c443c2be1768ebbdcb76c55d0a08fd7c983488c8 [5] http://bazaar.launchpad.net/~linaro-toolchain-dev/gcc-linaro/4.8/revision/122147 [Peter: hide normal toolchain comment if bug, add comment explaining issue if bug] Signed-off-by: Samuel Martin <s.martin49@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* toolchain-external: Linaro AArch64 toolchains need a symlink, like ARM onesThomas Petazzoni2014-03-211-0/+8
| | | | | | | | | | | | Like ARM ones, the Linaro AArch64 toolchains expect libraries in /lib/aarch64-linux-gnu and /usr/lib/aarch64-linux-gnu, but Buildroot always installs them in /lib and /usr/lib. Therefore, this commit adds the appropriate symbolic links, just like we're already doing for Linaro ARM toolchains. Reported-by: Kevin Hilman <khilman@linaro.org> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* toolchain-external: fix musl external support on x86Thomas Petazzoni2014-03-061-1/+6
| | | | | | | | | | | | | On x86, the symbolic link ld-musl-<ARCH>.so.1 to libc.so must be ld-musl-i386.so.1 in all cases, but $(ARCH) in Buildroot might be i386, i486, i586, i686, etc. depending on the specific x86 variants being selected. This commit fixes that by creating a MUSL_ARCH variable set to i386 on x86, and to $(ARCH) on other architectures. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
* toolchain/wrapper: rename BR_DEBUG_WRAPPERYann E. MORIN2014-03-051-1/+1
| | | | | | | | | | | The user-facing variables should be prefixed with BR2_, not BR_. Also quote the variable in the manual. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain/external: check kernel headers version for custom toolchainYann E. MORIN2014-03-011-1/+6
| | | | | | | | | | | | | | | | | | Ensure the kernel headers version used in the custom external toolchain, or the manually-specified kernel headers version, matches exactly the one selected by the user. We do not care about the patch-level, since headers are not supposed to change between patchlevels. This applies only to kernels >= 3.0, but those are actually the ones we do care about; we treat all 2.6.x kernels as being a single version, since we do not support any 2.6 kernels for packages with kernel-dependant features. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: Arnout Vandecappelle <arnout@mind.be> Cc: Thomas De Schampheleire <patrickdepinguin@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain/external/custom: add choice to select 'AT_LEAST_XXX' header versionYann E. MORIN2014-03-011-0/+78
| | | | | | | | | | | | | | | | | Select the appropriate BR2_TOOLCHAIN_HEADERS_AT_LEAST_XXX options for the external, custom toolchain backend. We try to be conservative here, and default to kernel headers 2.6.x. [Thomas: remove duplicated depends on BR2_TOOLCHAIN_EXTERNAL_CUSTOM, since the choice is already inside a if BR2_TOOLCHAIN_EXTERNAL_CUSTOM ... endif block.] Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: Arnout Vandecappelle <arnout@mind.be> Cc: Thomas De Schampheleire <patrickdepinguin@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain/external/predefined: add choice to select 'AT_LEAST_XXX' header ↵Yann E. MORIN2014-03-011-0/+32
| | | | | | | | | | | | | | | | version Select the appropriate BR2_TOOLCHAIN_HEADERS_AT_LEAST_XXX options for the external, pre-defined toolchains. Also annotate those toolchain with older-than-3.0 headers. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: Arnout Vandecappelle <arnout@mind.be> Cc: Thomas De Schampheleire <patrickdepinguin@gmail.com> Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain: introduce a toolchain knob for NPTLThomas Petazzoni2014-02-221-1/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | As our architecture support expands to a number of architectures that do not implement NPTL threading, and the number of packages that depend on NPTL specific features, it has become necessary to be able to know whether the toolchain has NPTL support or not. This commit adds a new BR2_TOOLCHAIN_HAS_THREADS_NPTL hidden Config.in option that allows packages to know whether NPTL is available or not. This hidden option is: * Automatically enabled when glibc/eglibc or musl toolchains are used, either internal or external. * Automatically enabled when an internal uClibc toolchain with NPTL support is configured. It is left disabled otherwise for internal uClibc toolchains. * Configured according to a visible Config.in option for custom external uClibc toolchains. [Peter: factor _EXTERNAL_HAS_THREADS in single if as suggested by Arnout] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* package: add toolchain dependency to every target packageFabio Porcedda2014-02-141-0/+2
| | | | | | | | | | | | | | | | | | | | | This commit makes the dependency from the target toolchain explicit. This way we can buid from command line a package that use inner-generic-package right after the configuration phase, example: make clean <package-name> Also remove TARGETS_ALL because the only purpose was to add toolchain dependency so it's superseded by this commit. To prevent circular dependency add the new variable <pkgname>_ADD_TOOLCHAIN_DEPENDENCY to avoid adding the toolchain dependency for toolchain packages. This is also a step forward supporting top-level parallel make. Signed-off-by: Fabio Porcedda <fabio.porcedda@gmail.com> Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* arch: add support for "jaguar" AMD CPU optimisationsAdrien Béraud2014-01-151-0/+3
| | | | | | | | | | | | | AMD Jaguar ( https://en.wikipedia.org/wiki/Jaguar_%28microarchitecture%29 ) is suddenly a popular architecture since it is used in the PS4 and the XBox One. Many embedded systems are also likely to use it in the next years. This patch adds support for GCC architecture-specific optimisations and tuning for these CPUs. These optimizations are available with GCC 4.8+. Signed-off-by: Adrien Beraud <adrien.beraud@savoirfairelinux.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* toolchain-external: Fix ld.so naming with uClibc and EABIhf.Stefan Sørensen2014-01-151-1/+1
| | | | | | | | | Currently ld-linux-armhf.so.* is added to external libs when using an EABIhf toolchain, but this naming is not used by uClibc. Fix by adding a check for glibc. Signed-off-by: Stefan Sørensen <stefan.sorensen@spectralink.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
OpenPOWER on IntegriCloud