From c9c8624d45eefe3465fb0a5d75dc12c1a74e9044 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Wed, 30 Jul 2025 22:39:44 +0200 Subject: [PATCH] package/gcc: backport upstream fix for glibc 2.42 build glibc 2.42 drops , so the libsanitizer code needs to be adjusted accordingly, by backporting upstream gcc fixes. Signed-off-by: Thomas Petazzoni [Julien: - renumbered 14.3.0/0003 patch to 14.3.0/0004 - renumbered 15.1.0/0002 patch to 15.1.0/0004 ] Signed-off-by: Julien Olivain --- ...bsanitizer-Fix-build-with-glibc-2.42.patch | 81 +++++++++++++++++++ ...bsanitizer-Fix-build-with-glibc-2.42.patch | 81 +++++++++++++++++++ ...bsanitizer-Fix-build-with-glibc-2.42.patch | 81 +++++++++++++++++++ 3 files changed, 243 insertions(+) create mode 100644 package/gcc/13.4.0/0004-libsanitizer-Fix-build-with-glibc-2.42.patch create mode 100644 package/gcc/14.3.0/0004-libsanitizer-Fix-build-with-glibc-2.42.patch create mode 100644 package/gcc/15.1.0/0004-libsanitizer-Fix-build-with-glibc-2.42.patch diff --git a/package/gcc/13.4.0/0004-libsanitizer-Fix-build-with-glibc-2.42.patch b/package/gcc/13.4.0/0004-libsanitizer-Fix-build-with-glibc-2.42.patch new file mode 100644 index 0000000000..13f7f469c4 --- /dev/null +++ b/package/gcc/13.4.0/0004-libsanitizer-Fix-build-with-glibc-2.42.patch @@ -0,0 +1,81 @@ +From d32ece49d32b00448d967e7dbc6900fb25cbc775 Mon Sep 17 00:00:00 2001 +From: Florian Weimer +Date: Fri, 2 May 2025 17:41:43 +0200 +Subject: [PATCH] libsanitizer: Fix build with glibc 2.42 + +The termio structure will be removed from glibc 2.42. It has +been deprecated since the late 80s/early 90s. + +Cherry-picked from LLVM commit 59978b21ad9c65276ee8e14f26759691b8a65763 +("[sanitizer_common] Remove interceptors for deprecated struct termio +(#137403)"). + +Co-Authored-By: Tom Stellard + +libsanitizer/ + + * sanitizer_common/sanitizer_common_interceptors_ioctl.inc: Cherry + picked from LLVM commit 59978b21ad9c65276ee8e14f26759691b8a65763. + * sanitizer_common/sanitizer_platform_limits_posix.cpp: Likewise. + * sanitizer_common/sanitizer_platform_limits_posix.h: Likewise. + +Upstream: 1789c57dc97ea2f9819ef89e28bf17208b6208e7 (gcc master branch) +Upstream: d32ece49d32b00448d967e7dbc6900fb25cbc775 (gcc 15.x branch) +Signed-off-by: Thomas Petazzoni +--- + .../sanitizer_common_interceptors_ioctl.inc | 8 -------- + .../sanitizer_common/sanitizer_platform_limits_posix.cpp | 3 --- + .../sanitizer_common/sanitizer_platform_limits_posix.h | 1 - + 3 files changed, 12 deletions(-) + +diff --git a/libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc b/libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc +index 49ec4097c90..dda11daa77f 100644 +--- a/libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc ++++ b/libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc +@@ -338,17 +338,9 @@ static void ioctl_table_fill() { + _(SOUND_PCM_WRITE_CHANNELS, WRITE, sizeof(int)); + _(SOUND_PCM_WRITE_FILTER, WRITE, sizeof(int)); + _(TCFLSH, NONE, 0); +-#if SANITIZER_GLIBC +- _(TCGETA, WRITE, struct_termio_sz); +-#endif + _(TCGETS, WRITE, struct_termios_sz); + _(TCSBRK, NONE, 0); + _(TCSBRKP, NONE, 0); +-#if SANITIZER_GLIBC +- _(TCSETA, READ, struct_termio_sz); +- _(TCSETAF, READ, struct_termio_sz); +- _(TCSETAW, READ, struct_termio_sz); +-#endif + _(TCSETS, READ, struct_termios_sz); + _(TCSETSF, READ, struct_termios_sz); + _(TCSETSW, READ, struct_termios_sz); +diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp +index c87d5ef42c9..7bbc6f2edac 100644 +--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp ++++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp +@@ -485,9 +485,6 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr); + unsigned struct_input_id_sz = sizeof(struct input_id); + unsigned struct_mtpos_sz = sizeof(struct mtpos); + unsigned struct_rtentry_sz = sizeof(struct rtentry); +-#if SANITIZER_GLIBC || SANITIZER_ANDROID +- unsigned struct_termio_sz = sizeof(struct termio); +-#endif + unsigned struct_vt_consize_sz = sizeof(struct vt_consize); + unsigned struct_vt_sizes_sz = sizeof(struct vt_sizes); + unsigned struct_vt_stat_sz = sizeof(struct vt_stat); +diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h +index c07f7cd0b0d..a80df656826 100644 +--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h ++++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h +@@ -1029,7 +1029,6 @@ extern unsigned struct_hd_geometry_sz; + extern unsigned struct_input_absinfo_sz; + extern unsigned struct_input_id_sz; + extern unsigned struct_mtpos_sz; +-extern unsigned struct_termio_sz; + extern unsigned struct_vt_consize_sz; + extern unsigned struct_vt_sizes_sz; + extern unsigned struct_vt_stat_sz; +-- +2.50.1 + diff --git a/package/gcc/14.3.0/0004-libsanitizer-Fix-build-with-glibc-2.42.patch b/package/gcc/14.3.0/0004-libsanitizer-Fix-build-with-glibc-2.42.patch new file mode 100644 index 0000000000..13f7f469c4 --- /dev/null +++ b/package/gcc/14.3.0/0004-libsanitizer-Fix-build-with-glibc-2.42.patch @@ -0,0 +1,81 @@ +From d32ece49d32b00448d967e7dbc6900fb25cbc775 Mon Sep 17 00:00:00 2001 +From: Florian Weimer +Date: Fri, 2 May 2025 17:41:43 +0200 +Subject: [PATCH] libsanitizer: Fix build with glibc 2.42 + +The termio structure will be removed from glibc 2.42. It has +been deprecated since the late 80s/early 90s. + +Cherry-picked from LLVM commit 59978b21ad9c65276ee8e14f26759691b8a65763 +("[sanitizer_common] Remove interceptors for deprecated struct termio +(#137403)"). + +Co-Authored-By: Tom Stellard + +libsanitizer/ + + * sanitizer_common/sanitizer_common_interceptors_ioctl.inc: Cherry + picked from LLVM commit 59978b21ad9c65276ee8e14f26759691b8a65763. + * sanitizer_common/sanitizer_platform_limits_posix.cpp: Likewise. + * sanitizer_common/sanitizer_platform_limits_posix.h: Likewise. + +Upstream: 1789c57dc97ea2f9819ef89e28bf17208b6208e7 (gcc master branch) +Upstream: d32ece49d32b00448d967e7dbc6900fb25cbc775 (gcc 15.x branch) +Signed-off-by: Thomas Petazzoni +--- + .../sanitizer_common_interceptors_ioctl.inc | 8 -------- + .../sanitizer_common/sanitizer_platform_limits_posix.cpp | 3 --- + .../sanitizer_common/sanitizer_platform_limits_posix.h | 1 - + 3 files changed, 12 deletions(-) + +diff --git a/libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc b/libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc +index 49ec4097c90..dda11daa77f 100644 +--- a/libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc ++++ b/libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc +@@ -338,17 +338,9 @@ static void ioctl_table_fill() { + _(SOUND_PCM_WRITE_CHANNELS, WRITE, sizeof(int)); + _(SOUND_PCM_WRITE_FILTER, WRITE, sizeof(int)); + _(TCFLSH, NONE, 0); +-#if SANITIZER_GLIBC +- _(TCGETA, WRITE, struct_termio_sz); +-#endif + _(TCGETS, WRITE, struct_termios_sz); + _(TCSBRK, NONE, 0); + _(TCSBRKP, NONE, 0); +-#if SANITIZER_GLIBC +- _(TCSETA, READ, struct_termio_sz); +- _(TCSETAF, READ, struct_termio_sz); +- _(TCSETAW, READ, struct_termio_sz); +-#endif + _(TCSETS, READ, struct_termios_sz); + _(TCSETSF, READ, struct_termios_sz); + _(TCSETSW, READ, struct_termios_sz); +diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp +index c87d5ef42c9..7bbc6f2edac 100644 +--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp ++++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp +@@ -485,9 +485,6 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr); + unsigned struct_input_id_sz = sizeof(struct input_id); + unsigned struct_mtpos_sz = sizeof(struct mtpos); + unsigned struct_rtentry_sz = sizeof(struct rtentry); +-#if SANITIZER_GLIBC || SANITIZER_ANDROID +- unsigned struct_termio_sz = sizeof(struct termio); +-#endif + unsigned struct_vt_consize_sz = sizeof(struct vt_consize); + unsigned struct_vt_sizes_sz = sizeof(struct vt_sizes); + unsigned struct_vt_stat_sz = sizeof(struct vt_stat); +diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h +index c07f7cd0b0d..a80df656826 100644 +--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h ++++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h +@@ -1029,7 +1029,6 @@ extern unsigned struct_hd_geometry_sz; + extern unsigned struct_input_absinfo_sz; + extern unsigned struct_input_id_sz; + extern unsigned struct_mtpos_sz; +-extern unsigned struct_termio_sz; + extern unsigned struct_vt_consize_sz; + extern unsigned struct_vt_sizes_sz; + extern unsigned struct_vt_stat_sz; +-- +2.50.1 + diff --git a/package/gcc/15.1.0/0004-libsanitizer-Fix-build-with-glibc-2.42.patch b/package/gcc/15.1.0/0004-libsanitizer-Fix-build-with-glibc-2.42.patch new file mode 100644 index 0000000000..13f7f469c4 --- /dev/null +++ b/package/gcc/15.1.0/0004-libsanitizer-Fix-build-with-glibc-2.42.patch @@ -0,0 +1,81 @@ +From d32ece49d32b00448d967e7dbc6900fb25cbc775 Mon Sep 17 00:00:00 2001 +From: Florian Weimer +Date: Fri, 2 May 2025 17:41:43 +0200 +Subject: [PATCH] libsanitizer: Fix build with glibc 2.42 + +The termio structure will be removed from glibc 2.42. It has +been deprecated since the late 80s/early 90s. + +Cherry-picked from LLVM commit 59978b21ad9c65276ee8e14f26759691b8a65763 +("[sanitizer_common] Remove interceptors for deprecated struct termio +(#137403)"). + +Co-Authored-By: Tom Stellard + +libsanitizer/ + + * sanitizer_common/sanitizer_common_interceptors_ioctl.inc: Cherry + picked from LLVM commit 59978b21ad9c65276ee8e14f26759691b8a65763. + * sanitizer_common/sanitizer_platform_limits_posix.cpp: Likewise. + * sanitizer_common/sanitizer_platform_limits_posix.h: Likewise. + +Upstream: 1789c57dc97ea2f9819ef89e28bf17208b6208e7 (gcc master branch) +Upstream: d32ece49d32b00448d967e7dbc6900fb25cbc775 (gcc 15.x branch) +Signed-off-by: Thomas Petazzoni +--- + .../sanitizer_common_interceptors_ioctl.inc | 8 -------- + .../sanitizer_common/sanitizer_platform_limits_posix.cpp | 3 --- + .../sanitizer_common/sanitizer_platform_limits_posix.h | 1 - + 3 files changed, 12 deletions(-) + +diff --git a/libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc b/libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc +index 49ec4097c90..dda11daa77f 100644 +--- a/libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc ++++ b/libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc +@@ -338,17 +338,9 @@ static void ioctl_table_fill() { + _(SOUND_PCM_WRITE_CHANNELS, WRITE, sizeof(int)); + _(SOUND_PCM_WRITE_FILTER, WRITE, sizeof(int)); + _(TCFLSH, NONE, 0); +-#if SANITIZER_GLIBC +- _(TCGETA, WRITE, struct_termio_sz); +-#endif + _(TCGETS, WRITE, struct_termios_sz); + _(TCSBRK, NONE, 0); + _(TCSBRKP, NONE, 0); +-#if SANITIZER_GLIBC +- _(TCSETA, READ, struct_termio_sz); +- _(TCSETAF, READ, struct_termio_sz); +- _(TCSETAW, READ, struct_termio_sz); +-#endif + _(TCSETS, READ, struct_termios_sz); + _(TCSETSF, READ, struct_termios_sz); + _(TCSETSW, READ, struct_termios_sz); +diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp +index c87d5ef42c9..7bbc6f2edac 100644 +--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp ++++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp +@@ -485,9 +485,6 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr); + unsigned struct_input_id_sz = sizeof(struct input_id); + unsigned struct_mtpos_sz = sizeof(struct mtpos); + unsigned struct_rtentry_sz = sizeof(struct rtentry); +-#if SANITIZER_GLIBC || SANITIZER_ANDROID +- unsigned struct_termio_sz = sizeof(struct termio); +-#endif + unsigned struct_vt_consize_sz = sizeof(struct vt_consize); + unsigned struct_vt_sizes_sz = sizeof(struct vt_sizes); + unsigned struct_vt_stat_sz = sizeof(struct vt_stat); +diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h +index c07f7cd0b0d..a80df656826 100644 +--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h ++++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h +@@ -1029,7 +1029,6 @@ extern unsigned struct_hd_geometry_sz; + extern unsigned struct_input_absinfo_sz; + extern unsigned struct_input_id_sz; + extern unsigned struct_mtpos_sz; +-extern unsigned struct_termio_sz; + extern unsigned struct_vt_consize_sz; + extern unsigned struct_vt_sizes_sz; + extern unsigned struct_vt_stat_sz; +-- +2.50.1 +