3 ms·
> - Changes to C source files of a shared library should not require a rebuild of dependents (assuming you don't LTO with shared library bitcode) Not so. Nix d
by patrec 5y ago
> - Changes to C source files of a shared library should not require a rebuild of dependents (assuming you don't LTO with shared library bitcode)
Not so. Nix does dynamic linking right, too, which means you dynamically link to a unique content (or build recipe) addressable name. Concrete example:
> readlink -f $(which tmux)
/nix/store/vhbhhg82h62j0qnhrd323792c989idsz-tmux-3.1c/bin/tmux
> ldd /nix/store/vhbhhg82h62j0qnhrd323792c989idsz-tmux-3.1c/bin/tmux | fgrep libc.so
libc.so.6 => /nix/store/90illc73xfs933d06daq6d41njs8yh66-glibc-2.32-37/lib/libc.so.6 (0x00007f21a0e93000)
The 90illc73xfs933d06daq6d41njs8yh66 bit identifies an unique version of glibc.
This way it's actually reproducible and you don't have DLL-hell clashes.