!bxVOQwsVoHhZcmNDGw:nixos.org

Nix + dotnet

126 Members
24 Servers

Load older messages


SenderMessageTime
7 Dec 2024
@6pak:matrix.org6pak
In reply to @gggkiller:matrix.org
registering a resolver would be a major pain though, since it has to be done per assembly
but it also means you can safely inject a native dep to a nuget dependency knowing it wont break anything else
23:20:48
@gggkiller:matrix.orgGGGtrue, but for multi-assembly packages it'd become annoying I assume23:22:16
@6pak:matrix.org6pakI doubt multi assembly packages will dynamically load the same native lib in different managed assemblies23:23:01
@gggkiller:matrix.orgGGG we also won't be able to have something akin to --shrink-rpath from patchelf since they can dynamically load libraries and there's no equivalent of --add-needed for dotnet 23:23:08
@6pak:matrix.org6pakI'd imagine in that case you would have one assembly responsible for the native thing23:23:10
@gggkiller:matrix.orgGGGI'd just distribute the native libs per scope23:23:26
@gggkiller:matrix.orgGGGIO stuff in one assembly, net in another ,etc23:23:32
@gggkiller:matrix.orgGGGthough if IO and net share the same library then owell23:23:41
@6pak:matrix.org6pak
In reply to @gggkiller:matrix.org
we also won't be able to have something akin to --shrink-rpath from patchelf since they can dynamically load libraries and there's no equivalent of --add-needed for dotnet
would --shrink-rpath be useful in anyway here?
23:25:06
@gggkiller:matrix.orgGGGfor the dynamic DllImport resolver maybe23:25:32
@gggkiller:matrix.orgGGGremove things that aren't being used23:25:56
@gggkiller:matrix.orgGGGalthough I guess the ideal would be to just not add them in the first place23:26:08
@6pak:matrix.org6pak^23:26:14
@gggkiller:matrix.orgGGG I'm thinking too much of just implementing patchelf for CIL and not thinking too much about the differences 😅 23:26:24
@6pak:matrix.org6pakI thought the use case for --shrink-rpath is only when you get precompiled binaries which already have some rpath23:26:40
@6pak:matrix.org6pakwhen you build yourself you can just not add stuff you don't need23:26:51
@gggkiller:matrix.orgGGG pretty much, or when you just call --add-rpath with the same library set for all ELFs in $out and then want to clean everything up 23:27:18
@gggkiller:matrix.orgGGG say you don't want to have to figure out which libraries each binary needs, so you just do mass patchelf --set-rpath "$RPATH" "$file"; patchelf --shrink-rpath "$file"; 23:27:52
@gggkiller:matrix.orgGGGwhich could also happen in our case I guess23:28:38
@6pak:matrix.org6pakwe could have our own "fake" --add-needed though23:28:54
@gggkiller:matrix.orgGGGhow would we manage that though23:29:02
@gggkiller:matrix.orgGGGresource files?23:29:04
@gggkiller:matrix.orgGGG * resource files/strings?23:29:09
@6pak:matrix.org6pakwe have to inject DllImportResolver in some way anyway23:29:18
@6pak:matrix.org6pak so I thought of making a <NixInitClassWhatever> with a ModuleInitializer method in it 23:29:35
@6pak:matrix.org6pakmight aswell add a static string[] Needed property to it23:29:45
@gggkiller:matrix.orgGGGyeah, we can do that, but I'd like a way to manage stuff without needing to decompile code23:29:52
@gggkiller:matrix.orgGGGI guess having a static readonly array could work23:30:02
@gggkiller:matrix.orgGGGbut that wouldn't be very efficient since we'd need to linearly iterate through it23:30:17
@6pak:matrix.org6pakeh23:30:45

Show newer messages


Back to Room ListRoom Version: 9