dotnetCorePackages.dotnet_{8..10}.vmr: enable separateDebugInfo (#432003)

Sandro 6c3610fa e03e5d97

Changed files
+15 -20
pkgs
development
compilers
+6 -6
pkgs/development/compilers/dotnet/packages.nix
···
mkdir -p "$out"
-
pushd "$src"/Private.SourceBuilt.Artifacts.*.${targetRid}
+
pushd "$src"/lib/Private.SourceBuilt.Artifacts.*.${targetRid}
pushd ${pname}.${version}.nupkg
xmlstarlet \
···
runHook preInstall
mkdir -p "$out"/share
-
cp -r "$src"/dotnet-sdk-${version}-${targetRid} "$out"/share/dotnet
+
cp -r "$src"/lib/dotnet-sdk-${version}-${targetRid} "$out"/share/dotnet
chmod +w "$out"/share/dotnet
mkdir "$out"/bin
ln -s "$out"/share/dotnet/dotnet "$out"/bin/dotnet
mkdir -p "$artifacts"
-
cp -r "$src"/Private.SourceBuilt.Artifacts.*.${targetRid}/* "$artifacts"/
+
cp -r "$src"/lib/Private.SourceBuilt.Artifacts.*.${targetRid}/* "$artifacts"/
chmod +w -R "$artifacts"
local package
···
runHook preInstall
mkdir -p "$out"/share
-
cp -r "$src/dotnet-runtime-${version}-${targetRid}" "$out"/share/dotnet
+
cp -r "$src/lib/dotnet-runtime-${version}-${targetRid}" "$out"/share/dotnet
chmod +w "$out"/share/dotnet
mkdir "$out"/bin
ln -s "$out"/share/dotnet/dotnet "$out"/bin/dotnet
···
runHook preInstall
mkdir -p "$out"/share
-
cp -r "$src/dotnet-runtime-${runtime.version}-${targetRid}" "$out"/share/dotnet
+
cp -r "$src/lib/dotnet-runtime-${runtime.version}-${targetRid}" "$out"/share/dotnet
chmod +w "$out"/share/dotnet/shared
mkdir "$out"/bin
ln -s "$out"/share/dotnet/dotnet "$out"/bin/dotnet
-
cp -Tr "$src/aspnetcore-runtime-${version}-${targetRid}"/shared/Microsoft.AspNetCore.App "$out"/share/dotnet/shared/Microsoft.AspNetCore.App
+
cp -Tr "$src/lib/aspnetcore-runtime-${version}-${targetRid}"/shared/Microsoft.AspNetCore.App "$out"/share/dotnet/shared/Microsoft.AspNetCore.App
chmod +w "$out"/share/dotnet/shared
runHook postInstall
+9 -14
pkgs/development/compilers/dotnet/vmr.nix
···
substituteInPlace \
src/runtime/src/native/libs/CMakeLists.txt \
--replace-fail 'add_compile_options(-Weverything)' 'add_compile_options(-Wall)'
-
-
# strip native symbols in runtime
-
# see: https://github.com/dotnet/source-build/issues/2543
-
xmlstarlet ed \
-
--inplace \
-
-s //Project -t elem -n PropertyGroup \
-
-s \$prev -t elem -n KeepNativeSymbols -v false \
-
src/runtime/Directory.Build.props
''
+ lib.optionalString (lib.versionAtLeast version "9") (
''
···
# bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
LOCALE_ARCHIVE = lib.optionalString isLinux "${glibcLocales}/lib/locale/locale-archive";
+
# clang: error: argument unused during compilation: '-Wa,--compress-debug-sections' [-Werror,-Wunused-command-line-argument]
+
# caused by separateDebugInfo
+
NIX_CFLAGS_COMPILE = "-Wno-unused-command-line-argument";
+
buildFlags = [
"--with-packages"
bootstrapSdk.artifacts
···
''
runHook preInstall
-
mkdir "$out"
+
mkdir -p "$out"/lib
pushd "artifacts/${assets}/Release"
find . -name \*.tar.gz | while read archive; do
-
target=$out/$(basename "$archive" .tar.gz)
+
target=$out/lib/$(basename "$archive" .tar.gz)
# dotnet 9 currently has two copies of the sdk tarball
[[ ! -e "$target" ]] || continue
mkdir "$target"
···
popd
local -r unpacked="$PWD/.unpacked"
-
for nupkg in $out/Private.SourceBuilt.Artifacts.*.${targetRid}/{,SourceBuildReferencePackages/}*.nupkg; do
+
for nupkg in $out/lib/Private.SourceBuilt.Artifacts.*.${targetRid}/{,SourceBuildReferencePackages/}*.nupkg; do
rm -rf "$unpacked"
unzip ${unzipFlags} "$unpacked" "$nupkg"
chmod -R +rw "$unpacked"
···
echo ${sigtool} > "$out"/nix-support/manual-sdk-deps
'';
-
# dotnet cli is in the root, so we need to strip from there
-
# TODO: should we install in $out/share/dotnet?
-
stripDebugList = [ "." ];
# stripping dlls results in:
# Failed to load System.Private.CoreLib.dll (error code 0x8007000B)
# stripped crossgen2 results in:
···
preFixup = ''
stripExclude=(\*.dll crossgen2)
'';
+
+
separateDebugInfo = true;
passthru = {
inherit releaseManifest buildRid targetRid;