summaryrefslogtreecommitdiff
path: root/toolchain
AgeCommit message (Collapse)Author
2017-02-09toolchain/toolchain-common.in: fix definition of BR2_TOOLCHAIN_HAS_GCC_BUG_64735Thomas Petazzoni
The rework done on commit accba02a47942b54c01b506512ddccf34d57c357 ("toolchain: add option for toolchains affected by GCC PR libstdc++/64735") by me was wrong. The BR2_TOOLCHAIN_HAS_GCC_BUG_64735 option should be enabled when the bug is present in the toolchain, not the opposite. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-02-09toolchain: add option for toolchains affected by GCC PR libstdc++/64735Jörg Krause
exception_ptr, nested_exception, and future from libstdc++ are not available for architectures not supporting always lock-free atomic ints before GCC 7. Bug report: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64735 Fix available starting from GCC 7 (not yet released): https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=244051 Signed-off-by: Jörg Krause <joerg.krause@embedded.rocks> [Thomas: - directly define the value where BR2_TOOLCHAIN_HAS_GCC_BUG_64735 rather than having additional patches touching affected architectures Config.in files - add a better comment above the Config.in option.] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-02-07reproducible: fix DATE/TIME macros in toolchain-wrapperJérôme Pouiller
The use of the __DATE__ and __TIME__ macros are one of the most common sources of non-reproducible binaries. In order to fix that, gcc 7 supports the SOURCE_DATE_EPOCH variable: https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=e3e8c48c4a494d9da741c1c8ea6c4c0b7c4ff934 This patch take advantage of toolchain-wrapper to provide support of SOURCE_DATE_EPOCH to older gcc versions. Function get_source_date_epoch() come directly from gcc git. This work was sponsored by `BA Robotic Systems'. [Peter: use sizeof for character array sizes, make function static, extend commit message, add upstream gcc commit] Signed-off-by: Jérôme Pouiller <jezz@sysmic.org> Reviewed-by: Samuel Martin <s.martin49@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2017-02-04toolchain-external: Update Synopsys prebuilt toolchain for ARC coresAlexey Brodkin
Sync external prebuilt toolchain with the one we now build in Buildroot, i.e. arc-2016.09. Since that prebuilt toolchain finally has IPv6 enabled it works pretty fine for building packages in Buildroot. Still note: 1) There might be subtle differences between uClibc configuration compared to Buildroot's one. 2) A couple of patches we apply on top of Builroot-built toolchain are obviously missing in the prebuilt version - they will be available in the next release. Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com> Cc: Vlad Zakharov <vzakhar@synopsys.com> Cc: Peter Korsgaard <peter@korsgaard.com> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-02-03uclibc: allow to build aarch64 internal toolchainWaldemar Brodkorb
uClibc-ng from 1.0.22 and up supports aarch64 architecture. Signed-off-by: Waldemar Brodkorb <wbx@openadk.org> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2017-02-03uclibc: enable mips{32,64}r6 supportWaldemar Brodkorb
The config for ISA choice is removed for a long time as the buildsystem does not pass -march=mips* to the compiler anymore. For mips{32,64}r6 support NAN selection is required. Tested with qemu mips32/mips64 defconfigs. A small patch is required. Bug found while testing qemu defconfigs. Signed-off-by: Waldemar Brodkorb <wbx@openadk.org> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2017-02-01toolchain-external: remove stale references to (ARCH_)LIBC_A_LOCATIONThomas De Schampheleire
The variables LIBC_A_LOCATION and ARCH_LIBC_A_LOCATION were killed in commit 646bd86908f7f995cdc2b95e0be381d97600f905 but the corresponding descriptions were never removed. Signed-off-by: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-01-27toolchain-external: bump CodeSourcery AMD64 to 2016.11-19Romain Naour
Signed-off-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-01-25arch: add OpenRISC architecture supportWaldemar Brodkorb
Add support for OpenRISC. See here for more details about OpenRISC http://openrisc.io. All buildroot included upstream binutils versions are supported. Gcc support is not upstream, to be able to enable musl C library support later, we use the branch with musl support. At the moment it is possible to build a musl based toolchain, but bootup in Qemu fails. Gdb is only working to debug bare-metal code, there is no support for gdbserver/gdb on Linux, yet. [Peter: drop ?= for GCC_SOURCE] Signed-off-by: Waldemar Brodkorb <wbx@openadk.org> Tested-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2017-01-16toolchain: bump Codescape MTI MIPS version to 2016.05-06Vicente Olivert Riera
Also... - Fix a typo in Config.in - Take into account the host's architecture to download the x86 or x86_64 version. This makes the IA32 libs dependency in unnecessary. [Peter: fix kernel headers comment as pointed out by Romain] Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com> Reviewed-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2017-01-16toolchain: bump Codescape IMG MIPS version to 2016.05-06Vicente Olivert Riera
Also... - Fix a typo in Config.in - Take into account the host's architecture to download the x86 or x86_64 version. This makes the IA32 libs dependency in unnecessary. [Peter: fix kernel headers comment as pointed out by Romain] Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com> Reviewed-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2016-12-27toolchain-external: bump CodeSourcery NIOSII to 2016.11Romain Naour
Keep BR2_TOOLCHAIN_HAS_BINUTILS_BUG_19405 since it's not fixed in Binutils 2.26. Runtime tested with an experimental version of Qemu 2.7 for Nios2. Signed-off-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2016-12-17toolchain: extend musl workaround for recent kernelsBaruch Siach
Kernels v4.7 and newer[1] require the __USE_MISC macro for libc-compat.h suppressions to be effective. musl does not define this macros, so add an unconditional definition of __USE_MISC to libc-compat.h. In addition, since musl define IFF_LOWER_UP and friends as macros (instead of enums), define __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO to suppress the kernel corresponding definitions to avoid conflict. Fixes (xl2tp): http://autobuild.buildroot.net/results/0b9/0b9384c4beaac85f3a17c3245c8a7418c2e2e296/ http://autobuild.buildroot.net/results/657/657bc5687cf01aee38d32d45ba57fb62b2bd56d0/ http://autobuild.buildroot.net/results/bcd/bcd81618de2f745a19c923c66d787b5182bb54aa/ [1] Since commit f0a3fdca79 (uapi glibc compat: fix compilation when !__USE_MISC in glibc) Signed-off-by: Baruch Siach <baruch@tkos.co.il> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-12-17toolchain-external: remove musl-cross prebuilt toolchainRomain Naour
The upstream link to download musl-cross prebuilt toolchain is dead [1] and there no new download location. Also the last prebuilt toolchain use musl 1.1.12 version which is not uptodate (currently 1.1.15). Remove this support and recommend to use Buildroot toolchain instead. [1] https://googledrive.com/host/0BwnS5DMB0YQ6bDhPZkpOYVFhbk0 Signed-off-by: Romain Naour <romain.naour@gmail.com> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-12-12toolchain: add 4.9.x choice for headersFabio Estevam
Signed-off-by: Fabio Estevam <festevam@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2016-12-11toolchain/wrapper: use the {str, len} tuples for the unsafe pathsYann E. MORIN
In 61cb120 (toolchain/wrapper: extend paranoid check to -isystem), we introduced a {str,len} tuple to check the various arguments pased to gcc, to avoid hard-coding an ever-growing, long list of those args directly in the condition check. Now, we're left with a long list of unsafe paths, somehow hidden within the code, which can use the same mechanism we use for arguments. 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>
2016-12-11toolchain/wrapper: make the {str, len} tuple more generic, add commentsYann E. MORIN
In 61cb120 (toolchain/wrapper: extend paranoid check to -isystem), we introduced a {str,len} tuple to check the various arguments passed to gcc, to avoid hard-coding an ever-growing, long list of those args directly in the condition check. It was made specific to the arguments (the structure member is named 'arg'), but can also be used to store the unsafe paths as well. Also, that piece is almost un-documented. Rename the structure member so that it is more generic, and add a bit of comments to explain the whole of it. 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>
2016-12-06toolchain-external: disallow sourcery codebench ARM toolchain for ARMv8 coresPeter Korsgaard
This toolchain uses GCC 4.8.x, which doesn't support the ARMv8 cores. Signed-off-by: Peter Korsgaard <peter@korsgaard.com> Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2016-12-05toolchain-external-linaro-{arm,armeb}: allow on ARMv8Thomas Petazzoni
The Linaro toolchains are currently only available on ARMv7-A, but can in fact also be used to generate 32 bits code for ARMv8 platforms. This commit therefore adjusts their architecture dependency. Example, a 32 bits ARM build produces a 32 bits busybox binary: $ file output/target/bin/busybox output/target/bin/busybox: setuid ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, for GNU/Linux 2.6.32, BuildID[sha1]=16a7a70eb9cac08759e52a260478b9c287f59238, stripped Which was built for Cortex-A72: $ ./output/host/usr/bin/arm-linux-gnueabihf-readelf -A output/target/bin/busybox Attribute Section: aeabi File Attributes Tag_CPU_name: "Cortex-A72" Tag_CPU_arch: v8 Tag_CPU_arch_profile: Application Tag_ARM_ISA_use: Yes Tag_THUMB_ISA_use: Thumb-2 Tag_FP_arch: FP for ARMv8 Tag_ABI_PCS_wchar_t: 4 Tag_ABI_FP_rounding: Needed Tag_ABI_FP_denormal: Needed Tag_ABI_FP_exceptions: Needed Tag_ABI_FP_number_model: IEEE 754 Tag_ABI_align_needed: 8-byte Tag_ABI_align_preserved: 8-byte, except leaf SP Tag_ABI_enum_size: int Tag_ABI_VFP_args: VFP registers Tag_CPU_unaligned_access: v6 Tag_MPextension_use: Allowed Tag_Virtualization_use: TrustZone and Virtualization Extensions Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-12-02Merge branch 'next'Peter Korsgaard
My local 'next' branch was not uptodate, so the previous merge was missing the most recent changes. Thanks to François Perrad for noticing. Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2016-12-01Merge branch 'next'Peter Korsgaard
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2016-11-30toolchain-external: bump Linaro AArch64 toolchain to 2016.11Romain Naour
Tested with Qemu v2.7.0 and the qemu_aarch64_virt_defconfig Signed-off-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-11-30toolchain-external: bump Linaro ARMeb toolchain to 2016.11Romain Naour
Signed-off-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-11-30toolchain-external: bump Linaro ARM toolchain to 2016.11Romain Naour
Tested with qemu-2.4.1-11.fc23 and the qemu_arm_vexpress_defconfig Signed-off-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-11-25toolchain: kill ADI Blackfin toolchainArnout Vandecappelle
This toolchain has many problems which are fixed in contemporary gcc and uClibc-ng. In addition, several hacks are needed to be able to work with this toolchain. All these hacks are removed as well. Also the package exceptions for this toolchain are removed. The BR2_BFIN_INSTALL_FDPIC_SHARED and BR2_BFIN_INSTALL_FLAT_SHARED options don't get a legacy entry. For the ADI toolchain, there already is a legacy entry, so it doesn't make sense to add it twice. For other external toolchains, these options didn't actually work, because they rely on the specific layout of the ADI toolchain. Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-11-25toolchain-external: support gcc < 4.3Arnout Vandecappelle
We currently support gcc as old as 4.3. However, Buildroot works perfectly well with even older gcc versions (tested with 4.1). So we can add an option BR2_TOOLCHAIN_EXTERNAL_GCC_OLD to support that. The help text of this option is written with plenty of discouragement. We use _OLD and not something like _PRE_4_3, because at some point we will likely remove the 4.3 option and what would then require a name change. We don't set any _AT_LEAST option in this case because it's no use - there is no lower bound on the version in this case. We therefore leave BR2_TOOLCHAIN_GCC_AT_LEAST empty (the implicit default). When it is empty, we don't do a version check at all in check_gcc_version (previously we errored out when it was empty). Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-11-23toolchain-external: remove Arago toolchainsArnout Vandecappelle
The Arago toolchains are no longer maintained and haven't been updated for a long time. With this removal, all the legacy toolchain-external support can be removed as well. Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Reviewed-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-11-23toolchain-external-arc: new packageThomas Petazzoni
This commit adds a new package for the Synopsys external toolchain for the ARC architecture. The legacy implementation is removed. Note that this toolchain is marked as BROKEN, but 2016.09 seems about to be released so maybe it will be unbroken soon. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Reviewed-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-11-23toolchain-external-custom: new packageThomas Petazzoni
This commit adds a new package to support custom external toolchains. The legacy implementation is removed. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Reviewed-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-11-23toolchain-external-musl-cross: new packageThomas Petazzoni
This commit adds a new package for the pre-built Musl external toolchains. The legacy implementation is removed. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Reviewed-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-11-23toolchain-external-codesourcery-x86: new packageThomas Petazzoni
This commit adds a new package for the Sourcery CodeBench external toolchain for the i386/x86_64 architecture. The legacy implementation is removed. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Reviewed-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-11-23toolchain-external-codesourcery-amd64: new packageRomain Naour
This commit adds a new package for the Sourcery CodeBench external toolchain for the AMD-64 architecture. The legacy implementation is removed. Signed-off-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Reviewed-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-11-23toolchain-external-codesourcery-sh: new packageThomas Petazzoni
This commit adds a new package for the Sourcery CodeBench external toolchain for the SuperH 4a architecture. The legacy implementation is removed. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Reviewed-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-11-23toolchain-external-codesourcery-niosII: new packageThomas Petazzoni
This commit adds a new package for the Sourcery CodeBench external toolchain for the nios-II architecture. The legacy implementation is removed. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Reviewed-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-11-23toolchain-external-codescape-mti-mips: new packageThomas Petazzoni
This commit adds a new package for the Codescape MTI external toolchain for the MIPS architecture. The legacy implementation is removed. The Codescape hacks for IMG and MTI are duplicated. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Reviewed-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-11-23toolchain-external-codescape-img-mips: new packageThomas Petazzoni
This commit adds a new package for the Codescape IMG external toolchain for the MIPS architecture. The legacy implementation is removed. The Codescape hacks for IMG and MTI are duplicated. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Reviewed-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-11-23toolchain-external-codesourcery-mips: new packageThomas Petazzoni
This commit adds a new package for the Sourcery CodeBench external toolchain for the MIPS architecture. The legacy implementation is removed. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Reviewed-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-11-23toolchain-external-blackfin-uclinux: new packageThomas Petazzoni
This commit adds a new package for the Analog Devices external toolchain for the Blackfin architecture. The legacy implementation is removed. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Reviewed-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-11-23toolchain-external-linaro-armeb: new packageThomas Petazzoni
This commit adds a new package for the Linaro external toolchain for the ARM Big-endian architecture. The legacy implementation is removed. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Reviewed-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-11-23toolchain-external-codesourcery-arm: Cortex-A12 and Cortex-A17 not supportedArnout Vandecappelle
It's gcc 4.8.3 which doesn't support those cores yet. Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Reviewed-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-11-23toolchain-external-codesourcery-arm: new packageThomas Petazzoni
This commit adds a new package for the Sourcery CodeBench external toolchain for the ARM architecture. The legacy implementation is removed. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Reviewed-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-11-23toolchain-external-linaro-arm: new packageThomas Petazzoni
This commit adds a new package for the Linaro external toolchain for the ARM architecture. The legacy implementation is removed. The comment about availability is duplicated for arm and armeb. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Reviewed-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-11-23toolchain-external-codesourcery-aarch64: new packageThomas Petazzoni
This commit adds a new package for the Sourcery CodeBench external toolchain for the AArch64 architecture. The legacy implementation is removed. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Reviewed-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-11-23toolchain-external-linaro-aarch64: new packageThomas Petazzoni
This commit adds a new package for the Linaro external toolchain for the AArch64 architecture. The legacy implementation is removed. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Reviewed-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-11-23toolchain-external: introduce toolchain-external-packageArnout Vandecappelle
The toolchain-external-package infrastructure is just a copy of the toolchain-external commands, replacing TOOLCHAIN_EXTERNAL by $(2) and adding double-dollars everywhere. toolchain-external itself is converted to a virtual package, but it is faked a little to make sue the toolchains that haven't been converted to toolchain-external-package yet keep on working. The TOOLCHAIN_EXTERNAL_MOVE commands don't have to be redefined for every toolchain-external-package instance, so that is moved out into the common part of pkg-toolchain-external.mk. The musl-compat-headers dependency stays in the toolchain-external package itself. The musl ld link is duplicated in the legacy toolchain-external and the toolchain-external-package, because they have separate hooks. The handling of TOOLCHAIN_EXTERNAL_BIN deserves some special attention, because its value will be different for different toolchain-external-package instances. However, the value only depends on variables that are set by Kconfig (BR2_TOOLCHAIN_EXTERNAL_PREFIX and BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD) so it can easily be used in the generic part. So we don't have to do anything specific for this variable after all. Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: Romain Naour <romain.naour@gmail.com> Reviewed-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-11-23toolchain-external: move parts to pkg-toolchain-external.mkArnout Vandecappelle
pkg-toolchain-external.mk will be used later to define the toolchain-external-package infra. Most of the variable and macro definitions are shared with the legacy generic-package based toolchain-external. Move these to pkg-toolchain-external.mk. pkg-toolchain-external.mk is included implicitly by the include toolchain/*/*.mk in the top-level Makefile. The order of inclusion is not defined, but that doesn't matter because none of the variables defined in pkg-toolchain-external.mk are used in conditions or in rules in toolchain-external.mk, only in recursively-expanded variables. No functional changes at all. The output of 'make -qp' hasn't changed. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Romain Naour <romain.naour@gmail.com> [Arnout: split off into separate patch] Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Reviewed-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-11-23toolchain-external: reorder the contents of toolchain-external.mkArnout Vandecappelle
When the toolchain-external logic will be split into separate packages, the order in which things are defined in toolchain-external.mk no makes less sense. So reorder things in a more logical fashion. Also add a few more comments to the different sections. No functional changes at all. The output of 'make -qp' hasn't changed, except for the order of arguments in TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Romain Naour <romain.naour@gmail.com> [Arnout: split off into separate patch, slightly change some comments, reordered some parts] Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Reviewed-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-11-16toolchain: workaround musl/kernel headers conflictBaruch Siach
Rick Felker suggested[1] this hack as a workaround to musl libc conflict with kernel headers: The problem is linux/libc-compat.h, which should fix this, only works on glibc, by design. See: #ifndef _LIBC_COMPAT_H #define _LIBC_COMPAT_H /* We have included glibc headers... */ #if defined(__GLIBC__) /* Coordinate with glibc netinet/in.h header. */ #if defined(_NETINET_IN_H) If you patch it like this: -#if defined(__GLIBC__) +#if 1 then it should mostly work but it's still all a big hack. I think that's what distros are doing. The problem is that the same header is trying to do two different things: 1. Provide extra linux-kernel-API stuff that's not in the libc/userspace headers. 2. Provide definitions of the standard types and constants for uClibc and klibc, which don't have complete libc headers and rely on the kernel headers for definitions. These two uses really should be separated out into separate headers so that the latter only get included explicitly by uClibc and klibc and otherwise remain completely unused. But that would require coordinated changes/upgrades which are unlikely to happen. :( Upstream musl still evaluates[2][3] a permanent solution. With this in place we can revert (at least) commits a167081c5d (bridge-utils: fix build with musl) and e74d4fc4932 (norm: add patch to fix musl build). [1] http://www.openwall.com/lists/musl/2015/10/08/2 [2] http://git.musl-libc.org/cgit/musl/commit/?id=04983f2272382af92eb8f8838964ff944fbb8258 [3] http://www.openwall.com/lists/musl/2016/11/09/2 Signed-off-by: Baruch Siach <baruch@tkos.co.il> Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-11-09MIPS: rename M5101 core to M5150Vicente Olivert Riera
m5101 is the -march option for GCC, but the real core name is M5150. Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com> Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-11-09MIPS: remove M5100 coreVicente Olivert Riera
This is a microcontroller class (MCU) core which is not suitable for running Linux. Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com> Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>