Am Freitag, 25. Juli 2025, 20:51:41 Mitteleuropäische Sommerzeit schrieb Sam James: > Cherry picked from LLVM commit c99b1bcd505064f2e086e6b1034ce0b0c91ea5b9. >
FWIW I can confirm that this fixes the build of gcc on ppc64 (both BE and LE)
with glibc-2.42.
[
* The constants are removed in future glibc-2.42, so you need that to reproduce
it.
* Other architectures (than ppc64) are currently not affected since the
constants are
present in linux-headers there.
]
> The termio ioctls are no longer used after commit 59978b21ad9c
> ("[sanitizer_common] Remove interceptors for deprecated struct termio
> (#137403)"), remove them. Fixes this build error:
>
> ../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp:765:27:
> error: invalid application of ‘sizeof’ to incomplete type
> ‘__sanitizer::termio’
> 765 | unsigned IOCTL_TCGETA = TCGETA;
> | ^~~~~~
> ../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp:769:27:
> error: invalid application of ‘sizeof’ to incomplete type
> ‘__sanitizer::termio’
> 769 | unsigned IOCTL_TCSETA = TCSETA;
> | ^~~~~~
> ../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp:770:28:
> error: invalid application of ‘sizeof’ to incomplete type
> ‘__sanitizer::termio’
> 770 | unsigned IOCTL_TCSETAF = TCSETAF;
> | ^~~~~~~
> ../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp:771:28:
> error: invalid application of ‘sizeof’ to incomplete type
> ‘__sanitizer::termio’
> 771 | unsigned IOCTL_TCSETAW = TCSETAW;
> | ^~~~~~~
> ---
> We need this for imminent glibc-2.42. Testing running now. OK if that
> succeeds? Ideally for backports too after some soak time? (Note that
> we already backported Florian's r16-360-g1789c57dc97ea2 to 15, this
> change is a followup to that, and I'd like to backport his change further
> back as well).
>
> .../sanitizer_common/sanitizer_platform_limits_posix.cpp | 4 ----
> .../sanitizer_common/sanitizer_platform_limits_posix.h | 4 ----
> 2 files changed, 8 deletions(-)
>
> diff --git
> a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp
> b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp
> index 490e75fe8f65..9856ac3c3ec4 100644
> --- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp
> +++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp
> @@ -762,13 +762,9 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr);
> unsigned IOCTL_SOUND_PCM_WRITE_FILTER = SOUND_PCM_WRITE_FILTER;
> #endif // SOUND_VERSION
> unsigned IOCTL_TCFLSH = TCFLSH;
> - unsigned IOCTL_TCGETA = TCGETA;
> unsigned IOCTL_TCGETS = TCGETS;
> unsigned IOCTL_TCSBRK = TCSBRK;
> unsigned IOCTL_TCSBRKP = TCSBRKP;
> - unsigned IOCTL_TCSETA = TCSETA;
> - unsigned IOCTL_TCSETAF = TCSETAF;
> - unsigned IOCTL_TCSETAW = TCSETAW;
> unsigned IOCTL_TCSETS = TCSETS;
> unsigned IOCTL_TCSETSF = TCSETSF;
> unsigned IOCTL_TCSETSW = TCSETSW;
> diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
> b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
> index a80df656826e..cfac4903b76b 100644
> --- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
> +++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
> @@ -1274,13 +1274,9 @@ extern unsigned IOCTL_SNDCTL_COPR_SENDMSG;
> extern unsigned IOCTL_SNDCTL_COPR_WCODE;
> extern unsigned IOCTL_SNDCTL_COPR_WDATA;
> extern unsigned IOCTL_TCFLSH;
> -extern unsigned IOCTL_TCGETA;
> extern unsigned IOCTL_TCGETS;
> extern unsigned IOCTL_TCSBRK;
> extern unsigned IOCTL_TCSBRKP;
> -extern unsigned IOCTL_TCSETA;
> -extern unsigned IOCTL_TCSETAF;
> -extern unsigned IOCTL_TCSETAW;
> extern unsigned IOCTL_TCSETS;
> extern unsigned IOCTL_TCSETSF;
> extern unsigned IOCTL_TCSETSW;
>
> base-commit: ba5a6787374dea3e90f09771134d16b9f6d2714e
>
--
Andreas K. Hüttel
[email protected]
Gentoo Linux developer
(council, toolchain, base-system, perl, libreoffice)
signature.asc
Description: This is a digitally signed message part.
