bintools-wrapper: ensure Swift libraries get found (#348790)

This commit is contained in:
Vladimír Čunát 2024-10-15 18:39:02 +02:00
commit d3bf5fd315
No known key found for this signature in database
GPG Key ID: E747DF1F9575A3AA
3 changed files with 6 additions and 10 deletions

View File

@ -89,3 +89,9 @@ DEVELOPER_DIR=${DEVELOPER_DIR_@suffixSalt@:-@fallback_sdk@}
# Darwin looks for frameworks in the SDK located at `DEVELOPER_DIR`.
extraBefore+=("-F$DEVELOPER_DIR/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks")
extraBefore+=("-L$DEVELOPER_DIR/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib")
# While the Swift wrapper should take care of this, anything that needs to link Swift auto-linked frameworks
# also needs these paths. Note: Test and conditionally add it because the path may not exist in older SDKs.
if [ -d "$DEVELOPER_DIR/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib/swift" ]; then
extraBefore+=("-L$DEVELOPER_DIR/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib/swift")
fi

View File

@ -85,7 +85,6 @@ writeShellScriptBin "patch-nupkgs" (
pushd "$x"
sed -i 's: -no_code_signature_warning::g' build/Microsoft.NETCore.Native.targets
sed -i 's:Include="-ld_classic"::g' build/Microsoft.NETCore.Native.Unix.targets
sed -i 's:-L/usr/lib/swift:-L$(SDKROOT)/usr/lib/swift:g' build/Microsoft.NETCore.Native.Unix.targets
touch .nix-patched-ilcompiler
popd
done

View File

@ -293,15 +293,6 @@ stdenv.mkDerivation rec {
-s \$prev -t elem -n SkipInstallerBuild -v true \
src/runtime/Directory.Build.props
# Make sure .NET uses the Swift overlay for the SDK active in the build environment.
substituteInPlace \
src/runtime/src/coreclr/nativeaot/BuildIntegration/Microsoft.NETCore.Native.Unix.targets \
--replace-fail '-L/usr/lib/swift' '-L$(SDKROOT)/usr/lib/swift'
substituteInPlace \
src/runtime/src/native/libs/System.Security.Cryptography.Native.Apple/extra_libs.cmake \
--replace-fail '-L/usr/lib/swift' '-L''${CMAKE_OSX_SYSROOT}/usr/lib/swift'
# stop passing -sdk without a path
# stop using xcrun
# add -module-cache-path to fix swift errors, see sandboxProfile