From bea7bfde4a0e8feee4f82e2f9b9fd58a0d9c5cb0 Mon Sep 17 00:00:00 2001 From: David McFarland Date: Thu, 7 Aug 2025 21:24:02 -0300 Subject: [PATCH] dotnetCorePackages.dotnet_{8..10}.vmr: enable separateDebugInfo --- .../development/compilers/dotnet/packages.nix | 12 +++++----- pkgs/development/compilers/dotnet/vmr.nix | 23 ++++++++----------- 2 files changed, 15 insertions(+), 20 deletions(-) diff --git a/pkgs/development/compilers/dotnet/packages.nix b/pkgs/development/compilers/dotnet/packages.nix index 1c57d1a78640..10f06dcec0e5 100644 --- a/pkgs/development/compilers/dotnet/packages.nix +++ b/pkgs/development/compilers/dotnet/packages.nix @@ -54,7 +54,7 @@ let mkdir -p "$out" - pushd "$src"/Private.SourceBuilt.Artifacts.*.${targetRid} + pushd "$src"/lib/Private.SourceBuilt.Artifacts.*.${targetRid} pushd ${pname}.${version}.nupkg xmlstarlet \ @@ -136,13 +136,13 @@ let 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 @@ -193,7 +193,7 @@ let 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 @@ -221,12 +221,12 @@ let 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 diff --git a/pkgs/development/compilers/dotnet/vmr.nix b/pkgs/development/compilers/dotnet/vmr.nix index abb1bada08d1..d4715d5fa0dc 100644 --- a/pkgs/development/compilers/dotnet/vmr.nix +++ b/pkgs/development/compilers/dotnet/vmr.nix @@ -188,14 +188,6 @@ stdenv.mkDerivation rec { 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") ( '' @@ -393,6 +385,10 @@ stdenv.mkDerivation rec { # 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 @@ -447,11 +443,11 @@ stdenv.mkDerivation rec { '' 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" @@ -460,7 +456,7 @@ stdenv.mkDerivation rec { 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" @@ -479,9 +475,6 @@ stdenv.mkDerivation rec { 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: @@ -491,6 +484,8 @@ stdenv.mkDerivation rec { stripExclude=(\*.dll crossgen2) ''; + separateDebugInfo = true; + passthru = { inherit releaseManifest buildRid targetRid; icu = _icu;