summaryrefslogtreecommitdiffstats
path: root/package/gcc/gcc-final
Commit message (Collapse)AuthorAgeFilesLines
* package/gcc: introduce BR2_GCC_SUPPORTS_LIBCILKRTSThomas Petazzoni2018-10-211-2/+10
| | | | | | | | | | | | | | | | libcilkrts was introduced in gcc 4.9, and removed in gcc 8.x. Therefore, it does not make sense to pass --disable-libcilkrts in gcc 8.x and higher. This commit introduces BR2_GCC_SUPPORTS_LIBCILKRTS that allows the makefile code to know if the selected gcc version supports libcilkrts or not. This new option mainly allows to annotate the fact that libcilkrts exists in gcc [4.9, 7] and that once we have dropped support for those gcc versions, the libcilkrts related logic can be removed. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Reviewed-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* package/gcc: disable libcilkrts when there is no thread supportThomas Petazzoni2018-10-211-0/+5
| | | | | | | | | | | | | | | | | The libcilkrts configure script errors out with "Pthreads are required to build libcilkrts" if the C library doesn't have thread support. To fix that, we disable libcilkrts when thread support is not available. This issue was not noticed until now, because we only regularly build a no-thread toolchain for ARM, and libcilkrts was enabled on ARM only starting in gcc 7.x. This fixes the build of no-thread toolchains on architectures where libcilkrts is supported, i.e x86/x86-64, ARM and Sparc. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Reviewed-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* toolchain, gcc, gdb, binutils, uclibc: remove Blackfin codeThomas Petazzoni2018-04-151-4/+0
| | | | | | | This commit removes Blackfin related code from all toolchain code and components. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* package: share downloaded files for big packagesYann E. MORIN2018-04-021-0/+2
| | | | | | | | | | | | Theses packages are given as an example of the use of the *_DL_SUBDIR feature. There maybe other packages that would benefit from that feature, they would need to be added on a case by case basis. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Maxime Hadjinlian <maxime.hadjinlian@gmail.com> Cc: Maxime Hadjinlian <maxime.hadjinlian@gmail.com> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* gcc: fix sparcv8 compile issueWaldemar Brodkorb2017-08-101-0/+5
| | | | | | | | | | | | | | | | | | | | | Fix compile issue with gcc 7.1.0: /tmp/ccxalnSf.s: Assembler messages: /tmp/ccxalnSf.s:12: Error: Architecture mismatch on "rd %tick,%o1". /tmp/ccxalnSf.s:12: (Requires v9|v9a|v9b|v9c|v9d|v9e|v9v|v9m|m8; requested architecture is v8.) /tmp/ccxalnSf.s:13: Error: Architecture mismatch on "srlx %o1,32,%o0". /tmp/ccxalnSf.s:13: (Requires v9|v9a|v9b|v9c|v9d|v9e|v9v|v9m|m8; requested architecture is v8.) /tmp/ccxalnSf.s:30: Error: Architecture mismatch on "rd %ccr,%g0". /tmp/ccxalnSf.s:30: (Requires v9|v9a|v9b|v9c|v9d|v9e|v9v|v9m|m8; requested architecture is v8.) /tmp/ccxalnSf.s:33: Error: Architecture mismatch on "rd %ccr,%g0". /tmp/ccxalnSf.s:33: (Requires v9|v9a|v9b|v9c|v9d|v9e|v9v|v9m|m8; requested architecture is v8.) /tmp/ccxalnSf.s:36: Error: Architecture mismatch on "rd %ccr,%g0". /tmp/ccxalnSf.s:36: (Requires v9|v9a|v9b|v9c|v9d|v9e|v9v|v9m|m8; requested architecture is v8.) /tmp/ccxalnSf.s:39: Error: Architecture mismatch on "rd %ccr,%g0". /tmp/ccxalnSf.s:39: (Requires v9|v9a|v9b|v9c|v9d|v9e|v9v|v9m|m8; requested architecture is v8.) Makefile:684: recipe for target 'os-unix-sysdep.lo' failed Signed-off-by: Waldemar Brodkorb <wbx@openadk.org> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
* arch/xtensa: accept the overlay to be an URLYann E. MORIN2017-07-091-0/+1
| | | | | | | | | | | | | It can be interesting to get the overlay from a remote server, rather than expect it to be present locally. Since that file can be any URL, we can't know its hash, so we just exclude it. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Max Filippov <jcmvbkbc@gmail.com> [Thomas: use DL_DIR instead of BR2_DL_DIR.] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* arch/xtensa: allow specifying path to tarball fileYann E. MORIN2017-07-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | currently, specifying a custom Xtrensa core is done with two variables: - the core name - the directory containing the overlay tarball However, the core name only serves to construct the tarball name, and is not used whatsoever to configure any of the toolchain components (binutils, gcc or gdb), except through the files that are overlayed in their respective source trees. This has two main drawbacks: - the overlay file must be named after the core, - the tarball can not be compressed. Furthermore, it also makes it extremely complex to implement a download of that tarball. So, those two variables can be squeezed into a single variable, that is the complete path of the overlay tarball. Update the qemu-xtensa defconfig accordingly. Note: we do not add a legacy entry for BR2_XTENSA_CORE_NAME, since it was previously a blind option in the last release, and there's been no release since we removed BR2_XTENSA_CUSTOM_NAME. So, we just update the legacy comments for BR2_XTENSA_CUSTOM_NAME, since that's all the user could have seen in any of our releases so far. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Gustavo Zacarias <gustavo@zacarias.com.ar> Signed-off-by: Max Filippov <jcmvbkbc@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* generic packages: use $(HOST_DIR) instead of $(HOST_DIR)/usr as prefixArnout Vandecappelle2017-07-051-1/+1
| | | | | | | | | | | | Remove the redundant usr/ component of the HOST_DIR paths. Since a previous commit added a symlink from $(HOST_DIR)/usr to $(HOST_DIR), everything keeps on working. This is a mechanical change with git grep -l '\$(HOST_DIR)/usr' | xargs sed -i 's%\(prefix\|PREFIX\)=\("\?\)\$(HOST_DIR)/usr%\1=\2$(HOST_DIR)%g' Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* gcc-final: things are no longer installed in $(HOST_DIR)/usrArnout Vandecappelle2017-07-051-7/+7
| | | | | | | | | Since things are no longer installed in $(HOST_DIR)/usr, the callers should also not refer to it. Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Reviewed-by: Romain Naour <romain.naour@smile.fr> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* package: remove consecutive empty linesRicardo Martincoski2017-04-061-1/+0
| | | | | | | | | | | Occurrences were searched using [1]: check-package --include-only ConsecutiveEmptyLines $(find * -type f) and manually removed. [1] http://patchwork.ozlabs.org/patch/729666/ Signed-off-by: Ricardo Martincoski <ricardo.martincoski@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* package/gcc: use the Xtensa variablesYann E. MORIN2017-03-261-1/+1
| | | | | | | | | ... instead of re-computing them over-and-over-again. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Max Filippov <jcmvbkbc@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain/wrapper: fix 'reinstall'Jérôme Pouiller2016-10-241-1/+2
| | | | | | | | | | toolchain-wrapper was not reinstalled. So rules toolchain-external-reinstall, gcc-initial-reinstall, gcc-final-reinstall didn't work as expected. In add, normalize variable name: s/TOOLCHAIN_BUILD_WRAPPER/TOOLCHAIN_WRAPPER_BUILD/ Signed-off-by: Jérôme Pouiller <jezz@sysmic.org> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* gcc: remove deprecated 4.7.xArnout Vandecappelle2016-10-151-12/+0
| | | | | | | We will remove BR2_DEPRECATED, so remove this deprecated option. Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* gcc/gcc-final: Disable libcilkrts when using static libsFloris Bos2016-09-081-1/+2
| | | | | | | | | | | | | | Disable libcilkrts when building static, as there is no static version: https://software.intel.com/en-us/articles/intel-cilk-plus-runtime-library-libcilkrts-can-only-be-linked-dynamically/ Fixes the following toolchain build error when building for i386 and BR2_STATIC_LIBS=y + BR2_TOOLCHAIN_BUILDROOT_CXX=y is set: ../../../libcilkrts/runtime/sysdep-unix.c:603:19: fatal error: dlfcn.h: No such file or directory Signed-off-by: Floris Bos <bos@je-eigen-domein.nl> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* bfin: fix issues with internal toolchain, re-enable C++ supportWaldemar Brodkorb2016-08-201-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The three patches allow to compile applications using TLS emulation from libgcc or C++ applications. The patches 892-libgcc-mkmap-symver-support-skip_underscore.patch and 893-libgcc-config-bfin-use-the-generic-linker-version-in.patch fixes how libgcc is generated, by making the necessary libgcc symbols declared "GLOBAL", and therefore visible outside of libgcc. This fixes a large number of undefined reference issues (for either C++ applications or applications using TLS emulation). This was reported as gcc PR74748. The patch 894-libgcc-fix-DWARF-compilation-with-FDPIC-targets.patch allows to build DWARF in FDPIC mode. This patch replaces the older 892-disable-dwarf-bfin.patch, as instead of disabling DWARF support, it fixes it. This was reported as gcc PR68468. In order to get C++ working without unresolved symbols, we also need to disable symbol versioning (--disable-symvers). This is a remaining issue in gcc which will be investigated at a later point. Since this commit fixes C++ support in Blackfin, it re-enables the selection of C++ support for this architecture. Fixes: (alsa-lib emutls) http://autobuild.buildroot.net/results/8544ce58d75820666579db93a25ca5656a8efa8e/ (cairo emutls) http://autobuild.buildroot.net/results/88b02a5dd5408318941ccbfcea0a9cbaa331500a/ (audiofile c++) http://autobuild.buildroot.net/results/394e530c5dcd9ccb590eb151aeaadb37d11e0e39/ (assimp c++) http://autobuild.buildroot.net/results/01f4be126c2d786a5ad7f220c2cf60539888a480/ (bellagio c++) http://autobuild.buildroot.net/results/ada/ada44228bf13ec05382275bd6571396f5ba2b1f7/ Signed-off-by: Waldemar Brodkorb <wbx@openadk.org> Tested-by: Waldemar Brodkorb <wbx@openadk.org> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* package/gcc: fix fortran supportSamuel Martin2016-07-031-0/+4
| | | | | | | | | | | | Fortran depends on libquadmath when available, make the buildroot toolchain option depends on this new hidden symbol, [Vincent: only do "HOST_GCC_FINAL_USR_LIBS += libquadmath" for i386 and x86_64, otherwise it will fail saying "libquadmath.a: file not found"] 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>
* gcc: remove occurrence of eglibcThomas Petazzoni2016-06-281-1/+1
| | | | | | | Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Reviewed-by: Romain Naour <romain.naour@gmail.com> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* Replace (e)glibc by glibcThomas Petazzoni2016-06-281-1/+1
| | | | | | | | | | | | | | | | 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>
* toolchain: add coldfire supportWaldemar Brodkorb2016-04-301-0/+9
| | | | | | | | Add support for m68k/coldfire. A gcc patch is required to avoid gcc ICE. Signed-off-by: Waldemar Brodkorb <wbx@openadk.org> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* Revert "gcc/gcc-final: pass TARGET_ABI flags to configure with ↵Max Filippov2016-03-151-4/+0
| | | | | | | | | | | | | | --enable-cxx-flags" This reverts commit 2dcab526a97d1dbcb73c3cd578e5bf2853853a10. Now that gcc correctly propagates CXXFLAGS_FOR_TARGET for libstdc++ build this is no longer needed. Signed-off-by: Max Filippov <jcmvbkbc@gmail.com> Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* Merge branch 'next'Peter Korsgaard2015-12-011-0/+9
|\ | | | | | | Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
| * package/gcc: comment on why we override the generic configure commandsYann E. MORIN2015-11-231-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The explanations given in the commit log of 7d6c79 (Compile static versions of gcc libraries) do not explain why we have to provide custom configure commands, instead of just adding --enable-static to the configure options. Add a comment in the code that explains why that is so. Add a pointer to the ML archives with the explanations, too. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: Jérôme Pouiller <jezz@sysmic.org> Acked-by: Jérôme Pouiller <jezz@sysmic.org> Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* | gcc-final: hard link TARGET-cc -> TARGET-gccSteven Noonan2015-11-081-1/+1
|/ | | | | | | | | | | | | | | | | | | | | | Doing a symlink results in incorrect behavior: $ x86_64-buildroot-linux-gnux32-cc --version ccache: error: execv of [...]/x86_64-buildroot-linux-gnux32-cc.br_real.br_real failed: No such file or directory $ x86_64-buildroot-linux-gnux32-gcc --version x86_64-buildroot-linux-gnux32-gcc.br_real (Buildroot 2015.11-git-00965-g8d89653-dirty) 5.2.0 Copyright (C) 2015 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Note the double .br_real on the invocation by toolchain-wrapper. [Thomas: use 'ln -f' instead of 'cp -l', as suggested by Arnout.] Signed-off-by: Steven Noonan <steven@uplinklabs.net> Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* gcc: use <pkg>_EXCLUDES, not <pkg>_TAR_EXCLUDESThomas Petazzoni2015-11-041-1/+1
| | | | | | | | | | | As reported by Steven Noonan, the variable recently introduced in the package infrastructure to exclude certain parts of an archive from being extracted is <pkg>_EXCLUDES, not <pkg>_TAR_EXCLUDES. However, the gcc code was incorrectly using <pkg>_TAR_EXCLUDES. This commit fixes that. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Reported-by: Steven Noonan <steven@uplinklabs.net>
* package/gcc: use generic extract commandsYann E. MORIN2015-11-031-1/+2
| | | | | | | | | | Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: Vicente Olivert Riera <Vincent.Riera@imgtec.com> Reviewed-by: Romain Naour <romain.naour@openwide.fr> Reviewed-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com> Tested-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* gcc: pass explicit gcc_cv_libc_provides_ssp also to gcc-finalThomas Petazzoni2015-10-181-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | During the gcc-initial build, we already pass gcc_cv_libc_provides_ssp=yes explicitly when SSP support will be available in the C library: at this point in time the C library is not yet built, so gcc cannot detect if it will support SSP or not. However, it turns out that there are some situations for which it is also useful to tell gcc explicitly whether the SSP support is available or not: the gcc logic to decide whether uClibc has SSP support or not is broken since uClibc-ng bumped the glibc version it pretends to be. So, this commit makes sure that we explicitly pass gcc_cv_libc_provides_ssp both to gcc-initial and gcc-final, and that we're always passing either 'yes' or 'no'. Fixes: http://autobuild.buildroot.org/results/778/778e6309ba834cc70f8243a4f6c664c0bcaeb7c5/ Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* gcc: remove unsafe patch check (poison system dirs) patchArnout Vandecappelle2015-10-041-1/+0
| | | | | | | | | | | | | | Now that the calls to gcc always pass through the toolchain wrapper, it is no longer necessary to patch gcc to support poisoning. This does have the disadvantage that there is no unsafe path check for libc, libgcc and libstdc++ (all of these are built before the wrapper exists). But we can assume that the toolchain components themselves should be pretty safe. Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Reviewed-by: Romain Naour <romain.naour@openwide.fr> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* gcc: use toolchain wrapperArnout Vandecappelle2015-10-041-8/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We have a toolchain wrapper for external toolchain, but it is also beneficial for internal toolchains, for the following reasons: 1. It can make sure that BR2_TARGET_OPTIMIZATION is passed to the compiler even if a package's build system doesn't honor CFLAGS. 2. It allows us to do the unsafe path check (i.e. -I/usr/include) without patching gcc. 3. It makes it simpler to implement building each package with a separate staging directory (per-package staging). 4. It makes it simpler to implement a compiler hash check for ccache. The wrapper is reused from the external toolchain. A third CROSS_PATH_ option is added to the wrapper: in this case, the real executable is in the same directory, with the extension .real. The creation of the simple symlinks is merged with the creation of the wrapper symlinks, otherwise part of the -gcc-ar handling logic would have to be repeated. The complex case-condition could be refactored with the one for the external toolchain, but then it becomes even more complex because they each have special corner cases. For example, the internal toolchain has to handle *.real to avoid creating an extra indirection after host-gcc-{final,initial}-rebuild. Instead of creating the .real files, it would also have been possible to install the internal toolchain in $(HOST_DIR)/opt, similar to what we do for the external toolchain. However, then we would also have to copy things to the sysroot and do more of the magic that the external toolchain is doing. So keeping it in $(HOST_DIR)/usr/bin is much simpler. Note that gcc-initial has to be wrapped as well, because it is used for building libc and we want to apply the same magic when building libc. Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Cc: Fabio Porcedda <fabio.porcedda@gmail.com> Cc: Jérôme Oufella <jerome.oufella@savoirfairelinux.com> Reviewed-by: Romain Naour <romain.naour@openwide.fr> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* host-gcc-final: don't install a potentially dead symlinkArnout Vandecappelle2015-09-201-3/+0
| | | | | | | | | | | | | | | | | | gcc used to be installed into $(HOST_DIR)/usr/$(GNU_TARGET_NAME) but since gcc 4.9 this is no longer the case. Therefore, the cc -> gcc symlink that is created in that we create in that directory is dead. There don't seem to have been any problems due to the missing gcc and cc in $(HOST_DIR)/usr/$(GNU_TARGET_NAME), things seems to build fine without it. The cc -> gcc symlinks in general should not be needed anyway, since we always pass the appropriate CC variable to the package build system. Therefore, let's remove the cc -> gcc symlink in $(HOST_DIR)/usr/$(GNU_TARGET_NAME) - also for pre-4.9 gcc versions. Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* gcc: add support for fortranDavid Kessler2015-07-191-0/+5
| | | | | Signed-off-by: David Kessler <DJKessler@me.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* gcc/gcc-final: install libatomic via HOST_GCC_FINAL_GCC_LIB_DIRGustavo Zacarias2015-06-061-2/+2
| | | | | | | Otherwise it's a no-op for sh4. Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* gcc/gcc-final: pass TARGET_ABI flags to configure with --enable-cxx-flagsMax Filippov2015-05-311-0/+4
| | | | | | | | | | | | | | | libstdc++ is in all regards a normal library, it needs to be built with TARGET_ABI flags, otherwise linking it with other C++ code may fail. Pass TARGET_ABI flags to gcc-final configure script in the --enable-cxx-flags parameter. Fixes: http://autobuild.buildroot.net/results/81a3bca5cbcf789c7ce1aa221a6a4154dd7c3917/ http://autobuild.buildroot.net/results/4943b214c29951ecc7af0a1f360b6454485c0b9b/ Signed-off-by: Max Filippov <jcmvbkbc@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* sh4: fix toolchain creationWaldemar Brodkorb2015-05-031-5/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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)
* package/gcc: add hashesYann E. MORIN2015-04-231-0/+1
| | | | | | | | | | 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> Tested-by: Gustavo Zacarias <gustavo@zacarias.com.ar> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* gcc-final: install libatomicGustavo Zacarias2015-04-191-0/+9
| | | | | | | | | | | 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. Target size growth is ~15 KiB for ARM. Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* package infra: drop non-lfs supportGustavo Zacarias2015-04-011-1/+0
| | | | | | | | Now that largefile is mandatory remove support for non-lfs tweaks/variables in the package infra and the gcc build. Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* Rename BR2_PREFER_STATIC_LIB to BR2_STATIC_LIBSThomas Petazzoni2014-12-111-2/+2
| | | | | | | | | | | | | | | | | | | | | | | 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>
* gcc: enable poison system directories optionThomas Petazzoni2014-12-111-0/+1
| | | | | | | | | | This commit enables the poison system directories option, which is now available thanks to the gcc patches that have been added. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Acked-by: Romain Naour <romain.naour@openwide.fr> Tested-by: Romain Naour <romain.naour@openwide.fr>
* package/gcc/mpfr: remove deprecated featuresGustavo Zacarias2014-12-011-10/+0
| | | | | | | | Remove the fortran and objective C language support since these have been deprecated since more than a year ago. Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* package: indentation cleanupJerzy Grzegorek2014-10-261-11/+11
| | | | | Signed-off-by: Jerzy Grzegorek <jerzy.grzegorek@trzebnica.net> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* .mk files: bulk aligment and whitespace cleanup of assignmentsThomas De Schampheleire2014-10-071-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The Buildroot coding style defines one space around make assignments and does not align the assignment symbols. This patch does a bulk fix of offending packages. The package infrastructures (or more in general assignments to calculated variable names, like $(2)_FOO) are not touched. Alignment of line continuation characters (\) is kept as-is. The sed command used to do this replacement is: find * -name "*.mk" | xargs sed -i \ -e 's#^\([A-Z0-9a-z_]\+\)\s*\([?:+]\?=\)\s*$#\1 \2#' -e 's#^\([A-Z0-9a-z_]\+\)\s*\([?:+]\?=\)\s*\([^\\]\+\)$#\1 \2 \3#' -e 's#^\([A-Z0-9a-z_]\+\)\s*\([?:+]\?=\)\s*\([^\\ \t]\+\s*\\\)\s*$#\1 \2 \3#' -e 's#^\([A-Z0-9a-z_]\+\)\s*\([?:+]\?=\)\(\s*\\\)#\1 \2\3#' Brief explanation of this command: ^\([A-Z0-9a-z_]\+\) a regular variable at the beginning of the line \([?:+]\?=\) any assignment character =, :=, ?=, += \([^\\]\+\) any string not containing a line continuation \([^\\ \t]\+\s*\\\) string, optional whitespace, followed by a line continuation character \(\s*\\\) optional whitespace, followed by a line continuation character Hence, the first subexpression handles empty assignments, the second handles regular assignments, the third handles regular assignments with line continuation, and the fourth empty assignments with line continuation. This expression was tested on following test text: (initial tab not included) FOO = spaces before FOO = spaces before and after FOO = tab before FOO = tab and spaces before FOO = tab after FOO = tab and spaces after FOO = spaces and tab after FOO = \ FOO = bar \ FOO = bar space \ FOO = \ GENIMAGE_DEPENDENCIES = host-pkgconf libconfuse FOO += spaces before FOO ?= spaces before and after FOO := FOO = FOO = FOO = FOO = $(MAKE1) CROSS_COMPILE=$(TARGET_CROSS) -C AT91BOOTSTRAP3_DEFCONFIG = \ AXEL_DISABLE_I18N=--i18n=0 After this bulk change, following manual fixups were done: - fix line continuation alignment in cegui06 and spice (the sed expression leaves the number of whitespace between the value and line continuation character intact, but the whitespace before that could have changed, causing misalignment. - qt5base was reverted, as this package uses extensive alignment which actually makes the code more readable. Finally, the end result was manually reviewed. Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com> Cc: Yann E. Morin <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* packages: rename FOO_CONF_OPT into FOO_CONF_OPTSThomas De Schampheleire2014-10-041-8/+8
| | | | | | | | | | | | To be consistent with the recent change of FOO_MAKE_OPT into FOO_MAKE_OPTS, make the same change for FOO_CONF_OPT. Sed command used: find * -type f | xargs sed -i 's#_CONF_OPT\>#&S#g' Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* gcc-final: disable shared build for staticGustavo Zacarias2014-07-301-5/+24
| | | | | | | | | | | | | | Disable shared build for host-gcc-final when building for static targets. We really want static or shared, there's no such thing as "preferring static" since we can't choose with any degree of granularity for which packages. And it confuses linking scripts having both available at the same time. Fixes: http://autobuild.buildroot.net/results/c54/c54bdf88eff6d60c7001cb0e2cb6792cc75178db/ [Thomas: slightly amend the commit to factorize the installation of static libraries.] Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* gcc: fix xtensa overlay applicationMax Filippov2014-02-271-1/+1
| | | | | | | | | | | | | | | gcc build scripts use wrong variable name to specify xtensa overlay application command. As a result gcc is built with the default overlay, which leads to obscure failures later in the build process. xtensa toolchain needs an additional configuration for a specific core variant we're building for. This configuration is called 'overlay' and is an archive with files for binutils, gcc and gdb that replace corresponding files in toolchain components. Signed-off-by: Max Filippov <jcmvbkbc@gmail.com> Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* Strip *.so* and not only executable filesThomas Petazzoni2014-02-041-3/+1
| | | | | | | | | | | | | | | | | | | | Our current stripping strategy requires that shared libraries have the executable permission. However, this is by far not something recognized as a standard behavior: Debian/Ubuntu distributions for example do not have executable permissions on their libraries. Therefore, pushing to upstream packages fixes that add the executable permissions is not easy. As a result, this commit improves the stripping logic so that it not only strips the files that are executable, but also the ones that match '*.so*', which should match both the shared libraries and the dlopen()'able plugins, as long as they have a .so extension. Thanks to this addition, a number of manual "chmod +x" done by various packages can be removed. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* Rename BUILDROOT_LIBC to BR_LIBCPeter Korsgaard2014-02-041-1/+1
| | | | | | | No functional change, but internal variables should be name BR_foo, not BUILDROOT_foo (I think ..). Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* Compile static versions of gcc librariesJérôme Pouiller2014-01-111-0/+17
| | | | | | | | | | | | | | | | | Since default configure options for host packages include --disable-static, gcc was not configured to build static version of its libraries (libgcc.a, libstdc++.a, ...). This patch replace --disable-static by --enable-static in configure command. Notice some options was removed sinces they was ignored by gcc configure script. Once it was compiled, this commit takes care to copy static libraries to $STAGING Signed-off-by: Jérôme Pouiller <jezz@sysmic.org> Tested-by: Baruch Siach <baruch@tkos.co.il> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* gcc: provide option to enable mudflap supportThomas Petazzoni2013-09-151-0/+8
| | | | | | | | | | | | | | | | | | The mudflap library is only useful if one uses the -fmudflap gcc option to do more checks on pointers/arrays. This commit adds an option to enable/disable mudflap support at the gcc level. By default, it is disabled, which saves a little bit of build time compared to the default of gcc which consists in enabling mudflap support. Since mudflap is now disabled by default, and ensured to never be enabled on platforms where it is not available, some gcc.mk code that was used to disable mudflap in problematic configurations can be removed. Whether -fmudflap is used when building is left to the user. [Peter: tweak commit text, fix white space] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* gcc/gcc-final: use the common HOST_GCC_CONFIGURE_SYMLINK macroThomas Petazzoni2013-09-151-6/+1
| | | | | | | | | | | | | | Each stage of the gcc build needs to make a small dance before the configuration step to create a build sub-directory and a symbolic link to the configure script. The common gcc.mk had a HOST_GCC_CONFIGURE_SYMLINK already used by the gcc-initial and gcc-intermediate steps, but the gcc-final step wasn't using it. This commit fixes this inconsistency, and therefore removes the HOST_GCC_FINAL_CONFIGURE_SYMLINK macro. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* toolchain: add support for glibcThomas Petazzoni2013-09-151-2/+2
| | | | | | | | | | | | | The support for eglibc 2.17 was added to the internal toolchain backend for 2013.08. This commit now adds glibc 2.18 support to the internal toolchain backend. Since the building procedure is very similar to the one of eglibc, we have renamed the 'eglibc' package to 'glibc', and made it capable of handling either glibc or eglibc. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
OpenPOWER on IntegriCloud