https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119089
--- Comment #17 from GCC Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Jonathan Wakely <r...@gcc.gnu.org>: https://gcc.gnu.org/g:59db4ce2df1db33ad361eca06a7aec99b24d0d2f commit r16-3446-g59db4ce2df1db33ad361eca06a7aec99b24d0d2f Author: Jonathan Wakely <jwak...@redhat.com> Date: Tue Aug 19 17:08:07 2025 +0100 fixincludes: Skip pthread_incomplete_struct_argument for modern glibc [PR118009] The pthread_incomplete_struct_argument fix was intended for ancient versions of Glibc (only 2.3.3 and 2.3.4, I believe). From Glibc 2.3.5 the pthread.h header already included the change to use a pointer instead of an array, so the fixinclude was no longer used. However, the https://sourceware.org/bugzilla/show_bug.cgi?id=26647 fix changed the __setjmpbuf declaration to use struct __jmp_buf_tag __env[1] again, which caused this fixinclude to start matching again. This means that GCC now installs a "fixed" pthread.h with a change to a declaration that guarded by #if ! __GNUC_PREREQ (11, 0), i.e. it's not even relevant for modern versions of GCC. The "fixed" pthread.h causes problems for users because of changes to internal implementation details of the pthread_cond_t type, which require the "fixed" pthread.h to be updated with mkheaders if Glibc is updated. This change adds a bypass to the fixinclude, so that it no longer matches modern Glibc versions, and only applies to glibc versions 2.3.3 and 2.3.4 as originally intended. Also remove outdated reference to svn in the comment at the top of the generated file. fixincludes/ChangeLog: PR bootstrap/118009 PR bootstrap/119089 * inclhack.def (pthread_incomplete_struct_argument): Add bypass. * fixincl.tpl: Remove reference to svn in comment. * fixincl.x: Regenerate. Reviewed-by: Jason Merrill <ja...@redhat.com>