diff --git a/info.yml b/info.yml index d046892..736dca3 100644 --- a/info.yml +++ b/info.yml @@ -1,9 +1,11 @@ name: gcc description: The GNU C Compiler version: 15.2.0 -revision: 8 +revision: 9 url: https://gcc.gnu.org/ license: GPL3-or-later,LGPL3-or-later,GPL3 with GCC-exception +maintainers: + - enumdev@enumerated.dev architecture: any type: source make_depends: @@ -19,7 +21,7 @@ check_depends: - inetutils - tcl downloads: - - url: https://ftpmirror.gnu.org/gcc/gcc-${BPM_PKG_VERSION}/gcc-${BPM_PKG_VERSION}.tar.xz + - url: https://ftp.gnu.org/gnu/gcc/gcc-${BPM_PKG_VERSION}/gcc-${BPM_PKG_VERSION}.tar.xz extract_to: ${BPM_SOURCE} extract_strip_components: 1 checksum: 438fd996826b0c82485a29da03a72d71d6e3541a83ec702df4271f6fe025d24e diff --git a/recipe.sh b/recipe.sh index 67c4aee..be10a27 100644 --- a/recipe.sh +++ b/recipe.sh @@ -6,6 +6,7 @@ # This function is used for putting downloaded files to the correct location or applying patches prepare() { cd "$BPM_SOURCE" + patch -Np1 -i "$BPM_WORKDIR"/fix-missing-linux-header-scc.h.patch # Fix building with glibc-2.43 sed -i 's/char [*]q/const &/' libgomp/affinity-fmt.c # Install libraries to /usr/lib instead of /usr/lib64 diff --git a/source-files/fix-missing-linux-header-scc.h.patch b/source-files/fix-missing-linux-header-scc.h.patch new file mode 100644 index 0000000..ec0c351 --- /dev/null +++ b/source-files/fix-missing-linux-header-scc.h.patch @@ -0,0 +1,60 @@ +From 259d5c6ef7ca0b7fb07acf97538fa7ba590c8e8b Mon Sep 17 00:00:00 2001 +From: Jakub Jelinek +Date: Wed, 29 Apr 2026 11:14:03 +0200 +Subject: [PATCH] libsanitizer: Fix up build against latest kernel headers + +The Linux kernel recently removed the linux/scc.h header, so gcc (both +16.1-rc2 and trunk) fails to build e.g. on Fedora rawhide now. + +The following patch cherry picks a recent upstream fix for this, the macros +defined in that header haven't been really used since 2013-ish. + +2026-04-29 Jakub Jelinek + + * sanitizer_common/sanitizer_platform_limits_posix.cpp: Cherry picked + from LLVM commit 3dc4fd6dd41100f051a63642f449b16324389c96. + +Reviewed-by: Richard Biener +--- + .../sanitizer_platform_limits_posix.cpp | 21 ++++++++----------- + 1 file changed, 9 insertions(+), 12 deletions(-) + +diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp +index 5872e3396f053..47eb1dc326772 100644 +--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp ++++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp +@@ -152,16 +152,15 @@ typedef struct user_fpregs elf_fpregset_t; + #if defined(__mips64) + # include + #endif +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++# include ++# include ++# include ++# include ++# include ++# include ++# include ++# include ++# include + #endif // SANITIZER_ANDROID + + #include +@@ -534,8 +533,6 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr); + unsigned struct_kbsentry_sz = sizeof(struct kbsentry); + unsigned struct_mtconfiginfo_sz = sizeof(struct mtconfiginfo); + unsigned struct_nr_parms_struct_sz = sizeof(struct nr_parms_struct); +- unsigned struct_scc_modem_sz = sizeof(struct scc_modem); +- unsigned struct_scc_stat_sz = sizeof(struct scc_stat); + unsigned struct_serial_multiport_struct_sz + = sizeof(struct serial_multiport_struct); + unsigned struct_serial_struct_sz = sizeof(struct serial_struct);