I noticed that CONFIG_GDB was suddenly appearing in the main menuconfig
menu despite the fact that it should be visible only when TOOLCHAINOPTS
is selected and under a dedicated menu.
After some trial and error, it seems that this was caused by the recent
addition of GCC_USE_DEFAULT_VERSION, and after even more trial and error
it gets fixed as soon GCC_USE_DEFAULT_VERSION is placed after GCC_VERSION.
So, lets simply put GCC_USE_DEFAULT_VERSION after GCC_VERSION.
Fixes: 501ef81040 ("config: select KERNEL_WERROR if building with default GCC version")
Signed-off-by: Robert Marko <robimarko@gmail.com>
Use GCC 13 instead of GCC 12 by default.
All target kernels are building with GCC 13.
Most packages from the feed are building fine.
The root file systems is getting a little bit smaller for MIPS 32 BE
and aarch64.
With GCC 12 I got these sizes for lantiq/xrx200:
7,005,867 openwrt-lantiq-xrx200-tplink_tdw8970-initramfs-kernel.bin
With GCC 13 I got these sizes for lantiq/xrx200:
6,989,754 openwrt-lantiq-xrx200-tplink_tdw8970-initramfs-kernel.bin
With GCC 12 I got these sizes for armsr/armv8:
13,083,836 openwrt-armsr-armv8-generic-ext4-combined.img.gz
4,900,240 openwrt-armsr-armv8-generic-ext4-rootfs.img.gz
20,142,592 openwrt-armsr-armv8-generic-kernel.bin
With GCC 13 I got these sizes for armsr/armv8:
13,068,966 openwrt-armsr-armv8-generic-ext4-combined.img.gz
4,893,078 openwrt-armsr-armv8-generic-ext4-rootfs.img.gz
20,142,592 openwrt-armsr-armv8-generic-kernel.bin
Signed-off-by: Nick Hainke <vincent@systemli.org>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Some package may needs to enable compatibility option based on the GCC
version.
Currently the GCC version is set based on the default value and doesn't
actually reflect the real value provided by the external toolchain if
used.
Fix this by correctly detecting the GCC version in the external
toolchain and set the correct value in CONFIG_GCC_VERSION.
A new option is added in menuconfig to manually set the GCC version if
needed.
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Config evaluation require default with if to be put before the generic
default config with no condition. Putting the default config before any
conditional default results in always selecting the non conditional one.
This results in the version be hardcoded to gcc 12 even if gcc 11 is
selected in the Advanced build options.
Fix this by putting the gcc 12 default option as last after ANY
conditional default config.
Fixes: d9de5252a4 ("toolchain/gcc: switch to version 12 by default")
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
This was build tested with all core packages on all targets
successfully.
Most packages from the feed are also building fine.
This was run tested on the following systems:
* lantiq/xrx200 musl
* pistachio/generic musl
* sunxi/cortexa53 musl
* x86/64 musl
* x86/64 glibc
* armvirt/64 musl
The size of the images stays more or less the same for MIPS BE and
aarch64. I haven't tested other architectures.
With GCC 11 I got these sizes for lantiq/xrx200:
7,219,848 openwrt-lantiq-xrx200-tplink_tdw8970-initramfs-kernel.bin
7,472,208 openwrt-lantiq-xrx200-tplink_tdw8970-squashfs-sysupgrade.bin
With GCC 12 I got these sizes for lantiq/xrx200:
7,217,355 openwrt-lantiq-xrx200-tplink_tdw8970-initramfs-kernel.bin
7,406,674 openwrt-lantiq-xrx200-tplink_tdw8970-squashfs-sysupgrade.bin
The sysupgrade image is probably padded. The initramfs image is 0.03% smaller.
With GCC 11 I got these sizes for armvirt/64:
4,143,943 openwrt-armvirt-64-default-rootfs.tar.gz
10,887,176 openwrt-armvirt-64-Image
24,911,880 openwrt-armvirt-64-Image-initramfs
4,141,572 openwrt-armvirt-64-rootfs.cpio.gz
4,255,854 openwrt-armvirt-64-rootfs-ext4.img.gz
3,391,178 openwrt-armvirt-64-rootfs-squashfs.img.gz
With GCC 12 I got these sizes for armvirt/64:
4,142,778 openwrt-armvirt-64-default-rootfs.tar.gz
10,887,176 openwrt-armvirt-64-Image
24,911,880 openwrt-armvirt-64-Image-initramfs
4,138,105 openwrt-armvirt-64-rootfs.cpio.gz
4,255,463 openwrt-armvirt-64-rootfs-ext4.img.gz
3,390,390 openwrt-armvirt-64-rootfs-squashfs.img.gz
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
GCC 12.1 is out. Add support for it.
Deleted (upstreamed):
011-v12-configure-define-TARGET_LIBC_GNUSTACK-on-musl.patch
931-libffi-fix-MIPS-softfloat-build-issue.patch
Deleted (unneeded?)
970-macos_arm64-building-fix.patch
Other patches manually rebased due to C++ conversion and consequent file name
changing (.c to .cc).
Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
The development branch is now on version 10, we shouldn't drag to many
old versions and therefore drop at least 7.x.
Signed-off-by: Paul Spooren <mail@aparcar.org>
Acked-by: Rosen Penev <rosenp@gmail.com>
Acked-by: Rui Salvaterra <rsalvaterra@gmail.com>
Acked-by: Hauke Mehrtens <hauke@hauke-m.de>
Acked-by: Aleksander Jan Bajkowski <A.Bajkowski@stud.elka.pw.edu.pl>
gcc9 was never used within a release and the development branch is
already on version 10, no need to keep this in tree.
Signed-off-by: Paul Spooren <mail@aparcar.org>
Acked-by: Rosen Penev <rosenp@gmail.com>
Acked-by: Rui Salvaterra <rsalvaterra@gmail.com>
Acked-by: Hauke Mehrtens <hauke@hauke-m.de>
Acked-by: Stijn Tintel <stijn@linux-ipv6.be>
Acked-by: Aleksander Jan Bajkowski <A.Bajkowski@stud.elka.pw.edu.pl>
Add gcc 11 version. Same patches of gcc 10.
Build tested on: ipq806x ipq807x
Run tested on: ipq806x ipq807x
Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
[refresh patches]
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
GCC was used in 17.01 as the default compiler the last time. We do not
test this old GCC version any more and there are some known problems it
fails to compile the U-Boot for the Allwinner A64 SoC.
Just remove it to make it clear that we will not support this old GCC
version any more.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Acked-by: Paul Spooren <mail@aparcar.org>
Add needed config changes and tarball hash for new GCC version.
Signed-off-by: Syrone Wong <wong.syrone@gmail.com>
[added missing commit description]
Signed-off-by: Petr Štetiar <ynezz@true.cz>
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>
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>
-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>
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]
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>
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>
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>
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>
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:
3fa2798aa8
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: 87b2d547f8
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: 859b51f836
-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>
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=83496https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84790
Signed-off-by: Felix Fietkau <nbd@nbd.name>
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>
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>
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>
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>