diff mbox series

[5/5] package/gcc: add support for gcc 13

Message ID 20230507214317.409305-5-bernd.kuhls@t-online.de
State Handled Elsewhere
Headers show
Series [1/5] package/intel-mediasdk: fix build with gcc-13 | expand

Commit Message

Bernd Kuhls May 7, 2023, 9:43 p.m. UTC
https://gcc.gnu.org/gcc-13/changes.html
https://gcc.gnu.org/gcc-13/porting_to.html

Patch 0002 was not ported from gcc-12 because it is included in this
version:
https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=ee4af2ed0b7322884ec4ff537564683c3749b813

Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
---
 .checkpackageignore                           |  2 +-
 ...le-split-stack-for-non-thread-builds.patch | 26 +++++++++++++++++++
 package/gcc/Config.in.host                    | 14 ++++++++++
 package/gcc/gcc.hash                          |  2 ++
 toolchain/Config.in                           |  5 ++++
 5 files changed, 48 insertions(+), 1 deletion(-)
 create mode 100644 package/gcc/13.1.0/0001-disable-split-stack-for-non-thread-builds.patch

Comments

Bagas Sanjaya May 16, 2023, 1:08 p.m. UTC | #1
On Sun, May 07, 2023 at 11:43:17PM +0200, Bernd Kuhls wrote:
> https://gcc.gnu.org/gcc-13/changes.html
> https://gcc.gnu.org/gcc-13/porting_to.html
> 
> Patch 0002 was not ported from gcc-12 because it is included in this
> version:
> https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=ee4af2ed0b7322884ec4ff537564683c3749b813
> 

Thanks for the bump! For completeness, especially for people using
Buildroot-generated toolchain as external one, you need to also allow
external GCC 13 toolchains (as separate patch of course):

---- >8 ----
From 0f12ea1536d8f1c081203bee64b9c8413cce3801 Mon Sep 17 00:00:00 2001
From: Bagas Sanjaya <bagasdotme@gmail.com>
Date: Tue, 16 May 2023 20:03:58 +0700
Subject: [PATCH] toolchain-external: Support GCC 13

Support external toolchains using GCC 13.x.

Signed-off-by: Bagas Sanjaya <bagasdotme@gmail.com>
---
 .../toolchain-external-custom/Config.in.options               | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/toolchain/toolchain-external/toolchain-external-custom/Config.in.options b/toolchain/toolchain-external/toolchain-external-custom/Config.in.options
index 0fd8841e5b..4da07566d8 100644
--- a/toolchain/toolchain-external/toolchain-external-custom/Config.in.options
+++ b/toolchain/toolchain-external/toolchain-external-custom/Config.in.options
@@ -31,6 +31,10 @@ choice
 	  Set to the gcc version that is used by your external
 	  toolchain.
 
+config BR2_TOOLCHAIN_EXTERNAL_GCC_13
+	bool "13.x"
+	select BR2_TOOLCHAIN_GCC_AT_LEAST_13
+
 config BR2_TOOLCHAIN_EXTERNAL_GCC_12
 	bool "12.x"
 	select BR2_TOOLCHAIN_GCC_AT_LEAST_12
Romain Naour May 16, 2023, 1:54 p.m. UTC | #2
Hello Bernd,

Le 16/05/2023 à 15:08, Bagas Sanjaya a écrit :
> On Sun, May 07, 2023 at 11:43:17PM +0200, Bernd Kuhls wrote:
>> https://gcc.gnu.org/gcc-13/changes.html
>> https://gcc.gnu.org/gcc-13/porting_to.html
>>
>> Patch 0002 was not ported from gcc-12 because it is included in this
>> version:
>> https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=ee4af2ed0b7322884ec4ff537564683c3749b813
>>
> 
> Thanks for the bump! For completeness, especially for people using
> Buildroot-generated toolchain as external one, you need to also allow
> external GCC 13 toolchains (as separate patch of course):

