aboutsummaryrefslogtreecommitdiff
path: root/toolchain
Commit message (Collapse)AuthorAgeFilesLines
* arch: tidy up mmu configGravatar Guido Martínez2015-06-091-2/+2
| | | | | | | | | | | | Instead of blacklisting which architectures support MMUs (mandatorily or optionally), introduce two Kconfig options that are selected by each architecture in each case. This simplifies the logic in BR2_USE_MMU. Signed-off-by: Guido Martínez <guido@vanguardiasur.com.ar> Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain-external: add CodeSourcery MIPS 2015.05, remove 2013.11Gravatar Vicente Olivert Riera2015-06-043-21/+21
| | | | | | | | | | | | - Add CodeSourcery MIPS 2015.05 toolchain - Remove CodeSourcery MIPS 2013.11 toolchain - Update the hash file Toolchain datasheet: https://sourcery.mentor.com/GNUToolchain/release3068?@template=datasheet Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* toolchain/external: better report RPC error for custom toolchainsGravatar Yann E. MORIN2015-05-051-2/+2
| | | | | | | | | | | | | | | | | | Currently, we instruct users to enable/disable BR2_TOOLCHAIN_HAS_NATIVE_RPC but that is a blind option. The only option users can set/unset is BR2_TOOLCHAIN_EXTERNAL_INET_RPC. Use that in the error message. Notes: the only way for this message to appear is for a custom external toolchain, either downloaded or pre-installed, so even though we check the validity of the toolchain with BR2_TOOLCHAIN_HAS_NATIVE_RPC, we do report on BR2_TOOLCHAIN_EXTERNAL_INET_RPC. 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: mark musl based toolchains as experimentalGravatar Peter Korsgaard2015-05-041-2/+2
| | | | | | | Like we do for the internal musl backend. We still see a large number of build failures with musl, so warn users about it. Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* sh4: fix toolchain creationGravatar Waldemar Brodkorb2015-05-031-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | The Linux kernel does force compile with -m4-nofpu, which is only available when building a multilib toolchain. The interesting part here is, that buildroot use --disable-multilib for gcc configure, but enables --with-multilib-list=m4,m4-nofpu in the default configuration for Qemu targeting r2d emulation. This results in a toolchain, which can be used for the kernel and for userland without creating a multilib toolchain with different kinds of libgcc version. In the multilib case there would be subdirectories created (!m4 and m4-nofpu). As buildroot uses a short version of toolchain creation, a multilib enabled gcc build fails when creating libgcc. So the best solution is to just keep multilib disabled, but always add --with-multilib-list when sh4/sh4eb/sh4a/sh4aeb is choosen. Tested with sh4/sh4a toolchain build and qemu defconfig with gcc 4.8.x/4.9.x (with and without C++ enabled), uClibc and glibc. Disable sh4a/sh4aeb for uClibc, as it does not implemented, yet. Signed-off-by: Waldemar Brodkorb <wbx@openadk.org> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Tested-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> (ARM and SH4 uClibc toolchain builds)
* toolchain-external: remove non-existent mips-sf musl toolchainsGravatar Arnout Vandecappelle2015-05-011-8/+0
| | | | | | | | | | Since 1.1.6, the mips softfloat toolchains are merged into the mips toolchain using multilib. Our external toolchain infrastructure copies the correct version to the target depending on the BR2_SOFT_FLOAT option. Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* toolchain-external: add hashes for musl toolchainsGravatar Arnout Vandecappelle2015-05-011-0/+14
| | | | | | | | Add hashes for all musl toolchains, including the ones that we currently don't support (arm hf, sh4, x86_64-x32). Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* toolchain-external: fix rebuild/reinstall for Linaro toolchainsGravatar Thomas Petazzoni2015-05-011-6/+6
| | | | | | | | | | | | | | | | | | For Linaro toolchains, a special post install staging hook is used to create two symlinks needed for the dynamic loader to find the libraries. However, the way the link is created prevents a 'make toolchain-external-reinstall' from succeeding, because the symlink already exists and points to a directory: ln -sf . /home/thomas/projets/outputs/training/target/lib/arm-linux-gnueabihf ln: '/home/thomas/projets/outputs/training/target/lib/arm-linux-gnueabihf/.': cannot overwrite directory This commit adjust the hook to pass the '-n' option so that the link name is treated as a normal file if it is a symbolic link to a directory. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
* toolchain-external: mark Synopsys toolchain as brokenGravatar Thomas Petazzoni2015-05-011-0/+4
| | | | | | | | | | | | | | This uClibc toolchain does not provide an appropriate uClibc configuration for Buildroot: missing IPv6, missing nsl stub, missing program invocation, etc. Therefore, we mark it as broken, waiting for a new upstream release of a new toolchain. We keep around the toolchain-external Synopsys code anyway, since it will most likely be identical for the new toolchain version. However, we remove all the quirks that were introduced to start work around issues related to this toolchain. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* 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>