diff --git a/toolchain/gcc/patches-11.x/980-fix-build-error-with-Xcode-16.3.patch b/toolchain/gcc/patches-11.x/980-fix-build-error-with-Xcode-16.3.patch new file mode 100644 index 00000000000..3f4cdd57261 --- /dev/null +++ b/toolchain/gcc/patches-11.x/980-fix-build-error-with-Xcode-16.3.patch @@ -0,0 +1,52 @@ +From 93954654b87552c4fe0273cab99d0f42f213f7f8 Mon Sep 17 00:00:00 2001 +From: Georgi Valkov +Date: Mon, 14 Apr 2025 15:45:59 +0300 +Subject: [PATCH] zlib: fix build error with Xcode 16.3 + +Xcode 16.3 defines TARGET_OS_MAC, it was not defined in prior versions. +zutil.h conditionally defines fdopen as NULL when this macro is defined, +resulting in the following build error: + +/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/_stdio.h:318:7: error: expected identifier or '(' + 318 | FILE *fdopen(int, const char *) __DARWIN_ALIAS_STARTING(__MAC_10_6, __IPHONE_2_0, __DARWIN_ALIAS(fdopen)); + | ^ +./zutil.h:147:33: note: expanded from macro 'fdopen' + 147 | # define fdopen(fd,mode) NULL /* No fdopen() */ + +In Xcode 16.2 and earlier, TARGET_OS_MAC was not defined so this entire +block was ignored, gcc and gdb used to compile and work fine. + +This may have been used for compatibility with older versions of macOS, +but is no longer needed. By pure luck, the build worked fine for a long +time, because it did not properly detect macOS. +Fixed by removing the check for TARGET_OS_MAC. + +Note that since Xcode 16.3, an entire set of TARGET_OS macros +are now defined, most of which are set to 0: +TARGET_OS_LINUX 0 +TARGET_OS_MAC 1 +TARGET_OS_OSX 1 + +[1] https://github.com/openwrt/openwrt/pull/18467 + +Signed-off-by: Georgi Valkov +--- + 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 */ + # endif + #endif + +-#if defined(MACOS) || defined(TARGET_OS_MAC) ++#if defined(MACOS) + # define OS_CODE 7 + # ifndef Z_SOLO + # if defined(__MWERKS__) && __dest_os != __be_os && __dest_os != __win32_os +-- +2.49.0 + diff --git a/toolchain/gcc/patches-12.x/980-fix-build-error-with-Xcode-16.3.patch b/toolchain/gcc/patches-12.x/980-fix-build-error-with-Xcode-16.3.patch new file mode 100644 index 00000000000..3f4cdd57261 --- /dev/null +++ b/toolchain/gcc/patches-12.x/980-fix-build-error-with-Xcode-16.3.patch @@ -0,0 +1,52 @@ +From 93954654b87552c4fe0273cab99d0f42f213f7f8 Mon Sep 17 00:00:00 2001 +From: Georgi Valkov +Date: Mon, 14 Apr 2025 15:45:59 +0300 +Subject: [PATCH] zlib: fix build error with Xcode 16.3 + +Xcode 16.3 defines TARGET_OS_MAC, it was not defined in prior versions. +zutil.h conditionally defines fdopen as NULL when this macro is defined, +resulting in the following build error: + +/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/_stdio.h:318:7: error: expected identifier or '(' + 318 | FILE *fdopen(int, const char *) __DARWIN_ALIAS_STARTING(__MAC_10_6, __IPHONE_2_0, __DARWIN_ALIAS(fdopen)); + | ^ +./zutil.h:147:33: note: expanded from macro 'fdopen' + 147 | # define fdopen(fd,mode) NULL /* No fdopen() */ + +In Xcode 16.2 and earlier, TARGET_OS_MAC was not defined so this entire +block was ignored, gcc and gdb used to compile and work fine. + +This may have been used for compatibility with older versions of macOS, +but is no longer needed. By pure luck, the build worked fine for a long +time, because it did not properly detect macOS. +Fixed by removing the check for TARGET_OS_MAC. + +Note that since Xcode 16.3, an entire set of TARGET_OS macros +are now defined, most of which are set to 0: +TARGET_OS_LINUX 0 +TARGET_OS_MAC 1 +TARGET_OS_OSX 1 + +[1] https://github.com/openwrt/openwrt/pull/18467 + +Signed-off-by: Georgi Valkov +--- + 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 */ + # endif + #endif + +-#if defined(MACOS) || defined(TARGET_OS_MAC) ++#if defined(MACOS) + # define OS_CODE 7 + # ifndef Z_SOLO + # if defined(__MWERKS__) && __dest_os != __be_os && __dest_os != __win32_os +-- +2.49.0 + diff --git a/toolchain/gcc/patches-13.x/980-fix-build-error-with-Xcode-16.3.patch b/toolchain/gcc/patches-13.x/980-fix-build-error-with-Xcode-16.3.patch new file mode 100644 index 00000000000..3f4cdd57261 --- /dev/null +++ b/toolchain/gcc/patches-13.x/980-fix-build-error-with-Xcode-16.3.patch @@ -0,0 +1,52 @@ +From 93954654b87552c4fe0273cab99d0f42f213f7f8 Mon Sep 17 00:00:00 2001 +From: Georgi Valkov +Date: Mon, 14 Apr 2025 15:45:59 +0300 +Subject: [PATCH] zlib: fix build error with Xcode 16.3 + +Xcode 16.3 defines TARGET_OS_MAC, it was not defined in prior versions. +zutil.h conditionally defines fdopen as NULL when this macro is defined, +resulting in the following build error: + +/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/_stdio.h:318:7: error: expected identifier or '(' + 318 | FILE *fdopen(int, const char *) __DARWIN_ALIAS_STARTING(__MAC_10_6, __IPHONE_2_0, __DARWIN_ALIAS(fdopen)); + | ^ +./zutil.h:147:33: note: expanded from macro 'fdopen' + 147 | # define fdopen(fd,mode) NULL /* No fdopen() */ + +In Xcode 16.2 and earlier, TARGET_OS_MAC was not defined so this entire +block was ignored, gcc and gdb used to compile and work fine. + +This may have been used for compatibility with older versions of macOS, +but is no longer needed. By pure luck, the build worked fine for a long +time, because it did not properly detect macOS. +Fixed by removing the check for TARGET_OS_MAC. + +Note that since Xcode 16.3, an entire set of TARGET_OS macros +are now defined, most of which are set to 0: +TARGET_OS_LINUX 0 +TARGET_OS_MAC 1 +TARGET_OS_OSX 1 + +[1] https://github.com/openwrt/openwrt/pull/18467 + +Signed-off-by: Georgi Valkov +--- + 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 */ + # endif + #endif + +-#if defined(MACOS) || defined(TARGET_OS_MAC) ++#if defined(MACOS) + # define OS_CODE 7 + # ifndef Z_SOLO + # if defined(__MWERKS__) && __dest_os != __be_os && __dest_os != __win32_os +-- +2.49.0 + diff --git a/toolchain/gcc/patches-14.x/980-fix-build-error-with-Xcode-16.3.patch b/toolchain/gcc/patches-14.x/980-fix-build-error-with-Xcode-16.3.patch new file mode 100644 index 00000000000..3f4cdd57261 --- /dev/null +++ b/toolchain/gcc/patches-14.x/980-fix-build-error-with-Xcode-16.3.patch @@ -0,0 +1,52 @@ +From 93954654b87552c4fe0273cab99d0f42f213f7f8 Mon Sep 17 00:00:00 2001 +From: Georgi Valkov +Date: Mon, 14 Apr 2025 15:45:59 +0300 +Subject: [PATCH] zlib: fix build error with Xcode 16.3 + +Xcode 16.3 defines TARGET_OS_MAC, it was not defined in prior versions. +zutil.h conditionally defines fdopen as NULL when this macro is defined, +resulting in the following build error: + +/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/_stdio.h:318:7: error: expected identifier or '(' + 318 | FILE *fdopen(int, const char *) __DARWIN_ALIAS_STARTING(__MAC_10_6, __IPHONE_2_0, __DARWIN_ALIAS(fdopen)); + | ^ +./zutil.h:147:33: note: expanded from macro 'fdopen' + 147 | # define fdopen(fd,mode) NULL /* No fdopen() */ + +In Xcode 16.2 and earlier, TARGET_OS_MAC was not defined so this entire +block was ignored, gcc and gdb used to compile and work fine. + +This may have been used for compatibility with older versions of macOS, +but is no longer needed. By pure luck, the build worked fine for a long +time, because it did not properly detect macOS. +Fixed by removing the check for TARGET_OS_MAC. + +Note that since Xcode 16.3, an entire set of TARGET_OS macros +are now defined, most of which are set to 0: +TARGET_OS_LINUX 0 +TARGET_OS_MAC 1 +TARGET_OS_OSX 1 + +[1] https://github.com/openwrt/openwrt/pull/18467 + +Signed-off-by: Georgi Valkov +--- + 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 */ + # endif + #endif + +-#if defined(MACOS) || defined(TARGET_OS_MAC) ++#if defined(MACOS) + # define OS_CODE 7 + # ifndef Z_SOLO + # if defined(__MWERKS__) && __dest_os != __be_os && __dest_os != __win32_os +-- +2.49.0 +