Files
guru/dev-lang/swift/files/swift-6.0.3-r2/disable-libdispatch-private-header-check.patch
Itai Ferber 712f2b61ba dev-lang/swift: fix building when dev-libs/libdispatch is present
Swift currently fails to build if `dev-libs/libdispatch` is installed
because it globally installs private `libdispatch` headers which get
unexpectedly picked up during the Swift build. Since the headers are not
expected to be present when building Swift on non-Darwin platforms, the
check for the header can be patched out.

Signed-off-by: Itai Ferber <itai@itaiferber.net>
2026-04-19 21:49:36 -04:00

24 lines
1.1 KiB
Diff

# `DispatchGlobalExecutor` checks for the presence of `dispatch/private.h` for
# certain low-level libdispatch functionality, and because the header is
# normally only available on Darwin platforms (it is never installed as part of
# a normal Swift build on any platform), makes certain assumptions about
# symbols available there. However, `dev-libs/libdispatch` explicitly installs
# private headers system-wide for `gnustep-base/libobjc2`, and those get picked
# up during the Swift build. Because of the structure of the header on Linux,
# anyone who has `dev-libs/libdispatch` installed will fail to build.
--- a/swift/stdlib/public/Concurrency/DispatchGlobalExecutor.inc
+++ b/swift/stdlib/public/Concurrency/DispatchGlobalExecutor.inc
@@ -33,11 +33,6 @@
#endif
#endif
-#if __has_include(<dispatch/private.h>)
-#include <dispatch/private.h>
-#define SWIFT_CONCURRENCY_HAS_DISPATCH_PRIVATE 1
-#endif
-
// Ensure that Job's layout is compatible with what Dispatch expects.
// Note: MinimalDispatchObjectHeader just has the fields we care about, it is
// not complete and should not be used for anything other than these asserts.