aboutsummaryrefslogtreecommitdiff
path: root/toolchain
Commit message (Collapse)AuthorAgeFilesLines
* toolchain/helpers.mk: remove unused argument of check_arm_abiGravatar Thomas Petazzoni2017-03-262-3/+1
| | | | | | | | The check_arm_abi function takes as second argument the path to the cross-readelf, but does not use it. Therefore, this commit gets rid of this unnecessary argument. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain-external: improve musl external checkGravatar Ilya Kuzmich2017-03-262-5/+12
| | | | | | | | | | | | | The current test to verify if the toolchain uses musl or not is based on checking if /lib/libc.so or /lib/libm.so exist in the sysroot. However, some toolchains (notably Crosstool-NG ones) put these libraries in /usr/lib/. To fix this, build a minimal C program and check if the program interpreter contains /lib/ld-musl. Signed-off-by: Ilya Kuzmich <ilya.kuzmich@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain-external: fix definition of TOOLCHAIN_EXTERNAL_READELFGravatar Thomas Petazzoni2017-03-261-1/+1
| | | | | | | | | | | | | | | | TOOLCHAIN_EXTERNAL_READELF is defined to $(TOOLCHAIN_EXTERNAL_CROSS)readelf$(TOOLCHAIN_EXTERNAL_SUFFIX), where TOOLCHAIN_EXTERNAL_SUFFIX is .br_real for Buildroot toolchains. However, this is bogus, because readelf is not wrapped by the Buildroot toolchain wrapper, so "<arch>-readelf.br_real" never exists. Therefore, it should simply be defined as $(TOOLCHAIN_EXTERNAL_CROSS)readelf. Currently, TOOLCHAIN_EXTERNAL_READELF is not used anywhere, so it wasn't visible, but a follow-up commit will make use of it. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* package/pkg-toolchain-external: indentation cleanupGravatar Jerzy Grzegorek2017-03-191-8/+8
| | | | | Signed-off-by: Jerzy Grzegorek <jerzy.grzegorek@trzebnica.net> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain: remove no longer relevant commentGravatar Thomas Petazzoni2017-03-091-10/+0
| | | | | | | | | The somewhat complicated sed expression has been removed in commit 06cd604ec6d34f25b436ab729543418042a87e1c ("toolchain/external: use -dumpversion to check gcc version"), so let's remove the comment that was explaining this sed expression. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain/external: use -dumpversion to check gcc versionGravatar Krzysztof Konopko2017-03-091-1/+1
| | | | | | | | | | | | | | Currently, `--version` option is used and later matched with a regex to get the actual gcc version. There's a dedicated gcc option to do exactly that: `-dumpversion`. Also `--version` may return a string customised by a vendor that provides the toolchain, which makes the current regex approach error prone. In fact, this situation has been seen with a real customised toolchain. Signed-off-by: Krzysztof Konopko <kris@youview.com> Signed-off-by: Tomasz Szkutkowski <tomasz.szkutkowski@youview.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* arch: add support for the csky architectureGravatar Guo Ren2017-03-041-0/+1
| | | | | | | | This commit provides basic support for the C-SKY architecture. Signed-off-by: Guo Ren <ren_guo@c-sky.com> [Thomas: minor tweaks.] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain-external: fix broken handling of 'usr/lib/locale'Gravatar Thomas De Schampheleire2017-03-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Function copy_toolchain_sysroot, which is in charge of copying the relevant bits from the external toolchain to the staging directory, performs an rsync loop of various directories and excludes the pattern 'usr/lib/locale' with the intention of skipping the directory <toolchain>/usr/lib/locale. However, while this worked in the original commit, commit 5628776c4a4d29d0715633ea463b64cc19e19c5a broke it inadvertently. The relevant part of the diff: - rsync -au --chmod=Du+w --exclude 'usr/lib/locale' \ - $${ARCH_SYSROOT_DIR}/$$i $(STAGING_DIR)/ ; \ + rsync -au --chmod=Du+w --exclude 'usr/lib/locale' \ + --exclude lib --exclude lib32 --exclude lib64 \ + $${ARCH_SYSROOT_DIR}/$$i/ $(STAGING_DIR)/$$i/ ; \ Notice how the source directory now contains a trailing slash, which impacts the way the exclude rules are interpreted. Previously, when 'i' was 'usr', the exclude of 'usr/lib/locale' would find a match. With the trailing slash, there will never be a match, unless for a directory 'usr/usr/lib/locale'. The right rule would have been '--exclude lib/locale'. However, just that fix does not solve the problem in all cases, in particular in the (common) case where ARCH_LIB_DIR is 'lib'. This is due another change in that commit, changing the iterated values of the above rsync: - for i in etc $${ARCH_LIB_DIR} sbin usr ; do \ + for i in etc $${ARCH_LIB_DIR} sbin usr usr/$${ARCH_LIB_DIR}; do \ Due to the fact that we rsync both 'usr' as 'usr/lib' (assuming ARCH_LIB_DIR is 'lib') we need to add the correct exclude in both cases. But the exclude is different for both. When i == 'usr', the correct exclude rule would be '--exclude lib/locale' while when i == 'usr/lib' the correct rule would be '--exclude locale'. Since we would like to avoid separate cases for this, use the following exclude: '--exclude locale/'. The trailing slash will make sure only directories called 'locale' will match. The targeted directories are then usr/lib/locale and usr/share/locale. The latter directory was not matched originally, but it should not hurt changing that. Signed-off-by: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain-external: reduce nesting in copy_toolchain_sysrootGravatar Thomas De Schampheleire2017-03-011-4/+5
| | | | | | | | | | | As discussed with Thomas Petazzoni, we can reduce the nesting level by early returning on an invalid iteration. I did not move the 'else' case (the common case) outside the if-else because it would make the code less symmetrical and IMO makes it _less_ clear. Signed-off-by: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* core/pkg-cmake: provide our own platform descriptionGravatar Yann E. MORIN2017-03-011-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The handling of RPATH in cmake-3.7 has changed drastically, causing a slew of build failures dues to libraries from the host being pulled in: - domoticz : http://autobuild.buildroot.org/results/fd0/fd0ba54c7abf973691b39a0ca1bb4e07d749593a/ - freerdp : http://autobuild.buildroot.org/results/5d4/5d429d0e288754a541ee5d8be515454c5fccd28b/ - libcec : http://autobuild.buildroot.org/results/3f3/3f3593bab7734dd274faf5b5690895e9424cbb89/ - and so on... The bug was reported upstream [0], which dismissed it altogether [1] as being expected behaviour, quoting: I don't think there is anything wrong with that change on its own. It merely exposed some existing behavior in a new case. Instead, upstream suggested in that same message that a platform definition be used instead, quoting: If a toolchain file specifies CMAKE_SYSTEM_NAME such that a custom `Platform/MySystem.cmake` file is loaded then the latter can set them as needed for the target platform. So here we are doing so: - we add a new platfom definitions that inherits from the Linux one, then overrides the problematic settings; - we change our toolchain file to use that platform instead; - we tell cmake where to find additional modules, so that it can find our custom platform file. This has been tested to work in the following conditions: - pre-installed host cmake, versions 3.5.1 (Ubuntu 16.04) and 3.7.2 (manually built) - internal cmake, versions 3.6.3 (the current version as of this patch) and 3.7.2 (with the followup patches). Thanks to Jörg, Ben and Baruch for the help investigating the issue. Special thanks to Jörg for handling the discussion with upstream and pointing to the relevant messages! :-) [0] http://public.kitware.com/pipermail/cmake/2017-February/064970.html [1] http://public.kitware.com/pipermail/cmake/2017-February/065063.html To be noted: Thomas suggested we set these directly in the toolchain file. Unfortunately, wherever we put those settings in the toolchain file, this does not work. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Jörg Krause <joerg.krause@embedded.rocks> Cc: Ben Boeckel <mathstuf@gmail.com> Cc: Baruch Siach <baruch@tkos.co.il> Cc: Samuel Martin <s.martin49@gmail.com> Cc: Vicente Olivert Riera <Vincent.Riera@imgtec.com> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: Peter Korsgaard <peter@korsgaard.com> Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* Merge branch 'next'Gravatar Peter Korsgaard2017-03-0111-25/+34
|\ | | | | | | Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
| * toolchain-external: bump Linaro AArch64 toolchain to 2017.02Gravatar Romain Naour2017-02-203-7/+7
| | | | | | | | | | | | | | Tested with qemu-2.7.1-2.fc25 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>
| * toolchain-external: bump Linaro ARMeb toolchain to 2017.02Gravatar Romain Naour2017-02-203-9/+9
| | | | | | | | | | Signed-off-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
| * toolchain-external: bump Linaro ARM toolchain to 2017.02Gravatar Romain Naour2017-02-203-9/+9
| | | | | | | | | | | | | | Tested with qemu-2.7.1-2.fc25 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>
| * toolchain: add 4.10.x choice for headersGravatar Fabio Estevam2017-02-202-0/+9
| | | | | | | | | | Signed-off-by: Fabio Estevam <festevam@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* | toolchain-external: install libanl.so for glibcGravatar Jesper Baekdahl2017-02-241-1/+1
| | | | | | | | | | | | | | | | libanl.so is needed for asynchronous network address and service translation, declared in netdb.h Signed-off-by: Jesper Bækdahl <jbb@gamblify.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* | Revert "reproducible: fix DATE/TIME macros in toolchain-wrapper"Gravatar Yann E. MORIN2017-02-201-71/+1
|/ | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 76838f63412a30a358210e457dda4b79f7730624. The commit referenced above explicitly states that the function was copied as-is from the gcc source code at the time. And indeed that is exactly how the function appeared in gcc in commit e3e8c48c4a494d9da741c1c8ea6c4c0b7c4ff934. However, our toolchain wrapper is "GPLv2 only", while the file this function was copied from is "GPLv3 or later". As such we can't include that function and still comply to both licenses. Furthermore, the code is far from optimum. Since this feature is not release-critical, revert it until we re-implement it. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Jérôme Pouiller <jezz@sysmic.org> Cc: Samuel Martin <s.martin49@gmail.com> Cc: Peter Korsgaard <peter@korsgaard.com> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: Arnout Vandecappelle <arnout@mind.be> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* toolchain/toolchain-common.in: fix definition of BR2_TOOLCHAIN_HAS_GCC_BUG_64735Gravatar Thomas Petazzoni2017-02-091-5/+4
| | | | | | | | | | 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>
* toolchain: add option for toolchains affected by GCC PR libstdc++/64735Gravatar Jörg Krause2017-02-091-0/+12
| | | | | | | | | | | | | | | | | | | | 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>
* reproducible: fix DATE/TIME macros in toolchain-wrapperGravatar Jérôme Pouiller2017-02-071-1/+71
| | | | | | | | | | | | | | | | | | | | | 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>
* toolchain-external: Update Synopsys prebuilt toolchain for ARC coresGravatar Alexey Brodkin2017-02-043-14/+12
| | | | | | | | | | | | | | | | | | | 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>
* uclibc: allow to build aarch64 internal toolchainGravatar Waldemar Brodkorb2017-02-031-3/+3
| | | | | | | 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>
* uclibc: enable mips{32,64}r6 supportGravatar Waldemar Brodkorb2017-02-031-2/+0
| | | | | | | | | | | | | 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>
* toolchain-external: remove stale references to (ARCH_)LIBC_A_LOCATIONGravatar Thomas De Schampheleire2017-02-011-19/+11
| | | | | | | | | 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>
* toolchain-external: bump CodeSourcery AMD64 to 2016.11-19Gravatar Romain Naour2017-01-273-9/+9
| | | | | Signed-off-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* arch: add OpenRISC architecture supportGravatar Waldemar Brodkorb2017-01-251-2/+2
| | | | | | | | | | | | | | | | | | | 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>
* toolchain: bump Codescape MTI MIPS version to 2016.05-06Gravatar Vicente Olivert Riera2017-01-163-7/+11
| | | | | | | | | | | | | 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>
* toolchain: bump Codescape IMG MIPS version to 2016.05-06Gravatar Vicente Olivert Riera2017-01-163-7/+11
| | | | | | | | | | | | | 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>
* toolchain-external: bump CodeSourcery NIOSII to 2016.11Gravatar Romain Naour2016-12-273-9/+9
| | | | | | | | | | 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>
* toolchain: extend musl workaround for recent kernelsGravatar Baruch Siach2016-12-171-0/+9
| | | | | | | | | | | | | | | | | | | | | 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>
* toolchain-external: remove musl-cross prebuilt toolchainGravatar Romain Naour2016-12-175-79/+0
| | | | | | | | | | | | | | 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>
* toolchain: add 4.9.x choice for headersGravatar Fabio Estevam2016-12-122-0/+9
| | | | | Signed-off-by: Fabio Estevam <festevam@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* toolchain/wrapper: use the {str, len} tuples for the unsafe pathsGravatar Yann E. MORIN2016-12-111-6/+17
| | | | | | | | | | | | | | 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>
* toolchain/wrapper: make the {str, len} tuple more generic, add commentsGravatar Yann E. MORIN2016-12-111-14/+21
| | | | | | | | | | | | | | | | | | | 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>
* toolchain-external: disallow sourcery codebench ARM toolchain for ARMv8 coresGravatar Peter Korsgaard2016-12-061-1/+1
| | | | | | | | 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>
* toolchain-external-linaro-{arm,armeb}: allow on ARMv8Gravatar Thomas Petazzoni2016-12-052-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Merge branch 'next'Gravatar Peter Korsgaard2016-12-029-32/+32
|\ | | | | | | | | | | | | | | | | 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>
| * toolchain-external: bump Linaro AArch64 toolchain to 2016.11Gravatar Romain Naour2016-11-303-9/+9
| | | | | | | | | | | | | | 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>
| * toolchain-external: bump Linaro ARMeb toolchain to 2016.11Gravatar Romain Naour2016-11-303-12/+12
| | | | | | | | | | Signed-off-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
| * toolchain-external: bump Linaro ARM toolchain to 2016.11Gravatar Romain Naour2016-11-303-11/+11
| | | | | | | | | | | | | | 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>
* | Merge branch 'next'Gravatar Peter Korsgaard2016-12-0165-1795/+2027
|\ \ | |/ | | | | Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
| * toolchain: kill ADI Blackfin toolchainGravatar Arnout Vandecappelle2016-11-256-155/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * toolchain-external: support gcc < 4.3Gravatar Arnout Vandecappelle2016-11-252-2/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * toolchain-external: remove Arago toolchainsGravatar Arnout Vandecappelle2016-11-233-181/+3
| | | | | | | | | | | | | | | | | | | | | | | | 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>
| * toolchain-external-arc: new packageGravatar Thomas Petazzoni2016-11-237-42/+65
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * toolchain-external-custom: new packageGravatar Thomas Petazzoni2016-11-235-350/+361
| | | | | | | | | | | | | | | | | | | | | | | | 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>
| * toolchain-external-musl-cross: new packageGravatar Thomas Petazzoni2016-11-237-81/+79
| | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * toolchain-external-codesourcery-x86: new packageGravatar Thomas Petazzoni2016-11-237-39/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * toolchain-external-codesourcery-amd64: new packageGravatar Romain Naour2016-11-237-32/+54
| | | | | | | | | | | | | | | | | | | | | | | | 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>
| * toolchain-external-codesourcery-sh: new packageGravatar Thomas Petazzoni2016-11-237-33/+56
| | | | | | | | | | | | | | | | | | | | | | | | | | 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>