When we "fix" libtool, we empty out its system library path to avoid it discovering libraries in e.g. /usr when the sandbox is disabled. But this also means that the checks libtool does to make sure it can find the libraries its supposed to be linking to won't work. On Linux and Darwin, this isn't a problem, because libtool doesn't actually perform any checks, but it is on at least NetBSD and Cygwin[1]. So, we force libtool not to do these checks on any platform, bringing the more exotic platforms into line with the existing behaviour on Linux and Darwin. Without this change, lots of library packages produce warnings like this in their build output on the platforms with checks by default: *** Warning: linker path does not have real file for library -lz. *** I have the capability to make that library automatically link in when *** you link to this library. But I can only do this if you have a *** shared version of the library, which you do not appear to have *** because I did check the linker path looking for a file starting *** with libz but no candidates were found. (...for regex pattern test) *** The inter-library dependencies that have been dropped here will be *** automatically added whenever a program is linked with this library *** or is declared to -dlopen it. And dependent packages break because libtool doesn't link their transitive dependencies. So making this change fixes _lots_ of packages on those platforms. [1]: https://git.savannah.gnu.org/cgit/libtool.git/tree/m4/libtool.m4?id=544fc0e2c2a03129a540aebef41ad32bfb5c06b8#n3445 |
||
---|---|---|
.. | ||
cross | ||
custom | ||
cygwin | ||
darwin | ||
freebsd | ||
generic | ||
linux | ||
native | ||
nix | ||
adapters.nix | ||
booter.nix | ||
common-path.nix | ||
default.nix |