aboutsummaryrefslogtreecommitdiffstats
path: root/toolchain/gcc
Commit message (Collapse)AuthorAgeFilesLines
* toolchain: remove gcc libssp and use libc variantIan Cooper2020-06-172-16/+1
| | | | | | | | | | | | | | | Removes the standalone implementation of stack smashing protection in gcc's libssp in favour of the native implementation available in glibc and uclibc. Musl libc already uses its native ssp, so this patch does not affect musl-based toolchains. Stack smashing protection configuration options are now uniform across all supported libc variants. This also makes kernel-level stack smashing protection available for x86_64 and i386 builds using non-musl libc. Signed-off-by: Ian Cooper <iancooper@hotmail.com>
* toolchain/gcc: eliminate uClibc atexit hackRosen Penev2020-04-261-9/+2
| | | | | | | | This seems to be over 10 years old. It doesn't seem to be needed anymore. Tested on malta with uClibc (selected BROKEN). Signed-off-by: Rosen Penev <rosenp@gmail.com>
* toolchain/gcc: remove uclibc hackRosen Penev2020-04-131-3/+0
| | | | | | | | | | | | This was introduced with 014d3b98b96872d020ffccf0358ba60967b3f1c0 , which is almost 10 years old. uClibc-ng does not suffer from this problem. Note that this hack prevents libstdc++ from using C++11 math functions. Tested by removing all of the mpd patches designed to fix this and compiling. Signed-off-by: Rosen Penev <rosenp@gmail.com>
* toolchain: Update GCC 9 to version 9.3.0Hauke Mehrtens2020-03-1821-61/+6
| | | | | | The removed patch is included in GCC 9.3.0. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* toolchain: Update GCC 8 to version 8.4.0Hauke Mehrtens2020-03-1822-39/+9
| | | | | | The removed patch is included in GCC 8.4.0. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* toolchain/gcc: Backport patch to fix unconditional MULTIARCH_DIRNAMEJeffery To2019-12-231-0/+30
| | | | | | | | | | | | | | | | | | This backports the patch for GCC PR target/89587 (gcc's rs6000 configuration unconditionally sets MULTIARCH_DIRNAME, even when multiarch is disabled). This currently affects apm821xx and may cause issues when cross-compiling packages, e.g. Python 3[1]. This includes patches for GCC 8 (with the changelog diff removed); this change is already included in GCC 9.2 and 7.5. [1]: https://github.com/openwrt/packages/issues/10552 Signed-off-by: Jeffery To <jeffery.to@gmail.com> [Removed patch for GCC 7.4.0, GCC 7.5.0 already contains this] Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* toolchain/gcc: correct the check expr for newer clangYorkie Liu2019-12-231-1/+1
| | | | | | | This fixes gcc build error within clang 11.0, it tweaks the version string from LLVM to clang. Signed-off-by: Yorkie Liu <yorkiefixer@gmail.com>
* toolchain/gcc: bump to 7.5.0Koen Vandeputte2019-11-1924-3/+3
| | | | | | | This updates the GCC to the next minor release which fixes +213 bugs. Tested on ARMv6, ARMv7, MIPS R2, x86 Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
* toolchain: gcc: enable sanitizers for glibc toolchainYousong Zhou2019-10-241-1/+4
| | | | Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
* build: fix menuconfig submenu sorting for gcc optionsFelix Fietkau2019-10-112-5/+5
| | | | | | | The hidden symbol GCC_USE_IREMAP was breaking it, move it to Config.version instead Signed-off-by: Felix Fietkau <nbd@nbd.name>
* toolchain/gcc: switch to version 8 by defaultPaul Spooren2019-10-092-7/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | Main motivation for this commit is the introduction of `-ffile-prefix-map=` which alows reproducible build path. Compile tested on Linux and macOS without errors on the following targets: * ath79 * imx6 * brcm2708 * brcm63xx * ixp4xx * ramips * sunxi * x86 Thanks to Andre for the iremap fixup. Ref: https://reproducible-builds.org/docs/build-path/ Tested-by: Andre Heider <a.heider@gmail.com> Tested-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk> Signed-off-by: Paul Spooren <mail@aparcar.org> [refactored into separate commit] Signed-off-by: Petr Štetiar <ynezz@true.cz>
* toolchain,build: prefer -ffile-prefix-map for gcc-8+Paul Spooren2019-10-092-5/+5
| | | | | | | | | | | -ffile-prefix-map=OLD=NEW is an alias for both -fdebug-prefix-map and -fmacro-prefix-map and is available since GCC 8. Co-Developed-by: Andre Heider <a.heider@gmail.com> Signed-off-by: Andre Heider <a.heider@gmail.com> Signed-off-by: Paul Spooren <mail@aparcar.org> [refactored into separate commit] Signed-off-by: Petr Štetiar <ynezz@true.cz>
* gcc: Fix ICE in GCC 9.2.0Hauke Mehrtens2019-09-201-0/+55
| | | | | | | | This backports a fix from GCC master to fix a internal compiler exception seen when compiling libjson-c with mips16 activated. Fixes: FS#2455 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* gcc: Update gcc 9.X to version 9.2.0Hauke Mehrtens2019-08-1922-90/+9
| | | | | | | This updates the GCC version 9.X to version 9.2.0. The removed patches are applied upstream. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* toolchain: Don't force GCC8 on ARCRosen Penev2019-07-071-1/+1
| | | | | | | | This prevents overriding it to use GCC9. Signed-off-by: Rosen Penev <rosenp@gmail.com> Signed-off-by: Christian Lamparter <chunkeey@gmail.com> [changed logic to not fall back on 7.4]
* toolchain: Add GCC 9.1.0 releaseJoseph Benden2019-06-1623-1/+933
| | | | | | | | | | | | | Most of the patches are copied over from GCC 8.3. The following patches are backported from the GCC 9.X development branch: toolchain/gcc/patches/9.1.0/970-recompute-dom-fast-queries-before-vn.patch toolchain/gcc/patches/9.1.0/975-g++-ICE-with-generic-lambda.patch The specs file changed with gcc 9, now it contains "%@{L*}" instead of "%{L*}" in older GCC versions. Signed-off-by: Joseph Benden <joe@benden.us>
* replace links towards lede-project.org with openwrt.orgAlexander Couzens2019-06-111-1/+1
| | | | | | | Modify VERSION_SUPPORT_URL VERSION_REPO Replace BUGS variable in toolchain/gcc/common.mk Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
* toolchain: ARM: Fix option conflict with multiarchBoris Krasnovskiy2019-03-251-0/+5
| | | | | | | | | | | | This problem exposed when compiling glibc, but applicable across the board. gcc compiles runtime libraries for all supported architectures, unless otherwise specified, and later selects applicable library based -m[arch,cpu,*] options, thus these options should not be passed to gcc as they break the compilation process. Signed-off-by: Boris Krasnovskiy <borkra@gmail.com> Signed-off-by: Christian Lamparter <chunkeey@gmail.com> [modified so it only touches ARM - I'm too chicken, changed authors email]
* toolchain: ARM: Fix toolchain compilation for gcc 8.xBoris Krasnovskiy2019-03-251-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | Set the toolchain's ARM CPU and FPU architectures by utilizing' gcc's --with-cpu / --with-fpu configure options that: "Specify which cpu variant the compiler should generate code for by default. cpu will be used as the default value of the -mcpu= switch." This will resolve the following kernel compilation failures under gcc 8.x on ARM because the kernel wants to set (possibly conflicting) optimization flags. .../ccyVnmrs.s:204: Error: selected processor does not support `dmb ish' in ARM mode .../ccyVnmrs.s:215: Error: architectural extension `mp' is not allowed for the current base architecture .../ccyVnmrs.s:216: Error: selected processor does not support `pldw [r4]' in ARM mode Because this is a big change, the .config and toolchain need to be refreshed (as in removed and regenerated). Reported-by: Ansuel Smith <ansuelsmth@gmail.com> Reported-by: Daniel Engberg <daniel.engberg.lists@pyret.net> [#1203] Signed-off-by: Boris Krasnovskiy <borkra@gmail.com> Signed-off-by: Christian Lamparter <chunkeey@gmail.com> [extended commit message, removed now-deprecated CPU_CFLAGS, changed author to gmail address]
* toolchain: Remove GCC 7.1 for ARC targetsDaniel Engberg2019-03-2022-981/+0
| | | | | | Remove GCC 7.1 for ARC targets Signed-off-by: Daniel Engberg <daniel.engberg.lists@pyret.net>
* toolchain: Use GCC 8.3.0 by default for ARCDaniel Engberg2019-03-202-1/+2
| | | | | | | | Use GCC 8.3.0 by default for ARC targets Includes a fix by Evgeniy Didin which fixes GCC version selection if DEVEL isn't set Signed-off-by: Daniel Engberg <daniel.engberg.lists@pyret.net>
* toolchain: Update to GCC 8.3.0Daniel Engberg2019-02-2622-7/+6
| | | | | | | | | Update GCC to 8.3.0 Refresh patches Allow GCC to be used for ARC Source: https://github.com/openwrt/openwrt/pull/1803#issuecomment-462334890 Signed-off-by: Daniel Engberg <daniel.engberg.lists@pyret.net>
* toolchain/gcc: Remove workaround for GCC 4.8Daniel Engberg2019-02-261-5/+2
| | | | | | GCC 4.8 was removed a long time ago... Signed-off-by: Daniel Engberg <daniel.engberg.lists@pyret.net>
* toolchain/gcc: backport FORTIFY patch to 5.5.0Hans Dedecker2019-02-041-0/+1092
| | | | | | | | | | | | Commit e61061a0886e2d0d6b075d75ae9b53d0a6bc9042 added support for hardening options in the toolchain. However this breaks the gcc5.5.0 compilation in case FORTIFY_SOURCE is set different from FORTIFY_SOURCE_NONE as reported in [1]. Fix this by backporting the upstream patch which fixes this in later gcc versions [1] https://gcc.gnu.org/bugzilla/show_bug.cgi?format=multiple&id=61164 Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
* gcc: update to version 7.4.0Hauke Mehrtens2018-12-1526-322/+8
| | | | | | | | This updates the GCC to the next minor release which fixes 178 bugs. The two removed patches are included in gcc 7.4.0 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> Tested-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
* toolchain/gcc: update 8.x to 8.2.0Syrone Wong2018-08-2021-8/+8
| | | | | | This release fixes LTO link-time performance problems and C++ bug introduced in GCC 8.1 Signed-off-by: Syrone Wong <wong.syrone@gmail.com>
* toolchain/gcc: add config symbol to determine how to apply path remappingSyrone Wong2018-08-201-0/+5
| | | | | | | | | Added boolean symbol for GCC 8 and higher, when we add newer GCC, we don't have to modify rules.mk to keep things consistant. Fixes: da9d760 ("rules.mk: replace iremap when using GCC 8") Signed-off-by: Syrone Wong <wong.syrone@gmail.com>
* toolchain/gcc: add GCC 8.1.0Syrone Wong2018-07-2222-0/+862
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Changes compared to GCC 7.x 001-revert_register_mode_search.patch dropped The underlying issue is described at the end of https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58139 It is fixed by the upstream commit: https://github.com/gcc-mirror/gcc/commit/3fa2798aa887d141d86985240f03e2f3809e7e62 020-PR-libstdc-81797-Add-.NOTPARALLEL-to-include-Makefil.patch dropped due to already upstream 100-PR-rtl-optimization-83496.patch dropped due to already upstream 910-mbsd_multi.patch modified to fix ambiguous overloaded inform() call error gcc/input.h header: define UNKNOWN_LOCATION ((source_location) 0) - inform (0, "someone does not honour COPTS correctly, passed %d times", - honour_copts); + inform (UNKNOWN_LOCATION, "someone does not honour COPTS correctly, passed %d times", + honour_copts); 940-no-clobber-stamp-bits.patch dropped due to fixed upstream by another way upstream commit: https://github.com/gcc-mirror/gcc/commit/87b2d547f8ac9778d66909b8726fe967d1efbc74 950-cpp_file_path_translation.patch dropped, Both -fmacro-prefix-map and -ffile-prefix-map are added to gcc 8.1.0, if I understand it correctly, we should use -fmacro-prefix-map usage: -fmacro-prefix-map=@var{old}=@var{new} upstream commit: https://github.com/gcc-mirror/gcc/commit/859b51f83662d01e4f158ea9327db9ca37fe70b3 -iremap exists as a flag for a long time, for backward compatibility, I think we should keep the variable name unchanged but change its value in rules.mk for gcc 8.x and higher. Compile and run tested on x86_64 Signed-off-by: Syrone Wong <wong.syrone@gmail.com>
* gcc: remove support for version 6.3.0Felix Fietkau2018-06-0526-929/+0
| | | | | | It is obsoleted by gcc 7 Signed-off-by: Felix Fietkau <nbd@nbd.name>
* toolchain: gccgo: fix building gccgo compilerYousong Zhou2018-05-072-0/+248
| | | | | | | Fixes FS#1498. "gccgo -static" can fail for missing linker flag -lgcc_eh caused by patch 850-use_shared_libgcc.patch Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
* toolchain/gcc: switch to version 7 by defaultFelix Fietkau2018-03-122-8/+5
| | | | | | | | | | | | | | | Newer GCC versions are reported to improve code size on various ARM devices, which is why newer u-boot versions require them now. There have also been user reports of data corruption issues fixed on MIPS by updating from GCC 5 to GCC 7. This update was previously held up by these two MIPS compile issues, which have since been fixed: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83496 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84790 Signed-off-by: Felix Fietkau <nbd@nbd.name>
* toolchain/gcc: merge pending fix for miscompiled MIPS16 code issue (GCC PR ↵Felix Fietkau2018-03-123-2/+22
| | | | | | 84790) Signed-off-by: Felix Fietkau <nbd@nbd.name>
* toolchain/gcc: fix a build failure on 7.3.0 with macOSFelix Fietkau2018-03-121-0/+178
| | | | Signed-off-by: Felix Fietkau <nbd@nbd.name>
* toolchain: fix selecting older gcc versions for x86Felix Fietkau2018-02-271-1/+2
| | | | Signed-off-by: Felix Fietkau <nbd@nbd.name>
* gcc: merge upstream fix for PR 83496 (fixes FS#814)Felix Fietkau2018-02-261-0/+136
| | | | | | This bug was causing miscompiled code related to branch delay slots Signed-off-by: Felix Fietkau <nbd@nbd.name>
* gcc: refresh patches for version 7.3.0Felix Fietkau2018-02-265-6/+6
| | | | Signed-off-by: Felix Fietkau <nbd@nbd.name>
* toolchain/gcc: use version 7.x for x86 by defaultFelix Fietkau2018-02-212-1/+7
| | | | | | | This is needed for retpoline support, which mitigates the spectre attacks. Signed-off-by: Felix Fietkau <nbd@nbd.name>
* toolchain/gcc: remove unused config symbolFelix Fietkau2018-02-211-4/+0
| | | | Signed-off-by: Felix Fietkau <nbd@nbd.name>
* toolchain: gcc: update 7.x to 7.3.0Hauke Mehrtens2018-01-2721-3/+3
| | | | | | This version still generates broken code in our setup for MIPS. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* build: cleanup SSP_SUPPORT configure optionJulien Dusser2018-01-272-3/+3
| | | | | | | | | | | | | | | | | | Configure variable SSP_SUPPORT is ambiguous for packages (tor, openssh, avahi, freeswitch). It means 'toolchain supporting SSP', but for toolchain and depends it means 'build gcc with libssp'. Musl no longer uses libssp (1877bc9d8f), it has internal support, so SSP_SUPPORT was disabled leading some package to not use SSP. No information why Glibc and uClibc use libssp, but they may also provide their own SSP support. uClibc used it own with commit 933b588e25 but it was reverted in f3cacb9e84 without details. Create an new configure GCC_LIBSSP and automatically enable SSP_SUPPORT if either USE_MUSL or GCC_LIBSSP. Signed-off-by: Julien Dusser <julien.dusser@free.fr>
* toolchain: add gcc configure default PIE and SSPJulien Dusser2018-01-272-0/+25
| | | | | | | | | | GCC supports starting version 5 --enable-default-ssp and starting version 6 --enable-default-pie. It produces hardened binaries by default without dealing with package compilation flags. Signed-off-by: Julien Dusser <julien.dusser@free.fr>
* toolchain/arc: update to the most recent release arc-2017.09Evgeniy Didin2018-01-2732-277/+330
| | | | | | | | | | | | | | | 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 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 <Evgeniy.Didin@synopsys.com> CC: Alexey Brodkin <abrodkin@synopsys.com> CC: John Crispin <john@phrozen.org>
* merge: etc: update remaining filesZoltan HERPAI2017-12-081-1/+1
| | | | Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
* gcc: remove support for libgcj/javaFelix Fietkau2017-11-022-13/+2
| | | | | | It has been removed in gcc 7 Signed-off-by: Felix Fietkau <nbd@nbd.name>
* toolchain/gcc: update 5.x to 5.5.0Ryan Mounce2017-10-1543-44/+25
| | | | | | | | | | This is the final bugfix release in the gcc-5 series. Compile and run tested on macOS 10.13 (Xcode 9), mvebu/ar71xx. Removed redundant patch for macOS (backported upstream by yours truly) Signed-off-by: Ryan Mounce <ryan@mounce.com.au>
* gcc: fix build error with macOS + Xcode 9Felix Fietkau2017-10-051-0/+10
| | | | Signed-off-by: Felix Fietkau <nbd@nbd.name>
* toolchain: gcc: update 7.x to 7.2.0Kevin Darbyshire-Bryant2017-09-1627-75/+282
| | | | | | | | | | | | | | Bump gcc from 7.1 to 7.2 Compile & run tested: ar71xx Trace history of current patches and update with commit ref & comment to give more clue as to why they're still around/needed. Some have changed form since the original commit but some clue is better than no clue at all. Signed-off-by: Kevin Darbyshire-Bryant <kevin@darbyshire-bryant.me.uk> Tested-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
* toolchain/arc: update to the most recent release arc-2017.03Evgeniy Didin2017-07-1825-12/+12
| | | | | | | | | | arc-2017.03 is the most recent release toolchain for ARC cores and it is based on upstream Binutils 2.28 and GCC 6.3.0 Signed-off-by: Evgeniy Didin <Evgeniy.Didin@synopsys.com> Cc: Alexey Brodkin <abrodkin@synopsys.com> Cc: John Crispin <john@phrozen.org> Cc: Hauke Mehrtens <hauke@hauke-m.de>
* gcc: gcc 6.3.0 fix comparison between pointer and integerKevin Darbyshire-Bryant2017-06-241-0/+11
| | | | | | | | | | | | | | | | | Fix FS#832 /source/build_dir/toolchain-mips_74kc_gcc-6.3.0_musl/gcc-6.3.0/gcc/ubsan.c: In function 'bool ubsan_use_new_style_p(location_t)': /source/build_dir/toolchain-mips_74kc_gcc-6.3.0_musl/gcc-6.3.0/gcc/ubsan.c:1474:23: error: ISO C++ forbids comparison between pointer and integer [-fpermissive] || xloc.file == '\0' || xloc.file[0] == '\xff' ^~~~ make[5]: *** [Makefile:1085: ubsan.o] Error 1 https://www.viva64.com/en/b/0425/#ID0EMGCI Signed-off-by: Kevin Darbyshire-Bryant <kevin@darbyshire-bryant.me.uk>
* toolchain/gcc: fix --with-isl pathSyrone Wong2017-05-301-2/+2
| | | | | | | | | | | This fixes GCC 7 compilation when GRAPHITE is selected. The path is replaced with $(TOOLCHAIN_DIR), while it should be $(STAGING_DIR_HOST). To keep in sync with the path of gmp, mpfr and mpc, I'm using $(TOPDIR)/staging_dir/host. Fixes: f62f4b3c5c9d ("build: stop overriding STAGING_DIR_HOST for toolchain build") Signed-off-by: Syrone Wong <wong.syrone@gmail.com>