]> git.ipfire.org Git - thirdparty/gcc.git/commit
includes, Darwin: Handle modular use for macOS SDKs [PR116827].
authorIain Sandoe <iainsandoe@mini-05-seq.local>
Sun, 29 Dec 2024 23:06:54 +0000 (23:06 +0000)
committerIain Sandoe <iain@sandoe.co.uk>
Thu, 1 May 2025 14:50:57 +0000 (15:50 +0100)
commit623aaebc7d755ef8696834bebd14f8eddd88200e
tree68e245947f1dfecc501aff255b8615b8c4b83ca6
parent84ac2f46612ee928f0089f615ab6c03f895f80e3
includes, Darwin: Handle modular use for macOS SDKs [PR116827].

Recent changes to the OS SDKs have altered the way in which include guards
are used for a number of headers when C++ modules are enabled.  Instead of
placing the guards in the included header, they are being placed in the
including header.  This breaks the assumptions in the current GCC stddef.h
specifically, that the presence of __PTRDIFF_T and __SIZE_T means that the
relevant defs are already made.  However in the case of the module-enabled
C++ with these SDKs, that is no longer true.

stddef.h has a large body of special-cases already, but it seems that the
only viable solution here is to add a new one specifically for __APPLE__
and modular code.

This fixes around 280 new fails in the modules test-suite; it is needed on
all open branches that support modules.

PR target/116827

gcc/ChangeLog:

* ginclude/stddef.h: Undefine __PTRDIFF_T and __SIZE_T for module-
enabled c++ on Darwin/macOS platforms.

Signed-off-by: Iain Sandoe <iain@sandoe.co.uk>
(cherry picked from commit 9cf6b52d04df22726d88eef113211b3cc08515de)
gcc/ginclude/stddef.h