package/gcc: add support for gcc 13
https://gcc.gnu.org/gcc-13/changes.html https://gcc.gnu.org/gcc-13/porting_to.html Backport upstream patch to gcc 13.2 for RISC-V build issue with gcc 4.9.x: GCC should still build with GCC 4.8.3 or newer [1] using C++03 by default. But a recent change in RISC-V port introduced a C++11 feature "std::log2" [2]. Use log2 from the C header, without the namespace [3]. [1] https://gcc.gnu.org/install/prerequisites.html [2] https://gcc.gnu.org/git/?p=gcc.git;a=patch;h=7caa1ae5e451e780fbc4746a54e3f19d4f4304dc [3] https://stackoverflow.com/questions/26733413/error-log2-is-not-a-member-of-std Rebase patch 0001-disable-split-stack-for-non-thread-builds.patch required for uClibc-ng without threads support. Fixes: https://gitlab.com/buildroot.org/toolchains-builder/-/jobs/4202276589 Runtime tested on gitlab-ci: https://gitlab.com/kubu93/buildroot/-/pipelines/947874770/ Signed-off-by: Romain Naour <romain.naour@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This commit is contained in:
parent
dfbd1aae23
commit
3009095ba8
@ -0,0 +1,26 @@
|
||||
From 4f67134e0b1404fef4ea72342be8fab4c37ca8c8 Mon Sep 17 00:00:00 2001
|
||||
From: Waldemar Brodkorb <wbx@openadk.org>
|
||||
Date: Mon, 25 Jul 2022 00:29:55 +0200
|
||||
Subject: [PATCH] disable split-stack for non-thread builds
|
||||
|
||||
Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
|
||||
[Romain: convert to git format]
|
||||
Signed-off-by: Romain Naour <romain.naour@smile.fr>
|
||||
---
|
||||
libgcc/config/t-stack | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/libgcc/config/t-stack b/libgcc/config/t-stack
|
||||
index cc0366b4cd8..f3f97e86d60 100644
|
||||
--- a/libgcc/config/t-stack
|
||||
+++ b/libgcc/config/t-stack
|
||||
@@ -1,4 +1,6 @@
|
||||
# Makefile fragment to provide generic support for -fsplit-stack.
|
||||
# This should be used in config.host for any host which supports
|
||||
# -fsplit-stack.
|
||||
+ifeq ($(enable_threads),yes)
|
||||
LIB2ADD_ST += $(srcdir)/generic-morestack.c $(srcdir)/generic-morestack-thread.c
|
||||
+endif
|
||||
--
|
||||
2.34.3
|
||||
|
@ -0,0 +1,48 @@
|
||||
From e5253b777eefef7d66d3bd1c641de6d133d3573d Mon Sep 17 00:00:00 2001
|
||||
From: Romain Naour <romain.naour@gmail.com>
|
||||
Date: Tue, 2 May 2023 14:21:55 +0200
|
||||
Subject: [PATCH] RISC-V: fix build issue with gcc 4.9.x
|
||||
|
||||
GCC should still build with GCC 4.8.3 or newer [1]
|
||||
using C++03 by default. But a recent change in
|
||||
RISC-V port introduced a C++11 feature "std::log2" [2].
|
||||
|
||||
Use log2 from the C header, without the namespace [3].
|
||||
|
||||
[1] https://gcc.gnu.org/install/prerequisites.html
|
||||
[2] https://gcc.gnu.org/git/?p=gcc.git;a=patch;h=7caa1ae5e451e780fbc4746a54e3f19d4f4304dc
|
||||
[3] https://stackoverflow.com/questions/26733413/error-log2-is-not-a-member-of-std
|
||||
|
||||
Fixes:
|
||||
https://gitlab.com/buildroot.org/toolchains-builder/-/jobs/4202276589
|
||||
|
||||
gcc/ChangeLog:
|
||||
* config/riscv/genrvv-type-indexer.cc: Use log2 from the C header, without
|
||||
the namespace.
|
||||
|
||||
Signed-off-by: Romain Naour <romain.naour@gmail.com>
|
||||
(cherry picked from commit 87c347c2897537a6aa391efbfc5ed00c625434fe)
|
||||
Signed-off-by: Romain Naour <romain.naour@gmail.com>
|
||||
---
|
||||
gcc/config/riscv/genrvv-type-indexer.cc | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/gcc/config/riscv/genrvv-type-indexer.cc b/gcc/config/riscv/genrvv-type-indexer.cc
|
||||
index e677b55290c..eebe382d1c3 100644
|
||||
--- a/gcc/config/riscv/genrvv-type-indexer.cc
|
||||
+++ b/gcc/config/riscv/genrvv-type-indexer.cc
|
||||
@@ -115,9 +115,9 @@ same_ratio_eew_type (unsigned sew, int lmul_log2, unsigned eew, bool unsigned_p,
|
||||
if (sew == eew)
|
||||
elmul_log2 = lmul_log2;
|
||||
else if (sew > eew)
|
||||
- elmul_log2 = lmul_log2 - std::log2 (sew / eew);
|
||||
+ elmul_log2 = lmul_log2 - log2 (sew / eew);
|
||||
else /* sew < eew */
|
||||
- elmul_log2 = lmul_log2 + std::log2 (eew / sew);
|
||||
+ elmul_log2 = lmul_log2 + log2 (eew / sew);
|
||||
|
||||
if (float_p)
|
||||
return floattype (eew, elmul_log2);
|
||||
--
|
||||
2.34.3
|
||||
|
@ -59,6 +59,19 @@ config BR2_GCC_VERSION_12_X
|
||||
depends on !BR2_archs4x_rel31
|
||||
select BR2_TOOLCHAIN_GCC_AT_LEAST_12
|
||||
|
||||
config BR2_GCC_VERSION_13_X
|
||||
bool "gcc 13.x"
|
||||
# powerpc spe support has been deprecated since gcc 8.x.
|
||||
# https://gcc.gnu.org/ml/gcc/2018-04/msg00102.html
|
||||
depends on !BR2_powerpc_SPE
|
||||
# uClibc-ng broken on sparc due to recent gcc changes
|
||||
# that need to be reverted since gcc 8.4, 9.3 and 10.1.
|
||||
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98784
|
||||
depends on !BR2_sparc
|
||||
# ARC HS48 rel 31 only supported by gcc arc fork.
|
||||
depends on !BR2_archs4x_rel31
|
||||
select BR2_TOOLCHAIN_GCC_AT_LEAST_13
|
||||
|
||||
endchoice
|
||||
|
||||
# libcilkrts was introduced in gcc 4.9 and removed in gcc 8.x
|
||||
@ -89,6 +102,7 @@ config BR2_GCC_VERSION
|
||||
default "10.4.0" if BR2_GCC_VERSION_10_X
|
||||
default "11.4.0" if BR2_GCC_VERSION_11_X
|
||||
default "12.3.0" if BR2_GCC_VERSION_12_X
|
||||
default "13.2.0" if BR2_GCC_VERSION_13_X
|
||||
default "arc-2020.09-release" if BR2_GCC_VERSION_ARC
|
||||
|
||||
config BR2_EXTRA_GCC_CONFIG_OPTIONS
|
||||
|
@ -6,6 +6,8 @@ sha512 440c08ca746da450d9a1b35e8fd2305cb27e7e6987cd9d0f7d375f3b1fc9e4b0bd7acb3c
|
||||
sha512 a5018bf1f1fa25ddf33f46e720675d261987763db48e7a5fdf4c26d3150a8abcb82fdc413402df1c32f2e6b057d9bae6bdfa026defc4030e10144a8532e60f14 gcc-11.4.0.tar.xz
|
||||
# From https://gcc.gnu.org/pub/gcc/releases/gcc-12.3.0/sha512.sum
|
||||
sha512 8fb799dfa2e5de5284edf8f821e3d40c2781e4c570f5adfdb1ca0671fcae3fb7f794ea783e80f01ec7bfbf912ca508e478bd749b2755c2c14e4055648146c204 gcc-12.3.0.tar.xz
|
||||
# From https://gcc.gnu.org/pub/gcc/releases/gcc-13.2.0/sha512.sum
|
||||
sha512 d99e4826a70db04504467e349e9fbaedaa5870766cda7c5cab50cdebedc4be755ebca5b789e1232a34a20be1a0b60097de9280efe47bdb71c73251e30b0862a2 gcc-13.2.0.tar.xz
|
||||
|
||||
# Locally calculated (fetched from Github)
|
||||
sha512 b0853e2b1c5998044392023fa653e399e74118c46e616504ac59e1a2cf27620f94434767ce06b6cf4ca3dfb57f81d6eda92752befaf095ea5e564a9181b4659c gcc-arc-2020.09-release.tar.gz
|
||||
|
Loading…
Reference in New Issue
Block a user