]> git.ipfire.org Git - thirdparty/openwrt.git/commitdiff
toolchain: gcc: 15: fix build error with glibc for aarch64 targets
authorRobert Marko <robimarko@gmail.com>
Tue, 8 Jul 2025 12:17:16 +0000 (14:17 +0200)
committerRobert Marko <robimarko@gmail.com>
Tue, 8 Jul 2025 12:19:18 +0000 (14:19 +0200)
GCC 14+ fails to build due to libatomic specific -march handling.
This build error triggers only with glibc and not with musl libc
which is default.

It seems that this patch from GCC14 was forgotten when GCC15 support was
being added [1].

[1] https://github.com/openwrt/openwrt/commit/44ef34350095c86227ea0cf84b816258c5195e29

Fixes: 68cb84183e38 ("toolchain: add support for GCC 15.1")
Signed-off-by: Robert Marko <robimarko@gmail.com>
toolchain/gcc/patches-15.x/830-aarch64-libatomic.patch [new file with mode: 0644]
toolchain/gcc/patches-15.x/980-fix-build-error-with-Xcode-16.3.patch

diff --git a/toolchain/gcc/patches-15.x/830-aarch64-libatomic.patch b/toolchain/gcc/patches-15.x/830-aarch64-libatomic.patch
new file mode 100644 (file)
index 0000000..0a54306
--- /dev/null
@@ -0,0 +1,32 @@
+libatomic: Do not enforce march on aarch64
+
+Inspired by The Yocto Project [1].
+
+[1] https://github.com/yoctoproject/poky/blob/51192a79f1717786dda42776f916c3d97ada7971/meta/recipes-devtools/gcc/gcc/0022-libatomic-Do-not-enforce-march-on-aarch64.patch
+
+Signed-off-by: Konstantin Demin <rockdrilla@gmail.com>
+
+ libatomic/Makefile.am | 1 -
+ libatomic/Makefile.in | 1 -
+ 2 files changed, 2 deletions(-)
+
+--- a/libatomic/Makefile.am
++++ b/libatomic/Makefile.am
+@@ -128,7 +128,6 @@ libatomic_la_LIBADD = $(foreach s,$(SIZE
+ ## On a target-specific basis, include alternates to be selected by IFUNC.
+ if HAVE_IFUNC
+ if ARCH_AARCH64_LINUX
+-IFUNC_OPTIONS      = -march=armv8-a+lse
+ libatomic_la_LIBADD += $(foreach s,$(SIZES),$(addsuffix _$(s)_1_.lo,$(SIZEOBJS)))
+ endif
+--- a/libatomic/Makefile.in
++++ b/libatomic/Makefile.in
+@@ -452,7 +452,6 @@ M_SRC = $(firstword $(filter %/$(M_FILE)
+ libatomic_la_LIBADD = $(foreach s,$(SIZES),$(addsuffix \
+       _$(s)_.lo,$(SIZEOBJS))) $(am__append_1) $(am__append_2) \
+       $(am__append_3) $(am__append_4)
+-@ARCH_AARCH64_LINUX_TRUE@@HAVE_IFUNC_TRUE@IFUNC_OPTIONS = -march=armv8-a+lse
+ @ARCH_ARM_LINUX_TRUE@@HAVE_IFUNC_TRUE@IFUNC_OPTIONS = -march=armv7-a+fp -DHAVE_KERNEL64
+ @ARCH_I386_TRUE@@HAVE_IFUNC_TRUE@IFUNC_OPTIONS = -march=i586
+ @ARCH_X86_64_TRUE@@HAVE_IFUNC_TRUE@IFUNC_OPTIONS = -mcx16 -mcx16
index 3f4cdd57261cb21c1aae7b60ca26c341d5ea5554..c55100133caa08d257d73f68a3ca6ae6ff2ed5a4 100644 (file)
@@ -34,11 +34,9 @@ Signed-off-by: Georgi Valkov <gvalkov@gmail.com>
  zlib/zutil.h | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
-diff --git a/zlib/zutil.h b/zlib/zutil.h
-index 4b596adf629..9ea8d840643 100644
 --- a/zlib/zutil.h
 +++ b/zlib/zutil.h
-@@ -130,7 +130,7 @@ extern z_const char * const z_errmsg[10]; /* indexed by 2-zlib_error */
+@@ -130,7 +130,7 @@ extern z_const char * const z_errmsg[10]
  #  endif
  #endif
  
@@ -47,6 +45,3 @@ index 4b596adf629..9ea8d840643 100644
  #  define OS_CODE  7
  #  ifndef Z_SOLO
  #    if defined(__MWERKS__) && __dest_os != __be_os && __dest_os != __win32_os
--- 
-2.49.0
-