diff options
author | Sergei Trofimovich <slyich@gmail.com> | 2022-02-07 23:35:34 +0000 |
---|---|---|
committer | Sergei Trofimovich <slyich@gmail.com> | 2022-02-07 23:39:33 +0000 |
commit | 579dcbabd55d5c565ee9769efb6d4377f3022284 (patch) | |
tree | 13c2221f0a9d360544879d8da22a98b489d4c9a3 /src | |
parent | 7c64a9dfd4a8e9e171ea8b5c1806ca079b2f19ca (diff) |
mk: prefert inplace library paths to system ones (take 2)
It's a second attempt to merge the change. Previous attempt
was reverted in b976b34a5b05ba303904cc7b8e0a2579bdb52807.
Since then underlying failure exposed by original change was
fixed by https://github.com/NixOS/nix/pull/5354.
Below goes description of original change:
The link failure happens on a system with stable nix-2.3.15
installed in /usr/lib64 (it's libutil.so API differs from master):
```
LANG=C make V=1
g++ -o /home/slyfox/dev/git/nix/src/libstore/libnixstore.so \
-shared -L/usr/lib64 -Wl,--no-copy-dt-needed-entries \
src/libstore/binary-cache-store.o ... src/libstore/uds-remote-store.o \
-lsqlite3 -lcurl -lsodium -pthread -ldl -lseccomp -Wl,-z,defs -Wl,-soname=libnixstore.so
-Wl,-rpath,/home/slyfox/dev/git/nix/src/libutil -Lsrc/libutil -lnixutil
ld: src/libstore/binary-cache-store.o: in function `nix::BinaryCacheStore::BinaryCacheStore(
std::map<std::__cxx11::basic_string<char, std::char_traits<char>, ...
nix/src/libstore/binary-cache-store.cc:30: undefined reference to `nix::readFile(
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)' ...
...
```
This happens due to `-L/usr/lib64 -Lsrc/libutil` search path ordering.
The change turns it into `-Lsrc/libutil -L/usr/lib64`.
Closes: https://github.com/NixOS/nix/issues/3087
Diffstat (limited to 'src')
0 files changed, 0 insertions, 0 deletions