]> git.djapps.eu Git - pkg/ggml/sources/llama.cpp/commitdiff
nix: add cc to devShell LD_LIBRARY_PATH
authorMichael Hueschen <redacted>
Mon, 22 Jan 2024 10:17:05 +0000 (03:17 -0700)
committerSomeone <redacted>
Wed, 24 Jan 2024 12:39:29 +0000 (12:39 +0000)
this fixes the error I encountered when trying to run the convert.py
script in a venv:

```
$ nix develop

[...]$ source .venv/bin/activate
(.venv)
[...]$ pip3 install -r requirements.txt
<... clipped ...>
[...]$ python3 ./convert.py
Traceback (most recent call last):
  File "/home/mhueschen/projects-reference/llama.cpp/./convert.py", line 40, in <module>
    from sentencepiece import SentencePieceProcessor
  File "/home/mhueschen/projects-reference/llama.cpp/.venv/lib/python3.11/site-packages/sentencepiece/__init__.py", line 13, in <module>
    from . import _sentencepiece
ImportError: libstdc++.so.6: cannot open shared object file: No such file or directory
```

however, I am not sure this is the cleanest way to address this linker
issue...

.devops/nix/package.nix

index c25d99f01fae33e14eb4693f9553dcb6cd3d0b00..91ddb88907504ea4ae25b4938151145b26b90089 100644 (file)
@@ -221,10 +221,16 @@ effectiveStdenv.mkDerivation (
         ;
 
       shell = mkShell {
+        NIX_LD_LIBRARY_PATH = lib.makeLibraryPath [
+          effectiveStdenv.cc.cc
+        ];
         name = "shell-${finalAttrs.finalPackage.name}";
         description = "contains numpy and sentencepiece";
         buildInputs = [ llama-python ];
         inputsFrom = [ finalAttrs.finalPackage ];
+        shellHook = ''
+          export LD_LIBRARY_PATH=$NIX_LD_LIBRARY_PATH
+        '';
       };
 
       shell-extra = mkShell {