!lheuhImcToQZYTQTuI:nixos.org

Nix on macOS

1182 Members
“There are still many issues with the Darwin platform but most of it is quite usable.” — http://yves.gnu-darwin.org193 Servers

Load older messages


SenderMessageTime
19 Jan 2026
@reckenrode:matrix.orgRandy Eckenrode Though I’m not sure that Swift 6.2 is invoking clang for its interop support. 20:37:27
@saiko:knifepoint.netKatalin 🔪 perhaps it needs additional include directories, or swiftpm does use swift clang inherently 20:37:29
@reckenrode:matrix.orgRandy Eckenrode It seems to be fine when invoked by SwiftPM but not when called directly. I can use the Xcode clang just fine with that header. 20:44:47
@saiko:knifepoint.netKatalin 🔪 yeah, that sounds like the same situation then 20:45:49
@saiko:knifepoint.netKatalin 🔪 iirc that generated header has a bunch of conditional includes at the top with has_include, and these errors look like missing defines, so maybe if you give it just the right include paths it'll get further, but I'd have to start digging 20:46:51
@reckenrode:matrix.orgRandy Eckenrode It needs this header: swiftToCxx/_SwiftCxxInteroperability.h . 20:48:15
@reckenrode:matrix.orgRandy EckenrodeThat has the defines.20:48:23
@reckenrode:matrix.orgRandy Eckenrode The Xcode toolchain ships it at /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/swiftToCxx/_SwiftCxxInteroperability.h. 20:49:32
@reckenrode:matrix.orgRandy EckenrodeI can put it in stdlib-dev/include, which should get picked up automatically by the wrapper.20:51:21
@reckenrode:matrix.orgRandy Eckenrode * I can put it in stdlib-dev/include, which should get picked up automatically by the wrapper. 20:51:29
@saiko:knifepoint.netKatalin 🔪 well well, the very simple case (empty module) does compile with that and clang++ 19. I'll have to test it with a larger project that actually exports some types 20:52:43
@reckenrode:matrix.orgRandy EckenrodeI have a working test that creates a Swift struct from C++ and prints the value.22:46:16
@reckenrode:matrix.orgRandy Eckenrode I added it to the cxx-interop-test package. 22:46:28
@reckenrode:matrix.orgRandy Eckenrode
$ nix build -f . swiftPackages.cxx-interop-test --log-format multiline -L
swift-cxx-interop-test> Running phase: unpackPhase
swift-cxx-interop-test> unpacking source archive /nix/store/nf6dg34afc7p4mjxxkpgc6gs294a4jyb-src
swift-cxx-interop-test> source root is src
swift-cxx-interop-test> Unpacking SwiftPM dependencies
swift-cxx-interop-test> Running phase: patchPhase
swift-cxx-interop-test> Running phase: updateAutotoolsGnuConfigScriptsPhase
swift-cxx-interop-test> Running phase: configurePhase
swift-cxx-interop-test> no configure script, doing nothing
swift-cxx-interop-test> Running phase: buildPhase
swift-cxx-interop-test> SwiftPM flags: -j 16 -c release -Xswiftc -module-cache-path -Xswiftc /nix/var/nix/builds/nix-build-swift-cxx-interop-test.drv-0/b/module-cache -Xswiftc -I -Xswiftc /nix/store/im17i7wbpqrhfpvyh5czlsvjhp00ij4q-swift-testing-6.2.3-include/lib/swift/macosx/testing -Xswiftc -I -Xswiftc /nix/store/h2bri7l88h31bbjrsv8m38y2y8vqqpck-swift-stdlib-6.2.3-dev/lib/swift/macosx -Xswiftc -I -Xswiftc /nix/store/im17i7wbpqrhfpvyh5czlsvjhp00ij4q-swift-testing-6.2.3-include/lib/swift/macosx/testing -Xswiftc -I -Xswiftc /nix/store/h2bri7l88h31bbjrsv8m38y2y8vqqpck-swift-stdlib-6.2.3-dev/lib/swift/macosx
swift-cxx-interop-test> warning: /var/empty/Library/org.swift.swiftpm/configuration is not accessible or not writable, disabling user-level cache features.
swift-cxx-interop-test> warning: /var/empty/Library/org.swift.swiftpm/security is not accessible or not writable, disabling user-level cache features.
swift-cxx-interop-test> warning: 'src': Warning: supplying the --target arm64-apple-macosx14.0 != arm64-apple-darwin argument to a nix-wrapped compiler may not work correctly - cc-wrapper is currently not designed with multi-target compilers in mind. You may want to use an un-wrapped compiler instead.
swift-cxx-interop-test> Building for production...
swift-cxx-interop-test> [0/4] Write sources
swift-cxx-interop-test> [1/4] Write swift-version--41BD1BF3460DAC2D.txt
swift-cxx-interop-test> [3/5] Compiling CxxInteropTest SwiftStruct.swift
swift-cxx-interop-test> [3/5] Write Objects.LinkFileList
swift-cxx-interop-test> Warning: supplying the --target arm64-apple-macosx10.13 != arm64-apple-darwin argument to a nix-wrapped compiler may not work correctly - cc-wrapper is currently not designed with multi-target compilers in mind. You may want to use an un-wrapped compiler instead.
swift-cxx-interop-test> clang: warning: overriding '-mmacos-version-min=14.0' option with '--target=arm64-apple-macosx10.13' [-Woverriding-option]
swift-cxx-interop-test> [4/5] Linking CxxInteropTest
swift-cxx-interop-test> Build complete! (2.18s)
swift-cxx-interop-test> swiftc -parse-as-library -emit-clang-header-path Check-SwiftStruct.h -module-name Check -cxx-interoperability-mode=default Sources/SwiftStruct.swift -c -o SwiftStruct.o
swift-cxx-interop-test> clang++    -c -o main.o main.cpp
swift-cxx-interop-test> clang++ main.o SwiftStruct.o -o SwiftToCxxInteropTest
swift-cxx-interop-test> ld: warning: object file (SwiftStruct.o) was built for newer macOS version (26.0) than being linked (14.0)
swift-cxx-interop-test> Running phase: installPhase
swift-cxx-interop-test> warning: /var/empty/Library/org.swift.swiftpm/configuration is not accessible or not writable, disabling user-level cache features.
swift-cxx-interop-test> warning: /var/empty/Library/org.swift.swiftpm/security is not accessible or not writable, disabling user-level cache features.
swift-cxx-interop-test> warning: 'src': Warning: supplying the --target arm64-apple-macosx14.0 != arm64-apple-darwin argument to a nix-wrapped compiler may not work correctly - cc-wrapper is currently not designed with multi-target compilers in mind. You may want to use an un-wrapped compiler instead.
swift-cxx-interop-test> warning: /var/empty/Library/org.swift.swiftpm/configuration is not accessible or not writable, disabling user-level cache features.
swift-cxx-interop-test> warning: /var/empty/Library/org.swift.swiftpm/security is not accessible or not writable, disabling user-level cache features.
swift-cxx-interop-test> Running phase: fixupPhase
swift-cxx-interop-test> checking for references to /nix/var/nix/builds/nix-build-swift-cxx-interop-test.drv-0/b/ in /nix/store/ncir3cf7mcgcs399189bh8i31w6n7m9j-swift-cxx-interop-test...
swift-cxx-interop-test> patching script interpreter paths in /nix/store/ncir3cf7mcgcs399189bh8i31w6n7m9j-swift-cxx-interop-test
swift-cxx-interop-test> stripping (with command strip and flags -S) in  /nix/store/ncir3cf7mcgcs399189bh8i31w6n7m9j-swift-cxx-interop-test/bin
swift-cxx-interop-test> Running phase: installCheckPhase
swift-cxx-interop-test> Hello, Swift!
swift-cxx-interop-test> Hello, C++!
23:50:17
@reckenrode:matrix.orgRandy EckenrodeRevised test at https://github.com/reckenrode/nixpkgs/tree/swift-update-mk2/pkgs/by-name/sw/swiftPackages/by-name/cx/cxx-interop-test.23:50:24
@reckenrode:matrix.orgRandy EckenrodeIt tests both C++ to Swift and Swift to C++.23:50:33
@reckenrode:matrix.orgRandy Eckenrode I manually copy the swiftToCxx headers to the stdlib^dev output. 23:55:33
20 Jan 2026
@reckenrode:matrix.orgRandy Eckenrode

