aboutsummaryrefslogtreecommitdiff
path: root/toolchain
Commit message (Collapse)AuthorAgeFilesLines
* toolchain/external: ignore missing hash for custom downloaded toolchainGravatar Yann E. MORIN2015-04-251-0/+2
| | | | | | | | | | | | | | | We will *always* be missing a hash file for custom external toolchains that are downloaded. So, just ignore that failure. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: Gustavo Zacarias <gustavo@zacarias.com.ar> Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Acked-by: Gustavo Zacarias <gustavo@zacarias.com.ar> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain-external: update musl-cross toolchain to 1.1.6Gravatar Will Wagner2015-04-232-4/+4
| | | | | | | | | | The 1.1.6 version of musl-cross fixes the two issues that had been preventing versions after 1.1.1 being used by buildroot, namely: - sysroot is enabled again - kernel headers are included again Signed-off-by: Will Wagner <will_wagner@carallon.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain: drop BR2_INET_IPV6Gravatar Gustavo Zacarias2015-04-221-4/+0
| | | | | | | It's no longer used so farewell. Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain: make IPv6 mandatory for external toolchainsGravatar Gustavo Zacarias2015-04-224-14/+2
| | | | | | | | | | | | Remove BR2_INET_IPV6 select for predefined external toolchains. Remove the (non)IPv6 option prompt since it's now mandatory. And force the toolchain check now that internal uclibc is always built with IPv6 support and external non-IPv6 toolchains are disallowed. Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain-external: remove CS sh2 toolchainsGravatar Gustavo Zacarias2015-04-221-38/+0
| | | | | | | | | | | Normally we'd deprecate them, but: 1) They don't support IPv6 and it's being removed so it makes no sense. 2) They're based on uClibc 0.9.30-ish which is very old and surely has package build breakage all over it. Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain: fix installing gconv libs with multi-arch toolchainGravatar Yann E. MORIN2015-04-221-8/+18
| | | | | | | | | | | | | | | | | | | For a multi-arch toolchain, gconv modules are in a sub-directory named after the machine gcc targets. This is the case, for example, for the Linaro ARM 2014.09 toolchain, which has the gconv modules in (relative to the sysroot): /usr/lib/arm-linux-gnueabihf/gconv while the Sourcery CodeBench ARM 2014.05 (non-multi-arch) has them in: /usr/lib/gconv So, to catter for both cases, search both paths. We want to favour the machine-specific gconv modules over potentially existing "generic" ones, so we first search that (if it exists) and fallback to looking in the generic location. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain-external: install libatomicGravatar Gustavo Zacarias2015-04-191-1/+1
| | | | | | | | | It's required in some 32-bit architectures for the extended (64-bit) atomic operations, like __sync_add_and_fetch_8. These arches are at least: i386, mips & mipsel. Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain: add 4.0.x choice for headersGravatar Gustavo Zacarias2015-04-132-0/+9
| | | | | Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain/external: do not accept distro-class toolchainsGravatar Yann E. MORIN2015-04-041-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | Distro toolchains, i.ie. toolchains coing with distributions, will almost invariably be unsuitable for use with Buildroot: - they are mostly non-relocatable; - their sysroot is tainted with a lot of extra libraries. Especially, the toolchains coming with Ubuntu (really, all the Debian familly of distros) are configured with --sysroot=/ which makes them non-relocatable, and they already contain quite some libraries that conflict (in any combination of version, API or ABI) with what Buildroot wants to build (i.e. extra libraries, some not even present in Buildroot...) but also their mere preence when Buildroot does not expect them to be already built (so that a package would enable features when it should not). So, try to detect those toolchains and black-list them; inform the user that the toolchain is unusable for the reasons mentioned above. 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> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain-common: drop BR2_LARGEFILEGravatar Gustavo Zacarias2015-04-011-4/+0
| | | | | | | | It's now unused so remove it. Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain: remove LARGEFILE selectsGravatar Gustavo Zacarias2015-04-012-16/+0
| | | | | | | | There's no need for toolchains or the user to declare largefile support since it's now mandatory. Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain-common: default to Y for LARGEFILEGravatar Gustavo Zacarias2015-04-011-0/+1
| | | | | | | | | This will allow us to remove largefile handling in the tree without breaking things while doing so. Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain/helpers: make LFS mandatory for uclibc toolchainsGravatar Gustavo Zacarias2015-04-011-1/+1
| | | | | | | | | | As discussed on the mailing list drop the non-largefile option for toolchains. The size delta is minimal and it just complicates package dependencies. Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain/helpers: add check for mandatory uClibc optionsGravatar Gustavo Zacarias2015-04-011-7/+17
| | | | | | | | | | | | | | | | | | | | | | | | We currently only check that the Buildroot configuration matches what is available in the toolchain. Since we're going to remove the check for LFS and make it a mandatory feature, we will lose the corresponding buildroot option, so we won't be able to use check_uclibc_feature as-is. Introduce a magic value passed as the buildroot option name to recognise checks for mandatory uclibc options that do not have a corresponding option in buildroot. If the buildroot option name is empty then the check is against a mandatory uclibc option. If a mandatory uclibc option is missing we reject the toolchain as being unusable by buildroot. [Thomas: minor tweaks in comment, remove space instead of tab.] Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain: enable musl for shGravatar Lionel Orry2015-03-251-1/+1
| | | | | | | | | The SuperH architecture is supported by the musl libc since some time now, so let's enable it. Tested via qemu_sh4_r2d_defconfig. Signed-off-by: Lionel Orry <lionel.orry@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain: enable musl for aarch64Gravatar Gustavo Zacarias2015-03-191-2/+3
| | | | | | | | musl 1.1.7 brings in experimental aarch64 support so enable it. Tested via qemu_aarch64_virt_defconfig. Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* toolchain: disable internal for blackfinGravatar Gustavo Zacarias2015-03-171-0/+1
| | | | | | | | | | The internal toolchain was a "best effort" approach - we strived to make it build properly and all but it's mostly untested. Since it's got issues disable it until it's properly fixed and tested and leave the official ADI toolchain instead. Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain-external: add Synopsys DesignWare tools for ARC coresGravatar Alexey Brodkin2015-03-164-1/+44
| | | | | | | | | | | | | | | | With this change we add pre-built external toolachins for DesignWare ARC cores. All currently existed flavours are supported: * ARC 700 and ARC HS cores * Little- and big-endian configurations These pre-built tools are built with build scripts available here (https://github.com/foss-for-synopsys-dwc-arc-processors/toolchain/tree/arc-2014.12) and correspond to arc-2014.12 release of sources. Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: Anton Kolesov <akolesov@synopsys.com> Cc: "Yann E. MORIN" <yann.morin.1998@free.fr>
* toolchain-external: fix support for non-ADI Blackfin external toolchainsGravatar Thomas Petazzoni2015-03-151-1/+1
| | | | | | | | | | | | | | | | | | The computation of TOOLCHAIN_EXTERNAL_BIN has a special case for Blackfin, where it's set to $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)/$(TOOLCHAIN_EXTERNAL_PREFIX)/bin instead of $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)/bin for other architectures. However, this is actually only true for Analog Devices pre-built toolchains. Other Blackfin external toolchains (such as ones built by Buildroot) do not have this special organization. Therefore, in order to make those non-ADI Blackfin toolchains work, we need to change the condition from BR2_bfin to testing specifically for the ADI toolchains. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* Remove trailing slash from all package site URLsGravatar Luca Ceresoli2015-03-101-30/+30
| | | | | | | | | The recommended form is without the trailing slash. Buildroot will add a slash between FOO_SITE and FOO_SOURCE as appropriate. Reported-by: Arnout Vandecappelle <arnout@mind.be> Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* toolchain: add link-time-optimization supportGravatar Peter Kümmel2015-03-071-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a new option BR2_GCC_ENABLE_LTO that builds gcc and binutils with LTO support. Individual packages still have to enable LTO explicitly by passing '-flto' to GCC, which passes it on to the linker. This option does not add that flag globally. Some packages detect if the compiler supports LTO and enable the flag if it does. To support LTO, ar and ranlib must be called with an argument which triggers the usage of the LTO plugin. Since GCC doesn't call these tools itself, it instead provides wrappers for ar and ranlib that pass the LTO arguments. This way existing Makefiles don't need to be changed for LTO support. However, these wrappers are called <tuple>-gcc-ar which matches the pattern to link to the buildroot wrapper in the external toolchain logic. So the external toolchain logic is updated to provide the correct symlink. [Thomas: - Add a separate BR2_BINUTILS_ENABLE_LTO option to enable LTO support in binutils. This is a blind option, selected by BR2_GCC_ENABLE_LTO. It just avoids having binutils.mk poke directly into gcc Config.in options. - Remove the check on the AVR32 special gcc version, which we don't support anymore. - Adapt the help text of the LTO Config.in option to no longer mention "Since version 4.5", since we only support gcc >= 4.5 in Buildroot anyway. - Fix typo in toolchain-external.mk comment.] Signed-off-by: Peter Kümmel <syntheticpp@gmx.net> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain-external: add CodeSourcery AMD64 2014.05Gravatar Gustavo Zacarias2015-03-043-0/+31
| | | | | | | This toolchain is AMD64-only so restrict it accordingly. Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* arch: add support for AMD steamrollerGravatar Gustavo Zacarias2015-03-041-0/+3
| | | | | | | | Add support for AMD steamroller optimizations, available in gcc 4.8+ as bdver3. Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain/external: remove xilinx microblaze v2/14.3 toolchainsGravatar Gustavo Zacarias2015-03-043-78/+0
| | | | | | | | These have been deprecated since 2014.02 Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain/buildroot: default to glibc where possible/convenientGravatar Gustavo Zacarias2015-03-041-1/+2
| | | | | | | | | | Default to glibc over eglibc where it's possible and/or convenient. Since the eglibc project is basically gone and merged with glibc it doesn't make sense to keep defaulting to it for architectures that aren't uClibc-capable. Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* Merge branch 'next'Gravatar Peter Korsgaard2015-03-025-5/+13
|\ | | | | | | Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
| * toolchain: Enable the internal toolchain for nios2Gravatar Ezequiel García2015-02-192-2/+1
| | | | | | | | | | | | | | For now we can only support glibc. Signed-off-by: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
| * toolchain/external: avr32 is no moreGravatar Yann E. MORIN2015-02-141-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | Slightly reword a comment to no longer mention avr32. This part dealing with sysroot detection will have to be reworked, now that we got rid of avr32: we can now require a fully sysroot-aware toolchain, i.e. at least gcc-4.4. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> CC: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
| * toolchain/buildroot: forget about avr32Gravatar Yann E. MORIN2015-02-141-1/+1
| | | | | | | | | | Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
| * toolchain: add 3.19 choice for headersGravatar Peter Korsgaard2015-02-092-0/+9
| | | | | | | | Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* | toolchain-external: clarify external toolchain descriptionGravatar Baruch Siach2015-02-201-3/+4
|/ | | | | | | | | External toolchain can also have been generated by Buildroot previously, as the list that follows demonstrates. Rephrase the paragraph describing what an external toolchain is as suggested by Thomas Petazzoni, to make it clearer. Signed-off-by: Baruch Siach <baruch@tkos.co.il> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain-external: split target installation from staging installationGravatar Thomas Petazzoni2015-01-101-7/+29
| | | | | | | | | | | Currently, all the installation work of the toolchain-external package is done during the install-staging step. However, in order to be able to properly collect the size added by each package to the target filesystem, we need to make sure that toolchain-external installs its files to $(TARGET_DIR) during the install-target step. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Tested-by: Jérôme Pouiller <jezz@sysmic.org>
* toolchain: add hashes for all remaining external toolchainsGravatar Yann E. MORIN2015-01-071-1/+43
| | | | | | | | | | | | | | | Getting the hashes from upstream is not always possible: - Mentor's Sourcery: seems to require an account - TI's Arago: not able to locate the upstream. - Linaro: only signatures - Misc other toolchains. So, all hashes were locally computed. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: Peter Korsgaard <jacmet@uclibc.org> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain-external: add hashes for Blackfin toolchainsGravatar Thomas Petazzoni2014-12-281-0/+9
| | | | | | | | | | | | | | | | Those toolchains are downloaded from Sourceforge, and are therefore affected by the Sourcefoge download issues. Therefore, this commit adds the hashes for those toolchain tarballs. Fixes: http://autobuild.buildroot.org/results/fa5/fa5e38246dddd661f1d674f3521d21297796bce3/ (and other similar issues) Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain: get rid of -pipe from optimisationsGravatar Yann E. MORIN2014-12-211-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | -pipe is causing some build failures in Linux kernel >= 3.17. Also, nowadays, using -pipe does not gain as much as it used to back in the days: Measurements made with a 3.16.7 Linux kernel: make linux-depends time sh -c 'make linux-build >/dev/null 2>&1' Without -pipe: 716.32user 54.44system 3:42.12elapsed 346%CPU 721.22user 54.47system 3:41.81elapsed 349%CPU 722.44user 54.00system 3:42.13elapsed 349%CPU 721.03user 53.81system 3:41.92elapsed 349%CPU 713.21user 53.63system 3:40.51elapsed 347%CPU 706.67user 52.42system 3:38.40elapsed 347%CPU 714.40user 53.18system 3:40.16elapsed 348%CPU 706.01user 53.09system 3:37.87elapsed 348%CPU 705.98user 53.01system 3:38.03elapsed 348%CPU 714.17user 53.55system 3:39.98elapsed 348%CPU Average: 3:40.29elapsed With -pipe: 720.13user 53.90system 3:41.98elapsed 348%CPU 713.38user 53.69system 3:40.44elapsed 347%CPU 711.60user 52.81system 3:39.06elapsed 348%CPU 708.66user 53.09system 3:38.59elapsed 348%CPU 711.76user 53.00system 3:38.48elapsed 350%CPU 717.85user 53.97system 3:41.77elapsed 348%CPU 716.77user 53.77system 3:40.91elapsed 348%CPU 717.48user 53.65system 3:41.24elapsed 348%CPU 721.44user 55.67system 3:43.45elapsed 347%CPU 724.61user 55.63system 3:43.35elapsed 349%CPU Average: 3:40.93elapsed The delta is well in the measurement noise. Just get rid of it. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Romain Naour <romain.naour@openwide.fr> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* Rename BR2_PREFER_STATIC_LIB to BR2_STATIC_LIBSGravatar Thomas Petazzoni2014-12-113-38/+38
| | | | | | | | | | | | | | | | | | | | | | | Since a while, the semantic of BR2_PREFER_STATIC_LIB has been changed from "prefer static libraries when possible" to "use only static libraries". The former semantic didn't make much sense, since the user had absolutely no control/idea of which package would use static libraries, and which packages would not. Therefore, for quite some time, we have been starting to enforce that BR2_PREFER_STATIC_LIB should really build everything with static libraries. As a consequence, this patch renames BR2_PREFER_STATIC_LIB to BR2_STATIC_LIBS, and adjust the Config.in option accordingly. This also helps preparing the addition of other options to select shared, shared+static or just static. Note that we have verified that this commit can be reproduced by simply doing a global rename of BR2_PREFER_STATIC_LIB to BR2_STATIC_LIBS plus adding BR2_PREFER_STATIC_LIB to Config.in.legacy. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
* toolchain-external: instrument wrapper to warn about unsafe pathsGravatar Thomas Petazzoni2014-12-111-0/+52
| | | | | | | | | | | | | | | | | | | | | | | | | The CodeSourcery toolchains have a very interesting feature: they warn the user when an unsafe header or library path is used, i.e a path that will lead host headers or libraries to leak into the build. This commit adds a similar functionality into our external toolchain wrapper, so that it can be used with all external toolchains, and can also be tuned as needed. By default, the external toolchain wrapper now gives warnings such as: arm-linux-gcc: WARNING: unsafe header/library path used in cross-compilation: '-I /usr/foo' arm-linux-gcc: WARNING: unsafe header/library path used in cross-compilation: '-L /usr/bleh' but the compilation continues successfully. One can then easily grep in his build log to search for occurences of this message. Optionally, if BR_COMPILER_PARANOID_UNSAFE_PATH is defined in the environment to a non empty value, the external wrapper will instead error out and abort the compilation. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Reviewed-by: Romain Naour <romain.naour@openwide.fr> Tested-by: Romain Naour <romain.naour@openwide.fr>
* toolchain: add 3.18 choice for headersGravatar Gustavo Zacarias2014-12-082-0/+9
| | | | | Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* toolchain-external: add CodeSourcery MIPS 2014.11, remove 2013.05Gravatar Vicente Olivert Riera2014-12-073-41/+21
| | | | | | | | | | | | - Add CodeSourcery MIPS 2014.11 toolchain - Remove CodeSourcery MIPS 2013.05 toolchain - Update the hash file Toolchain datasheet: https://sourcery.mentor.com/GNUToolchain/release2935?@template=datasheet Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain-external: fix the help message for CodeSourcery MIPSGravatar Vicente Olivert Riera2014-12-072-115/+190
| | | | | | | | - Fix the help message for CodeSourcery MIPS toolchains - Add a hash file Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain/external: fix building the wrapper on MIPSGravatar Yann 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: do not allow locale generation when locale support is not availableGravatar Thomas Petazzoni2014-11-211-1/+1
| | | | | | | | | When the C library being used is uClibc, the locale support can be disabled. In this case, it does not make sense to show the "Generate locales" option. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* toolchain: do not allow BR2_GENERATE_LOCALE with muslGravatar Thomas Petazzoni2014-11-211-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | Generating locales is possible in two situations: - With the internal toolchain backend, when the uClibc library is used. With uClibc, locales are generated at build time of the C library, so with uClibc it's only possible with the internal toolchain backend. - With either the internal or external toolchain backend when the glibc library is used. With glibc, locales can be generated afterwards, using the host-localedef utility. Until we had the musl C library supported in the internal toolchain backend, the condition: BR2_TOOLCHAIN_BUILDROOT || BR2_TOOLCHAIN_USES_GLIBC was correct to capture the above two situations. Now that we have musl support in the internal toolchain backend, then BR2_TOOLCHAIN_BUILDROOT is incorrect, and we should use BR2_TOOLCHAIN_BUILDROOT_UCLIBC instead. Basic locale support in musl has appeared in musl 1.1.4, but we are not yet capable of generating the locale files for musl. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* toolchain-external: update Linaro toolchainsGravatar Thomas 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 anymoreGravatar Thomas 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* optionsGravatar Thomas 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>
* system/skeleton: make nsswitch install conditionalGravatar Gustavo Zacarias2014-10-251-0/+10
| | | | | | | | | | | | Don't blindly install the /etc/nsswitch.conf file, it's useless for toolchains that aren't (e)glibc-based and misleading. Make the installation conditional on a (e)glibc toolchain. [Thomas: use $(INSTALL) instead of cp.] Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* package: indentation cleanupGravatar Jerzy Grzegorek2014-10-231-2/+2
| | | | | Signed-off-by: Jerzy Grzegorek <jerzy.grzegorek@trzebnica.net> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain: external 3.17 headers typo fixGravatar Karoly 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 assignmentsGravatar Thomas 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>