summaryrefslogtreecommitdiff
path: root/toolchain
diff options
context:
space:
mode:
Diffstat (limited to 'toolchain')
-rw-r--r--toolchain/gcc/Makefile.inc8
-rw-r--r--toolchain/gcc/patches/15.1.0/add-crtreloc.frv12
-rw-r--r--toolchain/gcc/patches/15.1.0/csky.patch12
-rw-r--r--toolchain/gcc/patches/15.1.0/libgcc-fdpic-bfin.patch12
4 files changed, 44 insertions, 0 deletions
diff --git a/toolchain/gcc/Makefile.inc b/toolchain/gcc/Makefile.inc
index bc0740cc9..fc35d15a5 100644
--- a/toolchain/gcc/Makefile.inc
+++ b/toolchain/gcc/Makefile.inc
@@ -2,6 +2,14 @@
# material, please see the LICENCE file in the top-level directory.
PKG_NAME:= gcc
+ifeq ($(ADK_TOOLCHAIN_GCC_15),y)
+PKG_VERSION:= 15.1.0
+PKG_HASH:= 51b9919ea69c980d7a381db95d4be27edf73b21254eb13d752a08003b4d013b1
+PKG_SITES:= ${MASTER_SITE_GNU:=gcc/gcc-${PKG_VERSION}/}
+PKG_RELEASE:= 1
+DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
+LIBSTDCXXVER:= 30
+endif
ifeq ($(ADK_TOOLCHAIN_GCC_14),y)
PKG_VERSION:= 14.2.0
PKG_HASH:= 7d376d445f93126dc545e2c0086d0f647c3094aae081cdb78f42ce2bc25e7293
diff --git a/toolchain/gcc/patches/15.1.0/add-crtreloc.frv b/toolchain/gcc/patches/15.1.0/add-crtreloc.frv
new file mode 100644
index 000000000..30de24cdc
--- /dev/null
+++ b/toolchain/gcc/patches/15.1.0/add-crtreloc.frv
@@ -0,0 +1,12 @@
+diff -Nur gcc-8.3.0.orig/gcc/config/frv/linux.h gcc-8.3.0/gcc/config/frv/linux.h
+--- gcc-8.3.0.orig/gcc/config/frv/linux.h 2018-01-03 11:03:58.000000000 +0100
++++ gcc-8.3.0/gcc/config/frv/linux.h 2019-10-08 10:52:00.176295821 +0200
+@@ -27,7 +27,7 @@
+
+ #undef STARTFILE_SPEC
+ #define STARTFILE_SPEC \
+- "%{!shared: %{pg|p|profile:gcrt1.o%s;pie:Scrt1.o%s;:crt1.o%s}} \
++ "%{!shared: %{pg|p|profile:gcrt1.o%s;pie:Scrt1.o%s;:crt1.o%s}} crtreloc.o%s \
+ crti.o%s %{static:crtbeginT.o%s;shared|pie:crtbeginS.o%s;:crtbegin.o%s}"
+
+ #undef ENDFILE_SPEC
diff --git a/toolchain/gcc/patches/15.1.0/csky.patch b/toolchain/gcc/patches/15.1.0/csky.patch
new file mode 100644
index 000000000..ee352951b
--- /dev/null
+++ b/toolchain/gcc/patches/15.1.0/csky.patch
@@ -0,0 +1,12 @@
+diff -Nur gcc-11.2.0.orig/libgcc/config/csky/linux-atomic.c gcc-11.2.0/libgcc/config/csky/linux-atomic.c
+--- gcc-11.2.0.orig/libgcc/config/csky/linux-atomic.c 2021-07-28 08:55:08.760307899 +0200
++++ gcc-11.2.0/libgcc/config/csky/linux-atomic.c 2021-12-14 14:19:23.685729233 +0100
+@@ -24,7 +24,7 @@
+ <http://www.gnu.org/licenses/>. */
+
+ /* Kernel helper for compare-and-exchange. */
+-inline int
++int
+ __kernel_cmpxchg (int oldval, int newval, volatile int *ptr)
+ {
+ register int _a0 asm ("a0") = oldval;
diff --git a/toolchain/gcc/patches/15.1.0/libgcc-fdpic-bfin.patch b/toolchain/gcc/patches/15.1.0/libgcc-fdpic-bfin.patch
new file mode 100644
index 000000000..df0b94fc9
--- /dev/null
+++ b/toolchain/gcc/patches/15.1.0/libgcc-fdpic-bfin.patch
@@ -0,0 +1,12 @@
+diff -Nur gcc-14.2.0.orig/libgcc/unwind-pe.h gcc-14.2.0/libgcc/unwind-pe.h
+--- gcc-14.2.0.orig/libgcc/unwind-pe.h 2024-08-01 10:17:17.000000000 +0200
++++ gcc-14.2.0/libgcc/unwind-pe.h 2025-03-10 10:40:25.191585648 +0100
+@@ -264,7 +264,7 @@
+
+ if (result != 0)
+ {
+-#if __FDPIC__
++#if defined(__FDPIC__) && !defined(__BFIN_FDPIC__)
+ /* FDPIC relative addresses imply taking the GOT address
+ into account. */
+ if ((encoding & DW_EH_PE_pcrel) && (encoding & DW_EH_PE_indirect))