I had a pending patch series for gcc 13.1 bump with splited commits.
Also I found an issue on RISCV I fixed.

Note: the elf2flt is broken and I don't have the time to look at the issue.

I hope this help.

https://gitlab.com/buildroot.org/toolchains-builder/-/pipelines/852950911

Best regards,
Romain


> 
> ---- >8 ----
> From 0f12ea1536d8f1c081203bee64b9c8413cce3801 Mon Sep 17 00:00:00 2001
> From: Bagas Sanjaya <bagasdotme@gmail.com>
> Date: Tue, 16 May 2023 20:03:58 +0700
> Subject: [PATCH] toolchain-external: Support GCC 13
> 
> Support external toolchains using GCC 13.x.
> 
> Signed-off-by: Bagas Sanjaya <bagasdotme@gmail.com>
> ---
>  .../toolchain-external-custom/Config.in.options               | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/toolchain/toolchain-external/toolchain-external-custom/Config.in.options b/toolchain/toolchain-external/toolchain-external-custom/Config.in.options
> index 0fd8841e5b..4da07566d8 100644
> --- a/toolchain/toolchain-external/toolchain-external-custom/Config.in.options
> +++ b/toolchain/toolchain-external/toolchain-external-custom/Config.in.options
> @@ -31,6 +31,10 @@ choice
>  	  Set to the gcc version that is used by your external
>  	  toolchain.
>  
> +config BR2_TOOLCHAIN_EXTERNAL_GCC_13
> +	bool "13.x"
> +	select BR2_TOOLCHAIN_GCC_AT_LEAST_13
> +
>  config BR2_TOOLCHAIN_EXTERNAL_GCC_12
>  	bool "12.x"
>  	select BR2_TOOLCHAIN_GCC_AT_LEAST_12
Bagas Sanjaya May 17, 2023, 6:45 a.m. UTC | #3
On Sun, May 07, 2023 at 11:43:17PM +0200, Bernd Kuhls wrote:
> https://gcc.gnu.org/gcc-13/changes.html
> https://gcc.gnu.org/gcc-13/porting_to.html
> 
> Patch 0002 was not ported from gcc-12 because it is included in this
> version:
> https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=ee4af2ed0b7322884ec4ff537564683c3749b813
> 

Toolchain successfully built and so is package/git with the toolchain,
thanks!

Tested-by: Bagas Sanjaya <bagasdotme@gmail.com>
diff mbox series

Patch

diff --git a/.checkpackageignore b/.checkpackageignore
index d5bd3cd4ab..bbef501933 100644
--- a/.checkpackageignore
+++ b/.checkpackageignore
@@ -1,4 +1,3 @@ 
-board/aarch64-efi/post-image.sh Shellcheck
 board/amarula/vyasa/post-build.sh Shellcheck
 board/andes/ae350/patches/uboot/0001-mmc-ftsdc010_mci-Support-DTS-of-ftsdc010-driver-for-.patch Upstream
 board/andes/ae350/patches/uboot/0002-spl-Align-device-tree-blob-address-at-8-byte-boundar.patch Upstream
@@ -534,6 +533,7 @@  package/gcc/11.3.0/0005-rs6000-Improve-.machine.patch Upstream
 package/gcc/11.3.0/0006-rs6000-Do-not-use-rs6000_cpu-for-.machine-ppc-and-pp.patch Upstream
 package/gcc/12.2.0/0001-disable-split-stack-for-non-thread-builds.patch Upstream
 package/gcc/12.2.0/0002-fix-condvar.patch Upstream
+package/gcc/13.1.0/0001-disable-split-stack-for-non-thread-builds.patch Upstream
 package/gcc/8.4.0/0001-xtensa-fix-PR-target-91880.patch Upstream
 package/gcc/8.4.0/0002-Revert-re-PR-target-92095-internal-error-with-O1-mcp.patch Upstream
 package/gcc/8.4.0/0003-libsanitizer-Remove-cyclades-from-libsanitizer.patch Upstream