Does this patch fix the Linux build of Swift?

diff --git a/pkgs/development/compilers/swift/compiler/default.nix b/pkgs/development/compilers/swift/compiler/default.nix
index 5bb32d8496..e83cd984bb 100644
--- a/pkgs/development/compilers/swift/compiler/default.nix
+++ b/pkgs/development/compilers/swift/compiler/default.nix
@@ -148,7 +148,7 @@
       -e "s|${clang.cc}/bin/clang|$unwrappedClang|g" \
       -e "s|^\(\s*\)\($unwrappedClang\) \"@\\\$responseFile\"|\1argv0=\$0\n\1${bash}/bin/bash -c \"exec -a '\$argv0' \2 '@\$responseFile'\"|" \
     ${lib.optionalString (clang.libcxx != null) ''
-      -e 's|$NIX_CXXSTDLIB_COMPILE_${clang.suffixSalt}|-isystem '$SWIFT_BUILD_ROOT'/libcxx/include/c++/v1|g'
+      -e 's|$NIX_CXXSTDLIB_COMPILE_${clang.suffixSalt}|-cxx-isystem '$SWIFT_BUILD_ROOT'/libcxx/include/c++/v1|g'
     ''}
     chmod a+x "$targetFile"
   '';
00:38:54
@reckenrode:matrix.orgRandy Eckenrode… the current Swift can’t build on a remote builder for a different platform?00:55:21
@reckenrode:matrix.orgRandy EckenrodeI’m testing now, but I think that along with the GCC 15 PR fixes the Swift build on Linux.01:08:34
@samasaur:matrix.orgsamasaurnice! was just gonna kick off a build to check but it sounds like you've got it01:09:10
@reckenrode:matrix.orgRandy Eckenrode I’m around swift> [959/3307] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/LowerTypeTests.cpp.o, which I believe is farther along than Hydra has gotten. 01:09:45
@reckenrode:matrix.orgRandy EckenrodeI’m seeing if it somehow fixes Darwin as well.01:10:12
@reckenrode:matrix.orgRandy Eckenrode * 01:10:19
@samasaur:matrix.orgsamasaurthe swiftc crash?01:10:22
@reckenrode:matrix.orgRandy EckenrodeYeah.01:10:26
@samasaur:matrix.orgsamasaur🤞01:10:27
@reckenrode:matrix.orgRandy Eckenrode I’m currently building mpv to test Swift 6.2, so it’s something to do. 01:11:22
@reckenrode:matrix.orgRandy Eckenrode mpv apparently depends on everything. 01:11:29
@reckenrode:matrix.orgRandy EckenrodeHaskell, Node, Fortran, Ruby, Python, …01:11:50

Show newer messages


Back to Room ListRoom Version: 6