summaryrefslogtreecommitdiffstats
path: root/package/gcc
Commit message (Collapse)AuthorAgeFilesLines
* gcc: Don't mess with test-suite exclusionAlexey Brodkin2018-11-034-379/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We used to exclude GCC's test-suite for quite some time now mostly for the sake of space reduction. But: 1. On each GCC version bump we need to revise that functionality as we need to accommodate changes in GCC sources and this couldn't be automated 2. The space reduction is significant, but not huge. The two test suites together take up 290MB, out of 660MB total for GCC (each of them times two because there is the -initial and -final copy). However, whenever we build GCC, we also have kernel headers (about 900MB) and a libc (e.g. glibc is 250MB). So at best, it saves less than 20%. 3. It doesn't really save on build time either. Below are timings of 2 runs on my laptop: a) Vanilla master: --------------------->8--------------------- time make host-gcc-final real 7m15.114s user 19m36.611s sys 2m26.927s --------------------->8--------------------- b) master + testsuite: --------------------->8--------------------- time make host-gcc-final real 7m59.860s user 20m21.668s sys 2m36.618s --------------------->8--------------------- From figures above it's seen that difference is ~45 seconds or ~10%. On both host-gcc-initial and -final we may save ~1.5 minutes... but these are not the only components we build and compared to a total toolchain build time IMHO it is not that much time to care especially traded for maintenance costs on GCC version bumps. Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com> Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Cc: Bernd Kuhls <bernd.kuhls@t-online.de> Cc: Romain Naour <romain.naour@gmail.com> Cc: Peter Korsgaard <peter@korsgaard.com> Cc: Arnout Vandecappelle <arnout@mind.be> [Arnout: add explanation about size impact.] Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
* package/gcc: remove BR2_GCC_SUPPORTS_FINEGRAINEDMTUNEThomas Petazzoni2018-10-213-15/+3
| | | | | | | | | | | | | Since commit 8f8e9162fae5fdc1788dcf33f02b20ddaa5e6846 ("package/gcc: do not mourn avr32 for too long..."), in which we dropped AVR32 support, the BR2_GCC_SUPPORTS_FINEGRAINEDMTUNE is always 'y'. Therefore, it is totally useless to keep this option around, and this commit removes it, making the corresponding code unconditional along the way. 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: introduce BR2_GCC_SUPPORTS_LIBCILKRTSThomas Petazzoni2018-10-212-2/+16
| | | | | | | | | | | | | | | | 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>
* arch: drop BR2_GCC_TARGET_CPU_REVISION optionThomas Petazzoni2018-10-011-4/+0
| | | | | | | | | | | In commit 325bb37942f8d3826dab9dc6e88b25234e67a2cf, support for the Blackfin architecture was removed. This was our only use of BR2_GCC_TARGET_CPU_REVISION, and since this config option somewhat complicates the calculation of the --with-cpu/-mcpu option values, let's drop it. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* arch: allow GCC target options to be optionally overwrittenMark Corbin2018-09-231-15/+12
| | | | | | | | | | | | | The BR2_GCC_TARGET_* configuration variables are copied to corresponding GCC_TARGET_* variables which may then be optionally modified or overwritten by architecture specific makefiles. All makefiles must use the new GCC_TARGET_* variables instead of the BR2_GCC_TARGET_* versions. Signed-off-by: Mark Corbin <mark.corbin@embecosm.com> [Thomas: simplify include of arch/arch.mk] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* package/gcc: glibc >= 2.27 needs gcc >= 5 on aarch64Romain Naour2018-09-161-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | With the following defconfig: BR2_aarch64=y BR2_BINUTILS_VERSION_2_28_X=y BR2_GCC_VERSION_4_9_X=y BR2_TOOLCHAIN_BUILDROOT_CXX=y The build fail with this error: In file included from ../sysdeps/ieee754/flt-32/math_config.h:23:0, from ../sysdeps/ieee754/flt-32/e_expf.c:29: ../sysdeps/aarch64/fpu/math_private.h: In function 'roundtoint': ../sysdeps/aarch64/fpu/math_private.h:311:3: error: implicit declaration of function 'vrndn_f64' [-Werror=implicit-function-declaration] return vget_lane_f64 (vrndn_f64 (vld1_f64 (&x)), 0); ^ cc1: all warnings being treated as errors vrndn_f64 function has been introduced in glibc code since version 2.27 [1]. So we can't build a glibc based toolchain with gcc 4.9 anymore. Add a new dependency in the toolchain infra to avoid selecting glibc toolchain using gcc 4.9. [1] https://sourceware.org/git/?p=glibc.git;a=commit;h=72aa623345ada1276ed89dbc00fdff9639cb8eaf Signed-off-by: Romain Naour <romain.naour@gmail.com> Cc: Arnout Vandecappelle <arnout@mind.be> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* Merge branch 'next'Peter Korsgaard2018-09-075-0/+287
|\ | | | | | | Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
| * package/gcc: fix build of gcc-4.9.4 with glibc-2.28Bernd Kuhls2018-08-141-0/+71
| | | | | | | | | | Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
| * package/gcc: fix build of gcc-5.5.0 with glibc-2.28Bernd Kuhls2018-08-141-0/+72
| | | | | | | | | | Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
| * package/gcc: fix build of gcc-6.4.0 with glibc-2.28Bernd Kuhls2018-08-141-0/+72
| | | | | | | | | | Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
| * package/gcc: fix build of gcc-7.3.0 with glibc-2.28Bernd Kuhls2018-08-141-0/+72
| | | | | | | | | | Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
| * package/gcc: renumber patchBernd Kuhls2018-08-141-0/+0
| | | | | | | | | | Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* | package/gcc: xtensa: fix atomic NAND code generationMax Filippov2018-09-053-0/+117
|/ | | | | | | | | xtensa gcc incorrectly generates code for atomic NAND operation as ~a1 & a2 instead of ~(a1 & a2). Fix that. Backported from: r264087 Signed-off-by: Max Filippov <jcmvbkbc@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* gcc: Fix building on ppc64le GCC 8 hostJoel Stanley2018-07-312-0/+78
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When building on a ppc64le host we see this error: build/genmatch --gimple ../../gcc/match.pd \ > tmp-gimple-match.c ../../gcc/match.pd:120:1 error: expected (, got NAME negative value by 0 gives -0, not +0. */ This was reported upstream[1] and fixed on the GCC 6 [2] and GCC 7 [3] branches: Backport from mainline 2018-01-10 Kelvin Nilsen <kelvin@gcc.gnu.org> * lex.c (search_line_fast): Remove illegal coercion of an unaligned pointer value to vector pointer type and replace with use of __builtin_vec_vsx_ld () built-in function, which operates on unaligned pointer values. The patches included in Buildroot contain just the code changes, and not the changelog, to make it easer to manage backporting. Tested on Ubuntu Cosmic ppc64le. [1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86162 [2] https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=261621 [3] https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=262243 Signed-off-by: Joel Stanley <joel@jms.id.au> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* package/gcc: bump to version 8.2.0Romain Naour2018-07-278-764/+3
| | | | | | | Remove upstream patches. Signed-off-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* package/gcc: Backport code generation fix for ARC700Alexey Brodkin2018-07-171-0/+355
| | | | | | | | | | | | | | | | | Fixes assembler failure when compiling for ARC700 only: ------------------------>8--------------------- {standard input}: Assembler messages: {standard input}:213: Error: operand out of range (128 is not between -128 and 127) make[2]: *** [scripts/Makefile.build:317: net/ipv4/xfrm4_mode_tunnel.o] Error 1 ------------------------>8--------------------- This is an upstream fix scheduled for the next release, see https://github.com/gcc-mirror/gcc/commit/5afc07eeb18fb7dd351ac981367bce721ca22af3 Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com> Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* package/gcc: backport arm acle bugfix 81497Gaël PORTAY2018-06-282-0/+629
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The compiler g++ reports an error when the header arm_acle.h is included from version 7. This patch backports the bugfix upstreamed [1] for gcc-7 and gcc-8. Fixes: In file included from ../../include/QtCore/5.10.1/QtCore/private/../../../../../src/corelib/tools/qsimd_p.h:333, from ../../include/QtCore/5.10.1/QtCore/private/qsimd_p.h:1, from global/qlogging.cpp:58: /home/gportay/src/buildroot/output/host/lib/gcc/arm-buildroot-linux-gnueabihf/8.1.0/include/arm_acle.h: In function ‘void __arm_ldc(unsigned int, unsigned int, const void*)’: /home/gportay/src/buildroot/output/host/lib/gcc/arm-buildroot-linux-gnueabihf/8.1.0/include/arm_acle.h:48:46: error: invalid conversion from ‘const void*’ to ‘const int*’ [-fpermissive] return __builtin_arm_ldc (__coproc, __CRd, __p); ^~~ <built-in>: note: initializing argument 3 of ‘void __builtin_arm_ldc(unsigned int, unsigned int, const int*)’ ... Makefile:196: recipe for target 'sub-corelib-make_first' failed make[3]: *** [sub-corelib-make_first] Error 2 Makefile:48: recipe for target 'sub-src-make_first' failed make[2]: *** [sub-src-make_first] Error 2 package/pkg-generic.mk:229: recipe for target '/home/gportay/src/buildroot/output/build/qt5base-5.10.1/.stamp_built' failed make[1]: *** [/home/gportay/src/buildroot/output/build/qt5base-5.10.1/.stamp_built] Error 2 Makefile:16: recipe for target '_all' failed make: *** [_all] Error 2 [1]: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81497 Signed-off-by: Gaël PORTAY <gael.portay@savoirfairelinux.com> Reviewed-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* toolchain: bump ARC tools to arc-2018.03 releaseEvgeniy Didin2018-06-255-2/+2
| | | | | | | | | | | | | | | | | | | This commit finally bumps ARC tools to the most recent arc-2018.03 release version. ARC GNU tools of version arc-2018.03 bring some quite significant changes like: * Binutils v2.29.51 with additional ARC patches * GCC 7.3.1 with additional ARC patches * GDB 8.0.50 with ARC patches More information on this release could be found here: https://github.com/foss-for-synopsys-dwc-arc-processors/toolchain/releases/tag/arc-2018.03-release Signed-off-by: Evgeniy Didin <didin@synopsys.com> Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Cc: arc-buildroot@synopsys.com Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* gcc: fix uclibc runtime issue with gcc-8 for xtensaMax Filippov2018-06-203-0/+303
| | | | | | | | | | | | | | | | | | | | | | | | gcc-8.1 for xtensa miscompiles uClibc dynamic linker due to gcc PR target/65416. The build completes successfully, but the binary is non-functional because the following fragment in the _dl_get_ready_to_run in ld-uClibc.so overwrites register spill area on stack causing register corruption in the previous call frame and a subsequent crash: 419f: f0c1b2 addi a11, a1, -16 41a2: 1ba9 s32i.n a10, a11, 4 41a4: 0bc9 s32i.n a12, a11, 0 41a6: 5127f2 l32i a15, a7, 0x144 41a9: 1765b2 s32i a11, a5, 92 41ac: 4e2782 l32i a8, a7, 0x138 41af: 146af2 s32i a15, a10, 80 41b2: 001b10 movsp a1, a11 The crash terminates the init process and causes kernel panic. The fix prevents reordering of movsp opcode and any access to the stack frame memory and is applicable to all existing gcc versions. Signed-off-by: Max Filippov <jcmvbkbc@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* package/gcc: switch to gcc 6.x as the defaultRomain Naour2018-05-301-1/+1
| | | | | | | | | | | | | | Even if gcc 6 is still maintained for some time (gcc 6.5 is pending), switch to gcc 7.x since it has been released since 2017-05-02 and gcc 8.x is available since 2018-05-02. We have been having toolchains in the autobuilders with gcc 7.x for a while, so the vast majority of the problems should have already been solved. Signed-off-by: Romain Naour <romain.naour@gmail.com> Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* package/gcc: add support for gcc 8.1.0Romain Naour2018-05-306-5/+238
| | | | | | | | | | | | | | | | | | | | | | | | Remove 0860-cilk-fix-build-without-wchar.patch since cilk has been removed from gcc. Rebase 0900-remove-selftests.patch on gcc 8.1.0 Remove upstream patches 0001-m68k-coldfire-pr68467.patch and 0892-microblaze-Revert.patch. Use bz2 release tarball only for gcc 4.9 since all other version now use xz tarball. Runtime tested on x86_64 with binutils 2.30, gcc 8.1.0, kernel headers 4.14 and glibc 2.27. Buildtime tested with glibc with all supported architectures. Buildtime tested on x86_64 with musl and uClibc-ng Signed-off-by: Romain Naour <romain.naour@gmail.com> Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* toolchain: Bump ARC tools to arc-2018.03-rc2Evgeniy Didin2018-05-265-2/+2
| | | | | | | | | | | | | | | | | This commit bumps ARC toolchain to arc-2018.03-rc2, which includes significant changes since arc-2018.03-rc1. We want to test how new toolchain-rc2 builds packages, so we can make fixes before release of toolcain. This makes us closer to toolchain release which will be in a few weeks. Please note that it is a release candidate and it might contain some breakages, please don't use it for production builds. Signed-off-by: Evgeniy Didin <didin@synopsys.com> Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Cc: arc-buildroot@synopsys.com Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* gcc: remove Blackfin patchesThomas Petazzoni2018-04-154-2080/+0
| | | | Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* toolchain, gcc, gdb, binutils, uclibc: remove Blackfin codeThomas Petazzoni2018-04-153-52/+0
| | | | | | | This commit removes Blackfin related code from all toolchain code and components. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* toolchain: Bump ARC tools to arc-2018.03-rc1Evgeniy Didin2018-04-126-51/+2
| | | | | | | | | | | | | | | | | | | | This commit bumps ARC toolchain to arc-2018.03-rc1. We want to test how new toolchain-rc1 builds packages, so we can make fixes before release of toolcain. ARC GNU tools of version arc-2018.03-rc1 bring some quite significant changes like: * Binutils v2.29.51 with additional ARC patches * GCC 7.3.1 with additional ARC patches Please note that it is a release candidate and it might contain some breakages, please don't use it for production builds. Signed-off-by: Evgeniy Didin <didin@synopsys.com> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: Alexey Brodkin <abrodkin@synopsys.com> Cc: arc-buildroot@synopsys.com Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* gcc: fix HOST_GCC_COMMON_WRAPPER_TARGET_FLOAT_ABI typosThomas Petazzoni2018-04-091-2/+2
| | | | | | | | | | | | | The HOST_GCC_COMMON_WRAPPER_TARGET_FLOAT_ABI variable was incorrectly used as HOST_GCC_COMMON_WRAPPER_TARGET_FLOATABI_, which would always be empty. In practice, this block of code is only used on Blackfin (which has BR2_GCC_ARCH_HAS_CONFIGURABLE_DEFAULTS unset) and Blackfin doesn't use float-abi, so this block of code is in fact useless. But even if it's useless, it's better to have it without typos. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* package: share downloaded files for big packagesYann E. MORIN2018-04-022-0/+7
| | | | | | | | | | | | 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>
* packages: use new $($PKG)_DL_DIR) variableMaxime Hadjinlian2018-04-021-1/+1
| | | | | | | | | | | | | | | | | | | | | Instead of DL_DIR, the package should now use $(PKG)_DL_DIR to ease the transition into a new directory structure for DL_DIR. This commit has been generated with the following scripts: for i in $(find . -iname "*.mk"); do if ! grep -q "\$(DL_DIR)" ${i}; then continue fi pkg_name="$(basename $(dirname ${i}))" [ "${pkg_name}" = "package" ] && continue raw_pkg_name=$(echo ${pkg_name} | tr [a-z] [A-Z] | tr '-' '_') pkg_dl_dir="${raw_pkg_name}_DL_DIR" sed -i "s/\$(DL_DIR)/\$($pkg_dl_dir)/" ${i} done Signed-off-by: Maxime Hadjinlian <maxime.hadjinlian@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* gcc: add the real gcc bugfix for m68k from upstreamWaldemar Brodkorb2018-02-258-84/+192
| | | | | Signed-off-by: Waldemar Brodkorb <wbx@openadk.org> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* gcc: or1k: use 20170218 tag instead of branchPeter Korsgaard2018-02-057-2/+2
| | | | | | | | | | | | | | | | As pointed out by Joel Stanley: https://patchwork.ozlabs.org/patch/863011/ Github now longer provides the exact same tarball for the or1k musl-5.4.0 tarball, breaking the build. Even more, musl-5.4.0 is the name of a git branch, not a tag. Fix both problems by changing to the or1k-musl-5.4.0-20170218 tag, which points to the exact same git commit. Signed-off-by: Peter Korsgaard <peter@korsgaard.com> Tested-by: Joel Stanley <joel@jms.id.au> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* package/gcc: bump 7.x series to 7.3.0Romain Naour2018-01-2810-85/+3
| | | | | | | | | | | Remove upstream patches: 0870-xtensa-fix-PR-target-82181.patch 0893-ARC-Configure-script-to-allow-non-uclibc-based-tripl.patch See: https://www.mail-archive.com/gcc@gcc.gnu.org/msg84336.html Signed-off-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* Merge branch 'next'Thomas Petazzoni2017-12-013-22/+63
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This merges the next branch accumulated during the 2017.11 release cycle back into the master branch. A few conflicts had to be resolved: - In the DEVELOPERS file, because Fabrice Fontaine was added as a developer for libupnp in master, and for libupnp18 in next. Resolution is simple: add him for both. - linux/Config.in, because we updated the 4.13.x release used by default in master, while we moved to 4.14 in next. Resolution: use 4.14. - package/libupnp/libupnp.hash: a hash for the license file was added in master, while the package was bumped into next. Resolution: keep the hash for the license file, and keep the hash for the newest version of libupnp. - package/linux-headers/Config.in.host: default version of the kernel headers for 4.13 was bumped to the latest 4.13.x in master, but was changed to 4.14 in next. Resolution: use 4.14. - package/samba4/: samba was bumped to 4.6.11 in master for security reasons, but was bumped to 4.7.3 in next. Resolution: keep 4.7.3. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
| * gcc: allow the selection of upstream GCC 7.x for ARCAlexey Brodkin2017-11-293-2/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Upstream gcc now has support for ARC, as of 7.x, with 7.2 being usable, so let's allow its selection. GCC from Synopsys GitHub still has a lot of fixes and improvements most of which will be a part of the next upstream release but let's see how it goes and if we see vanilla GCC doesn't require way too many back-ported patches we'll be able to get rid of Synopsys GitHub here at all. As of today the only really required back-port is the one for non-uClibc libc. Back-ported from upstream master with help of: -------------------->8-------------------- git format-patch 927c0132251f -1 -- . ':!gcc/ChangeLog' ':!libgcc/ChangeLog' -------------------->8-------------------- Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com> Cc: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: Peter Korsgaard <peter@korsgaard.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
| * arch/mips: inverse the NaN logicYann E. MORIN2017-11-241-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently the possibility to choose the NaN encoding is conditional to having a sufficiently recent gcc version. Which means that the architecture selection depends on the gcc version. But that's opposite to what we've always done in Buildroot: the software versions are conditional to the architecture options. There is nothing we can do about the hardware: it is there, we can't change it, while we can restrict ourselves to using software that is working on said hardware. Thus, we inverse the logic, to move the condition onto the software side: whenever NaN-2008 are selected, we restrict the toolchain selection to at least a gcc-4.9. But now, the option with the NaN type is always set, so we must enclose the code in gcc.mk inside a HAS_NAN_OPTION condition, as is already done for the external toolchain case. 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> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
| * package/gcc: slight cleanup and reorg in remaining arch dependsYann E. MORIN2017-11-241-7/+6
| | | | | | | | | | | | 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>
| * arch/arm: some variants need different gcc versionsYann E. MORIN2017-11-241-5/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Take the conditions currently specified in the gcc version choice. Also, the conditions explained in the commit log for 78c2a9f7 were not all properly applied, especially the a57-a53 combo needs gcc-6, but 78c2a9f7 forgot to add the condition to gcc-4.9. gcc-4.9 was excluded for cortex-a17 and a72, but the CodeSourcery external toolchain, which uses 4.8, was not excluded for those two cores. Now it is. Remove the arch condition from gcc and the external toolchains. 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>
| * arch/mips: some variants need different gcc versionsYann E. MORIN2017-11-241-8/+0
| | | | | | | | | | | | | | | | | | | | | | | | We use the conditions currently expressed in the gcc version choice. We leave the musl vs mips64 conditions in gcc, because the "fault" really is on gcc, which does not recognise the mips64+musl tuples, so the fix lies within gcc, and the current conditions are fitting. 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>
| * arch/bfin: needs gcc >= 6Yann E. MORIN2017-11-241-2/+2
| | | | | | | | | | | | 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>
| * package/gcc: hide versions too old for the current archYann E. MORIN2017-11-241-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Begin the conversion from hard-coded dependencies on architectures, to architecture-specified version requirement, using the newly introduced BR2_ARCH_NEEDS_GCC_AT_LEAST_XXX symbols. Hard-coded dependencies will be removed progressively, as archs are individually converted over to using the new symbols. We do not change the architecture-specific versions for ARC and OpenRISC, because there is no point in doing so for those, as they use special, non-upstream versions anyway. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: Arnout Vandecappelle <arnout@mind.be> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* | fwup: fix for ARC toolchainEvgeniy Didin2017-11-171-0/+49
|/ | | | | | | | | | | | | | | | Building fwup package with ARC toolchain causes internal compiler error. Adding patch for ARC gcc solves this issue. In the next version of toolchain, this problem has already been taken into account. Fixes: http://autobuild.buildroot.net/results/a1b/a1bd5084309ced6c2d1b311617e5d9f0c362557a// http://autobuild.buildroot.net/results/dd3/dd3000bd99d71383ce82cd6b01b543cd9660130e// Signed-off-by: Evgeniy Didin <didin@synopsys.com> Cc: Alexey Brodkin <abrodkin@synopsys.com> Cc: arc-buildroot@synopsys.com Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* toolchain: Bump ARC tools to arc-2017.09 releaseEvgeniy Didin2017-11-036-65/+2
| | | | | | | | | | | | | | | | | | This commit finally bumps ARC tools to the most recent arc-2017.09 release version. ARC GNU tools of version arc-2017.09 bring some quite significant changes like: * Binutils v2.29 with additional ARC patches * GCC 7.1.1 with additional ARC patches * glibc 2.26 with additional ARC patches More information on this release could be found here: https://github.com/foss-for-synopsys-dwc-arc-processors/toolchain/releases/tag/arc-2017.09-release Signed-off-by: Evgeniy Didin <didin@synopsys.com> Cc: Alexey Brodkin <abrodkin@synopsys.com> Cc: arc-buildroot@synopsys.com Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* package/gcc: bump to 5.5.0Romain Naour2017-10-1742-464/+6
| | | | | | | | | | | | | | | | | | Remove xtensa patches included in this release: 872-xtensa-use-unwind-dw2-fde-dip-instead-of-unwind-dw2-.patch 873-xtensa-fix-_Unwind_GetCFA.patch 876-xtensa-Fix-PR-target-78603.patch 877-xtensa-fix-PR-target-82181.patch Remove upstream patch: 942-asan-fix-missing-include-signal-h.patch Remove backported patches for glibc >= 2.26 943-Use-ucontext_t-not-struct-ucontext-in-linux-unwind.h.patch 944-sanitizer-linux.patch Signed-off-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* toolchain: Bump ARC tools to arc-2017.09-rc1Evgeniy Didin2017-10-089-99/+223
| | | | | | | | | | | | | | | | | | | | | | This commit bumps ARC toolchain to arc-2017.09-rc1. The arc-2017.09 series is built on top of upstream GCC 7.1.1 and Binutils 2.29 so please expect all kinds of breakages related to GCC 7.x as we saw earlier with the move from 4.8 to 6.x :) Note patches for both GCC and Binutils were updated with copies from corresponding mainline versions, i.e. "package/gcc/7.2.0" and "package/binutils/2.29". Please note that it is a release candidate and it might contain some breakages, please don't use it for production builds. Signed-off-by: Evgeniy Didin <didin@synopsys.com> Cc: Alexey Brodkin <abrodkin@synopsys.com> Cc: arc-buildroot@synopsys.com Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> [Thomas: drop binutils patch related to the Blackfin architecture.] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* package/gcc: enable float128 on powerpc64le with glibc >= 2.26 toolchainsRomain Naour2017-09-272-0/+12
| | | | | | | | | | | | | | | | | | | | float128 is now required on powerpc64le with glibc >= 2.26 toolchains. Fixes: running configure fragment for sysdeps/gnu running configure fragment for sysdeps/powerpc/powerpc64le checking if [...]powerpc64le-buildroot-linux-gnu-gcc supports binary128 floating point type... no checking if the target machine is at least POWER8... yes configure: error: *** binary128 floating point type (GCC >= 6.2) is required on powerpc64le. In order to prepare the glibc bump to this version, we enable binary128 floating point in gcc. This require at least gcc >= 6.2. Disable gcc 4.x and 5.x for internal toolchain. Signed-off-by: Romain Naour <romain.naour@gmail.com> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
* package/gcc: fix build issue with glibc 2.26Romain Naour2017-09-273-0/+270
| | | | | | | | | | | | | | | | | | | | | | ../../../../libsanitizer/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc: In function ‘int __sanitizer::TracerThread(void*)’: ../../../../libsanitizer/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc:241:22: error: aggregate ‘sigaltstack handler_stack’ has incomplete type and cannot be defined struct sigaltstack handler_stack; ../../../../libsanitizer/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc: In function ‘int __sanitizer::TracerThread(void*)’: ../../../../libsanitizer/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc:276:22: error: aggregate ‘sigaltstack handler_stack’ has incomplete type and cannot be defined struct sigaltstack handler_stack; ^~~~~~~~~~~~~ The fix is already included in gcc 7.2 release [1]. We have to backport it to all older gcc release since it's not included in any stable release yet. [1] https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=72edc2c02f8b4768ad660f46a1c7e2400c0a8e06 Signed-off-by: Romain Naour <romain.naour@gmail.com> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: "Yann E. MORIN" <yann.morin.1998@free.fr> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
* package/gcc: fix build issue with glibc 2.26Romain Naour2017-09-273-0/+574
| | | | | | | | | | | | | | | | | | | In file included from ../../../libgcc/unwind-dw2.c:403:0: ./md-unwind-support.h: In function « aarch64_fallback_frame_state »: ./md-unwind-support.h:58:21: error: field « uc » has incomplete type struct ucontext uc; ^~ The fix is already included in gcc 7.2 release [1]. We have to backport it to all older gcc release since it's not included in any stable release yet. [1] https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=14c2f22a1877f6b60a2f7c2f83ffb032759456a6 Signed-off-by: Romain Naour <romain.naour@gmail.com> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: "Yann E. MORIN" <yann.morin.1998@free.fr> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
* package/gcc: fix ICE on xtensa, PR target/82181Max Filippov2017-09-124-0/+124
| | | | | | | | | | | | | Memory references to DI mode objects could incorrectly be created at offsets that are not supported by instructions l32i/s32i, resulting in ICE at a stage when access to the object is split into access to its subwords: drivers/staging/rtl8188eu/core/rtw_ap.c:445:1: internal compiler error: in change_address_1, at emit-rtl.c:2126 Fixes: https://lkml.org/lkml/2017/9/10/151 Signed-off-by: Max Filippov <jcmvbkbc@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* toolchain/buildroot: not available for a few mips coresYann E. MORIN2017-08-291-6/+1
| | | | | | | | | | | | | | | | | | Commit 1b974425 (MIPS: add support for M6201 cores) explained that the new core was not supported by upstream gcc, and as of gcc-8-trunk that's still the case. Ditto for 3cfbeb83 (MIPS: add support for P6600 cores). This means that we currently allow to build an internal tolchain for those cores, yet we have no suitable gcc version. Disable the internal backend in this case. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Vicente Olivert Riera <Vincent.Riera@imgtec.com> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* gcc: bump 7.x series to 7.2.0Thomas Petazzoni2017-08-219-6/+6
| | | | | | | | | | | | All patches continue to apply with no changes. 7.2.0 is a bugfix release of the 7.x branch. The only change that is not a simple bump is that the 7.2.0 tarball is now available xz-compressed instead of bz2-compressed. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
OpenPOWER on IntegriCloud