diff --git a/package/gcc/13.1.0/0001-disable-split-stack-for-non-thread-builds.patch b/package/gcc/13.1.0/0001-disable-split-stack-for-non-thread-builds.patch
new file mode 100644
index 0000000000..e801085dad
--- /dev/null
+++ b/package/gcc/13.1.0/0001-disable-split-stack-for-non-thread-builds.patch
@@ -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
+
diff --git a/package/gcc/Config.in.host b/package/gcc/Config.in.host
index cd1b9fa46d..3beaaef309 100644
--- a/package/gcc/Config.in.host
+++ b/package/gcc/Config.in.host
@@ -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.3.0"    if BR2_GCC_VERSION_11_X
 	default "12.2.0"    if BR2_GCC_VERSION_12_X
+	default "13.1.0"    if BR2_GCC_VERSION_13_X
 	default "arc-2020.09-release" if BR2_GCC_VERSION_ARC
 
 config BR2_EXTRA_GCC_CONFIG_OPTIONS
diff --git a/package/gcc/gcc.hash b/package/gcc/gcc.hash
index 666124fa6d..d324852bdd 100644
--- a/package/gcc/gcc.hash
+++ b/package/gcc/gcc.hash
@@ -6,6 +6,8 @@  sha512  440c08ca746da450d9a1b35e8fd2305cb27e7e6987cd9d0f7d375f3b1fc9e4b0bd7acb3c
 sha512  f0be5ad705c73b84477128a69c047f57dd47002f375eb60e1e842e08cf2009a509e92152bca345823926d550b7395ae6d4de7db51d1ee371c2dc37313881fca7  gcc-11.3.0.tar.xz
 # From https://gcc.gnu.org/pub/gcc/releases/gcc-12.2.0/sha512.sum
 sha512  e9e857bd81bf7a370307d6848c81b2f5403db8c7b5207f54bce3f3faac3bde63445684092c2bc1a2427cddb6f7746496d9fbbef05fbbd77f2810b2998f1f9173  gcc-12.2.0.tar.xz
+# From https://gcc.gnu.org/pub/gcc/releases/gcc-13.1.0/sha512.sum
+sha512  6cf06dfc48f57f5e67f7efe3248019329a14d690c728d9f2f7ef5fa0d58f1816f309586ba7ea2eac20d0b60a2d1b701f68392e9067dd46f827ba0efd7192db33  gcc-13.1.0.tar.xz
 
 # Locally calculated (fetched from Github)
 sha512  b0853e2b1c5998044392023fa653e399e74118c46e616504ac59e1a2cf27620f94434767ce06b6cf4ca3dfb57f81d6eda92752befaf095ea5e564a9181b4659c  gcc-arc-2020.09-release.tar.gz
diff --git a/toolchain/Config.in b/toolchain/Config.in
index ff0eb93017..3f0eec3cfd 100644
--- a/toolchain/Config.in
+++ b/toolchain/Config.in
@@ -747,10 +747,15 @@  config BR2_TOOLCHAIN_GCC_AT_LEAST_12
 	bool
 	select BR2_TOOLCHAIN_GCC_AT_LEAST_11
 
+config BR2_TOOLCHAIN_GCC_AT_LEAST_13
+	bool
+	select BR2_TOOLCHAIN_GCC_AT_LEAST_12
+
 # This order guarantees that the highest version is set, as kconfig
 # stops affecting a value on the first matching default.
 config BR2_TOOLCHAIN_GCC_AT_LEAST
 	string
+	default "13"	if BR2_TOOLCHAIN_GCC_AT_LEAST_13
 	default "12"	if BR2_TOOLCHAIN_GCC_AT_LEAST_12
 	default "11"	if BR2_TOOLCHAIN_GCC_AT_LEAST_11
 	default "10"	if BR2_TOOLCHAIN_GCC_AT_LEAST_10