summaryrefslogtreecommitdiffstats
path: root/toolchain
Commit message (Collapse)AuthorAgeFilesLines
...
* toolchain-external: update ARMeb musl dependencyThomas Petazzoni2016-07-281-1/+1
| | | | | | | | | | | | | | | ARM big-endian is different from ARMv4/5/6 and ARMv7. Big-endian on ARMv4/5/6 is BE-32 while big-endian on ARMv7 is BE-8, which are not compatible. Therefore, the musl big endian toolchain that is built for ARMv4 cannot work for ARMv7, it can only work for ARMv4/5/6. This commit updates the musl toolchain dependency accordingly. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Reviewed-by: Matt Weber <matthew.weber@rockwellcollins.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* toolchain: add 4.7.x choice for headersFabio Estevam2016-07-252-0/+9
| | | | | Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain: add hidden symbol for PIE supportWaldemar Brodkorb2016-07-242-0/+6
| | | | | | | | | | | | | uClibc-ng does not support PIE for some architectures as arc and m68k. It isn't implemented in the static linking case, too. With musl toolchains you might have static PIE support with little patching of gcc. Static linking for GNU libc isn't enabled in buildroot. Fixup any package using special treatment of PIE. (grep -ir pie package/*/*.mk) Signed-off-by: Waldemar Brodkorb <wbx@openadk.org> [Thomas: use positive logic.] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain: use the <PKG>_TARGET_FINALIZE_HOOKSYann E. MORIN2016-07-181-2/+2
| | | | | | | | | Register toolchain-specific target-finalize hooks with the newly-introduced <PKG>_TARGET_FINALIZE_HOOKS. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Reviewed-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain-external: Commonize /lib/<tuple> symlinks for Linaro toolchainsRomain Naour2016-07-041-18/+8
| | | | | | | | | | | | | As proposed initialy by Matthew Fornero [1], commonize the creation of symlinks from {/usr}/lib to {/usr}/lib/<tuple> for Linaro toolchains. This symlinks are only required for old Linaro toolchains. [1] http://patchwork.ozlabs.org/patch/624577 Signed-off-by: Romain Naour <romain.naour@gmail.com> Cc: Matthew Fornero <mfornero@mathworks.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain-external: wrap gfortranVicente Olivert Riera2016-07-041-4/+4
| | | | | Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* toolchain-external: bump Codescape toolchains to 2016.05Vicente Olivert Riera2016-07-043-9/+11
| | | | | Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* toolchain-buildroot: add bfin supportWaldemar Brodkorb2016-07-041-1/+0
| | | | | | | | With gcc 6.1.0 and binutils 2.26 internal bfin toolchain can be used. A gcc patch is required, which was reported upstream. Signed-off-by: Waldemar Brodkorb <wbx@openadk.org> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain/toolchain-external: update external toolchains that have Fortran ↵Samuel Martin2016-07-031-0/+6
| | | | | | | | | support Signed-off-by: Samuel Martin <s.martin49@gmail.com> [Vincent: BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX also has fortran] Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain/toolchain-external: add knob for fortran supportSamuel Martin2016-07-031-0/+8
| | | | | | Signed-off-by: Samuel Martin <s.martin49@gmail.com> Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain/toolchain-external: add lib{gfortran,quadmath} to ↵Samuel Martin2016-07-031-0/+8
| | | | | | | | TOOLCHAIN_EXTERNAL_LIBS Signed-off-by: Samuel Martin <s.martin49@gmail.com> Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain/toolchain-external: enable fortran check when it is selectedSamuel Martin2016-07-031-0/+4
| | | | | | Signed-off-by: Samuel Martin <s.martin49@gmail.com> Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain/helpers: add fortran checkSamuel Martin2016-07-031-0/+18
| | | | | | | | Signed-off-by: Samuel Martin <s.martin49@gmail.com> Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com> [Thomas: remove extension for the generated temporary file, since it's really an executable, not an object file.] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain: add hidden symbol for fortran support in the toolchainSamuel Martin2016-07-031-0/+3
| | | | | | | | | | This symbol should be used in all packages requiring/testing for fortran support. Signed-off-by: Samuel Martin <s.martin49@gmail.com> Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com> Reviewed-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain/toolchain-common.in: add BR2_TOOLCHAIN_HAS_LIBQUADMATH hidden symbolSamuel Martin2016-07-031-0/+10
| | | | | | | | | | | | | | | | This hidden symbol allow to know when libquadmath can be built and installed. Also, declaring this symbol in toolchain-common.in allows to use it in both external and buildroot toolchain backend. This will be needed for adding/improving the fortran support. Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: Vicente Olivert Riera <Vincent.Riera@imgtec.com> Cc: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Signed-off-by: Samuel Martin <s.martin49@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain-external: remove SOURCE/SITE for locally available toolchainThomas Petazzoni2016-07-031-8/+0
| | | | | | | | | | | When the custom external toolchain is locally available, we currently define SITE/SOURCE to empty variables. Now that the package infrastructure doesn't define a value for SOURCE when VERSION is empty, it doesn't attempt to download a file anymore, so we can get rid of those empty SOURCE/SITE variables in the toolchain-external package. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* Replace (e)glibc by glibcThomas Petazzoni2016-06-282-3/+3
| | | | | | | | | | | | | | | | Following the removal of eglibc support, this commit replaces all occurences of "(e)glibc" by just "glibc". Most of the occurences are in package Config.in comments. In addition, when the form "an (e)glibc ..." was used, it is replaced by "a glibc ...". [Peter: add new efi* packages, s/uclibc/uClibc as suggested by Romain, systemd / liquid-dsp tweaks as suggested by Yann] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Reviewed-by: Romain Naour <romain.naour@gmail.com> Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* m68k: gcc coldfire does not provide _sync atomicsWaldemar Brodkorb2016-06-271-0/+2
| | | | | | | | | | Trying to use __sync_fetch_and_add ends with a gcc ICE. This fixes following autobuild failure, by actually disabling the package for coldfire: http://autobuild.buildroot.net/results/d719db11210d42501332586b4485ab0cc1e125dd/ Signed-off-by: Waldemar Brodkorb <wbx@openadk.org> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* toolchain-external: hook for Codescape toolchain side-by-side layoutVicente Olivert Riera2016-06-071-0/+14
| | | | | | | | | | | | | | | The Codescape toolchain uses a sysroot layout that places them side-by-side instead of nested like multilibs. A symlink is needed much like for the nested sysroots which are handled in copy_toolchain_sysroot but there is not enough information in there to determine whether the sysroot layout was nested or side-by-side. For the above reason plus the fact that this is the only toolchain needing this, better to handle that symlink creation using a hook which will be executed only when that toolchain is selected. Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* Revert "toolchain: allow side by side sysroot directories"Vicente Olivert Riera2016-06-071-41/+18
| | | | | | | | | | | | | | | | | | | This reverts commit 9a1e9efe2618ebbf12ed2567bcd6e8cca5619547. Currently Codescape toolchains cannot be used to generate a big endian root file system because the support for side by side sysroots is not complete. There is a patch [1] waiting in the queue which fixes the issue for the current version of Codescape toolchains we have, but it will not work for the next one that is coming. So, instead of messing more with the toolchain infra I think it's better to handle these specific Codescape toolchain's weirdness in hooks which won't affect others. [1]: http://patchwork.ozlabs.org/patch/571708/ Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* uclibc: the internal toolchain only uses uClibc-ngWaldemar Brodkorb2016-06-061-3/+3
| | | | | | | | Point to the right website and tell the user the right name. Signed-off-by: Waldemar Brodkorb <wbx@openadk.org> Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* uclibc: add microblaze supportWaldemar Brodkorb2016-06-051-2/+2
| | | | | | | | | Latest uClibc-ng 1.0.15 release fixed open issues with microblaze shared library and linuxthreads support. gcc 4.9.3 and gcc 5.3.0 require a small patch. Signed-off-by: Waldemar Brodkorb <wbx@openadk.org> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* Merge branch 'next'Peter Korsgaard2016-06-015-33/+19
|\ | | | | | | Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
| * toolchain-external: bump CodeSourcery NIOSII to 2016.05Romain Naour2016-05-233-7/+7
| | | | | | | | | | | | | | The toolchain still use binutils 2.25 without the fix for PR19405. Signed-off-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
| * toolchain: musl support is no longer experimentalThomas Petazzoni2016-05-172-3/+3
| | | | | | | | | | | | | | | | | | | | | | Our musl support has now been around for quite some time, numerous packages have been fixed (although admittedly not all). It's time to no longer call our musl support "experimental": things are now expected to be working with musl just like with the other two C libraries we support. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
| * toolchain: remove eglibc supportThomas Petazzoni2016-05-171-23/+0
| | | | | | | | | | | | | | | | The eglibc support has been marked deprecated since 2015.08, so it's time to remove it. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
| * toolchain: add 4.6.x choice for headersGustavo Zacarias2016-05-162-0/+9
| | | | | | | | | | Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* | toolchain/helper: don't follow symlinks when copying libs to targetYann E. MORIN2016-05-301-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In 2a87b64 (toolchain-external: align library locations in target and staging dir), copying the libraries from the sysroot to the target was changed to a simple find-based solution. To be sure that the staging directory was entered to find the libraries, in case the variable was pointing to a symlink, the -L clause to find was used. However, that causes extraneous libraries to be copied over. For example, a ct-ng toolchain would have this sysroot (e.g for an arm 32-bit toolchain): .../sysroot/lib/ .../sysroot/lib32 -> lib .../sysroot/lib64 -> lib .../sysroot/usr/lib/ .../sysroot/usr/lib32 -> lib .../sysroot/usr/lib64 -> lib Which we would carry as-is to our own sysroot. But then, in target, our skeleton creates the /lib/ and /usr/lib directories, with the necessary lib32 or lib64 symlink pointing to it. In this case, a lib32->lib symlink is created, but no lib64 symlink since this is a 32-bit architecture. To copy the required libraries from staging into target, we scan the staging directory for all occurences of the required libraries, and copy them over to target, keeping the same directory layout relative to the sysroot. For example: .../sysroot/usr/lib/libfoo.so --> .../target/usr/lib/libfoo.so .../sysroot/usr/lib32/libbar.so --> .../target/usr/lib32/libbar.so .../sysroot/usr/lib64/libbuz.so --> .../target/usr/lib64/libbuz.so So, when we copy over the libraries from our staging to the target directory, the "find -L .../sysroot -name libblabla.so.*" would find multiple instances of libblabla, each in the /usr/lib /usr/lib32 and /usr/lib64 locations (they are all the exact same file, though). Since we do have the /usr/lib32->lib symlink, all is OK (but there are two copies going on, which could be avoided). However, since we do not have the /usr/lib64->lib symlink, the /usr/lib64/ directory is created. This was very difficult to observe, as no /lib64/ directory is created, only the /usr/lib64/ one was. To top it off, this only happens with a merged /usr, which does not seem like not a common case without systemd. Since the reason to use -L was to be sure to enter our staging directory, we just need to ensure that the path ends up with a slash, as was already talked about in this thread: http://lists.busybox.net/pipermail/buildroot/2016-April/159737.html After further discussion, it turns out that the original patch came along because of the confusion between output/staging (which is a symlink) and $(STAGING_DIR) which expands to output/host/usr/<tupple>/sysroot (which is never a symlink), so the symlink handling isn't really needed at all. [Peter: drop description comment, extend description] Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: Arnout Vandecappelle <arnout@mind.be> Cc: Thomas De Schampheleire <patrickdepinguin@gmail.com> Cc: Peter Korsgaard <peter@korsgaard.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* | toolchain-external: correct hash value for Linaro AArch64 toolchain sourceClayton Shotwell2016-05-241-1/+1
| | | | | | | | | | | | | | | | | | The aarch64 Linaro toolchain source hash is not correct, probably due to a copy/paste error. The new hash has been verified by downloading the tarball, validating the signature, and computing the hash. Signed-off-by: Clayton Shotwell <clayton.shotwell@rockwellcollins.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* | toolchain: improve SSP logicVicente Olivert Riera2016-05-234-6/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Don't enable SSP support on external toolchains just because they use glibc or musl. Instead of that, make the external toolchains explictily declare if they support SSP or not. And also add a check to detect SSP support when using custom external toolchains. For internal toolchains we always enable SSP support for glibc and musl. Fixes: http://autobuild.buildroot.net/results/ac7c9b3ad2e52abfe6b79a80045e4218eeb87175/ Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com> [Thomas: - remove uClibc-specific SSP check, since there is now a generic check being done. - send potential compilation errors caused by the SSP check to oblivion, in order to avoid causing confusion for the user. - add autobuilder reference.] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* | toolchain-external: fix user provided libraries deploymentRomain Naour2016-05-131-1/+1
|/ | | | | | | | | | | | | | | | | | | In commit 919b4f9eab3e6dcd18cf9220af2c9bb2ca3e5098 the internal symbol LIB_EXTERNAL_LIBS was renamed TOOLCHAIN_EXTERNAL_LIBS but the find and replace command also renamed BR2_TOOLCHAIN_EXTRA_EXTERNAL_LIBS to BR2_TOOLCHAIN_EXTRA_TOOLCHAIN_EXTERNAL_LIBS which doesn't exist. So user provided libraries defined in BR2_TOOLCHAIN_EXTRA_EXTERNAL_LIBS are not copied anymore to staging and target directories. For example: BR2_TOOLCHAIN_EXTRA_EXTERNAL_LIBS="libasan.* libubsan.*" Simply revert this change by renaming BR2_TOOLCHAIN_EXTRA_TOOLCHAIN_EXTERNAL_LIBS to BR2_TOOLCHAIN_EXTRA_EXTERNAL_LIBS Signed-off-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain-external: fix registration of hook for Sourcery Aarch64 toolchainThomas Petazzoni2016-05-081-1/+1
| | | | | | | | | | | | As noticed by Romain Naour, commit 4d39ca1c2ab19766abf0430abe9b65ba0e16602b ("toolchain-external: fix installation for CodeSourcery AArch64 toolchain") has a small bug where a post-install hook doing fixups in TARGET_DIR was registered as a staging installation hook while it should have been registered as a target installation hook. This commit fixes this inconsistency. Reported-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain-external: remove Sourcery PowerPC toolchainsGustavo Zacarias2016-05-013-65/+0
| | | | | | | | | | | | | | | | | | | | | | | | These are running long on the teeth - the bundled (e)glibc versions are very old with several security bugs, they don't work reliably with -Os and have several build failures related to internal compiler errors such as: http://autobuild.buildroot.net/results/fe7/fe7bdba5faf199275aedea2918705b5d19d228bf/ http://autobuild.buildroot.net/results/935/935ac42c30ed893939c06c077534f060aed80e9a/ http://autobuild.buildroot.net/results/a47/a476af82c8fe4a279117314b278b08af9a08fe54/ http://autobuild.buildroot.net/results/cae/cae720b5096be2672b4dc1311ae3fc4ed06a3b53/ The situation will not provide, and will in fact get worse with older kernel headers precluding modern package versions and the old gcc version doing as well so remove them. Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> Reviewed-by: Romain Naour <romain.naour@gmail.com> [Thomas: - remove no longer needed comment in liquid-dsp Config.in file, as noticed by Romain Naour. - add Config.in.legacy options, as noticed by Romain Naour.] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain-external: bump CodeSourcery MIPS to 2016.06-8Romain Naour2016-05-013-9/+8
| | | | | | | | | Add hash for the toolchain sources. Runtime tested with Qemu with qemu_mips_malta_defconfig Signed-off-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain-external: bump CodeSourcery AMD64 to 2015.11-139Romain Naour2016-05-012-3/+3
| | | | | | | | | | >From getting-started.pdf: - Linker bug fix. - Fix CVE 2015-7547 getaddrinfo. - Breakpoint in non-existent file bug fix. Signed-off-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain-external: bump CodeSourcery NiosII to 2015.11-130Romain Naour2016-05-012-3/+3
| | | | | | | | | | >From getting-started.pdf: - DWARF signed LEB128 encoding fix - Fix CVE 2015-7547 getaddrinfo - Breakpoint in non-existent file bug fix Signed-off-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain-external: add GCC 6.x optionJörg Krause2016-05-011-0/+4
| | | | | | | | Commit 519d83bfa0442439026db4e71e605a5c1347e566 adds support for GCC 6. Add an GCC 6.x option for external toolchains, too. Signed-off-by: Jörg Krause <joerg.krause@embedded.rocks> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain-external: bump version of Linaro AArch64 toolchainThomas Petazzoni2016-04-303-4/+4
| | | | | | | Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Reviewed-by: Romain Naour <romain.naour@gmail.com> Tested-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain-external: bump version of Linaro ARMeb toolchainThomas Petazzoni2016-04-303-6/+6
| | | | | | Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Reviewed-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain-external: bump version of Linaro ARM toolchainThomas Petazzoni2016-04-303-5/+5
| | | | | | | Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Reviewed-by: Romain Naour <romain.naour@gmail.com> Tested-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain-external: bump CodeSourcery aarch64 to 2014.11Romain Naour2016-04-303-12/+13
| | | | | | | | | | Runtime tested using qemu_aarch64_virt_defconfig. Signed-off-by: Romain Naour <romain.naour@gmail.com> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: Vicente Olivert Riera <Vincent.Riera@imgtec.com> [Thomas: updated to the latest master branch.] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain-external: fix installation for CodeSourcery AArch64 toolchainRomain Naour2016-04-301-0/+8
| | | | | | | | | | | | | | | | The extracted toolchain sources contains a single symlink in the aarch64-linux-gnu/libc/lib directory wich is lost during Buildroot's staging install. aarch64-linux-gnu/libc/lib/ld-linux-aarch64.so.1 -> ../lib64/ld-2.18.so Add a custom post install staging and target hooks to create it manually. Signed-off-by: Romain Naour <romain.naour@openwide.fr> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> [Thomas: also make the same tweak in the target.] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* gcc: add support for gcc 6Thomas Petazzoni2016-04-271-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit adds the support for gcc 6. This release allows to remove a large number of our gcc patches, mainly thanks to the Xtensa and musl related patches being merged upstream. Patches kept with no changes: 100-uclibc-conf.patch 301-missing-execinfo_h.patch 810-arm-softfloat-libgcc.patch 830-arm_unbreak_armv4t.patch 840-microblaze-enable-dwarf-eh-support.patch 860-cilk-wchar.patch 890-fix-m68k-compile.patch Patches dropped because they have been merged upstream, or were already upstream backports: 120-gcc-config.gcc-fix-typo-for-powerpc-e6500-cpu_is_64b.patch (merged) 850-libstdcxx-uclibc-c99.patch (merged in a different form, see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58393) 870-xtensa-add-mauto-litpools-option.patch (upstream backport) 871-xtensa-reimplement-register-spilling.patch (upstream backport) 872-xtensa-use-unwind-dw2-fde-dip-instead-of-unwind-dw2-.patch (upstream backport) 873-xtensa-fix-_Unwind_GetCFA.patch (upstream backport) 874-xtensa-add-uclinux-support.patch (upstream backport) 900-libitm-fixes-for-musl-support.patch (upstream backport) 901-fixincludes-update-for-musl-support.patch (upstream backport) 902-unwind-fix-for-musl.patch (upstream backport) 903-libstdc++-libgfortran-gthr-workaround-for-musl.patch (upstream backport) 904-musl-libc-config.patch (upstream backport) 905-add-musl-support-to-gcc.patch (upstream backport) 905-add-musl-support-to-gcc.patch (upstream backport) 906-mips-musl-support.patch (upstream backport) 907-x86-musl-support.patch (upstream backport) 908-arm-musl-support.patch (upstream backport) 909-aarch64-musl-support.patch (upstream backport) Successfully build-time and run-time tested with qemu_arm_vexpress_defconfig, using gcc 6.x, both in uClibc and musl configurations. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* toolchain/helper: update check_unusable_toolchain commentRomain Naour2016-04-271-3/+6
| | | | | Signed-off-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain-external: move the sysroot check to helper functionRomain Naour2016-04-272-9/+6
| | | | | | | | | | | | | | | | | | | The sysroot toolchain support check is duplicated at two locations in the external toolchain infra. So move it inside the check_unusable_toolchain helper that is called when the toolchain package is configured (TOOLCHAIN_EXTERNAL_CONFIGURE_CMDS). The check in TOOLCHAIN_EXTERNAL_INSTALL_SYSROOT_LIBS can be safely removed since it's already done in check_unusable_toolchain helper. The check in TOOLCHAIN_EXTERNAL_INSTALL_TARGET_LIBS was removed by 2a87b64f8e8a832a351f8552eb032e4b18431949. Signed-off-by: Romain Naour <romain.naour@gmail.com> Cc: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Cc: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain-external: add a check for unsupported toolchainsRomain Naour2016-04-271-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some toolchain can't be used by Buildroot due to sysroot location issue, so the $(ARCH)-linux-gnu-gcc -print-file-name=libc.a command return only "libc.a" This lead to an error during the header check version helper, so these toolchains can't be imported into Buildroot. cc1: fatal error: $PWD/libc.a/usr/include/linux/version.h: No such file or directory compilation terminated. support/scripts/check-kernel-headers.sh: line 38: /tmp/check-headers.4V5PPF: Permission denied This issue happen with the first linaro 2015.11 [1] release and CodeSourcery standard edition [2]. Here is the sysroot directory tree for linaro 2015.11: $ ls libc/arm-linux-gnueabihf etc lib sbin usr var Here is the sysroot directory tree for CodeSourcery standard: $ ls libc/sgxx-glibc etc lib lib64 sbin usr var Add a check to error out with an explicit error message The check don't use toolchain_find_libc_a function directly since "realpath -f" is used internally and return an absolute path. [1] https://bugs.linaro.org/show_bug.cgi?id=1995#c7 [2] http://lists.busybox.net/pipermail/buildroot/2014-October/110696.html Signed-off-by: Romain Naour <romain.naour@gmail.com> Cc: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Cc: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain-external: remove useless shell continuationsThomas Petazzoni2016-04-251-9/+9
| | | | | | | | | | | When a message with MESSAGE, we can print it as the first command of the command sequence, and in this case, we don't need to use a shell continuation. In one case, the call to MESSAGE is moved a few lines up in the sequence of commands. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain-external: rename Blackfin related special variablesThomas Petazzoni2016-04-251-4/+4
| | | | | | | | | | | | | | | | As suggested by Arnout, this commit renames: - TOOLCHAIN_EXTERNAL_INSTALL_BFIN_FDPIC to TOOLCHAIN_EXTERNAL_INSTALL_TARGET_BFIN_FDPIC - TOOLCHAIN_EXTERNAL_INSTALL_BFIN_FLAT to TOOLCHAIN_EXTERNAL_INSTALL_TARGET_BFIN_FLAT Which makes it clear that those variables are installing libraries to the target, and make their naming more consistent with the naming of other variables in the file. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain-external: unify LIB_EXTERNAL_LIBS and USR_LIB_EXTERNAL_LIBSThomas De Schampheleire2016-04-252-13/+12
| | | | | | | | | | | | | | With the alignment of toolchain library location in target and staging, there is no need anymore for the distinction between LIB_EXTERNAL_LIBS and USR_LIB_EXTERNAL_LIBS. Unify them into TOOLCHAIN_EXTERNAL_LIBS. Related, update the help text of BR2_TOOLCHAIN_EXTRA_TOOLCHAIN_EXTERNAL_LIBS. Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com> Reviewed-by: Romain Naour <romain.naour@gmail.com> Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain-external: align library locations in target and staging dirThomas De Schampheleire2016-04-252-85/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The toolchain-external logic is roughly: - populate the staging dir by rsyncing the entire ${ARCH_LIB_DIR} and usr/${ARCH_LIB_DIR} from sysroot. - populate the target dir by explictly copying some libraries from sysroot into target/lib and some other libraries in target/usr/lib, the split being hardcoded into buildroot regardless of the location in the sysroot. This means that a library libfoo could be located in: staging/lib/libfoo.so target/usr/lib/libfoo.so When debugging an application that links against this library, gdb will fruitlessly search for 'usr/lib/libfoo.so' in staging, and then suggest to use 'set solib-search-path' which is a hack, really. To solve the problem, we need to make sure that libraries from the toolchain are installed in the same relative location in staging and target. Achieve this by: - replacing the convoluted search for libraries using for+find in sysroot with a simple find in staging. - determining DESTDIR for each library individually based on the location in staging. - treating LIB_EXTERNAL_LIBS and USR_LIB_EXTERNAL_LIBS equivalently These changes also allow for the removal of most arguments to copy_toolchain_lib_root in the method itself and their callers. Test procedure: - set configuration for a given toolchain - make clean toolchain - find output/target | sort > /tmp/out-before - apply patch - make clean toolchain - find output/target | sort > /tmp/out-after - diff -u /tmp/out-before /tmp/out-after The only changes should be some libraries moving from lib to usr/lib or vice versa. Notable examples being libstdc++ and libatomic. Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com> Reviewed-by: Romain Naour <romain.naour@gmail.com> Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> [Thomas: - use -L instead of -follow in the find invocation, as suggested by Arnout. - move the BR2_STATIC_LIBS condition as a make condition rather than a shell condition, as suggested by Arnout.] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
OpenPOWER on IntegriCloud