Compile bug: Fails on GNU/Hurd due to unconditional `PATH_MAX` usage

Aperta Adatta ai principianti
#32,289 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
72/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
cmake, cpp
Ambito
build-system

Direzione di ricerca

Gli usi di PATH_MAX che falliscono si trovano in src/llama-mmap.cpp alla riga 1145 e in tools/gguf-split/gguf-split.cpp alle righe 320, 431 e 433. Inizia leggendo come è definita llama_path_max() e perché il file non include un header che fornisca PATH_MAX su Hurd. Il lavoro è completato quando il progetto compila su GNU/Hurd senza cambiare il comportamento su Linux, cosa che puoi verificare compilando con il comando di compilazione indicato nella issue.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

bug-unconfirmed
Git commit

b1b770d90d94cad9e9ea5b993bdbc383a522fb28

Operating systems

Other? (Please let us know in description)

GGML backends

CPU

Problem description & steps to reproduce

When compiling llama.cpp on GNU/Hurd, several compile errors happen due to PATH_MAX not being defined on Hurd (it is not required according to POSIX). Read https://hurd.ion.nu/faq/foo_max for info about why PATH_MAX is dangerous and why it shouldn't be used often.

Uses of PATH_MAX that lead to compile errors:
https://github.com/ggml-org/llama.cpp/blob/b1b770d90d94cad9e9ea5b993bdbc383a522fb28/src/llama-mmap.cpp#L1145
https://github.com/ggml-org/llama.cpp/blob/b1b770d90d94cad9e9ea5b993bdbc383a522fb28/tools/gguf-split/gguf-split.cpp#L320
https://github.com/ggml-org/llama.cpp/blob/b1b770d90d94cad9e9ea5b993bdbc383a522fb28/tools/gguf-split/gguf-split.cpp#L431
https://github.com/ggml-org/llama.cpp/blob/b1b770d90d94cad9e9ea5b993bdbc383a522fb28/tools/gguf-split/gguf-split.cpp#L433

First Bad Commit

No response

Compile command
cmake -B build -DGGML_CCACHE=OFF -DGGML_CPU=ON -DGGML_OPENMP=ON
cmake --build build --config Release
Relevant log output
/home/nexussfan/Source_Code/llama.cpp-1.0.0/src/llama-mmap.cpp: In function 'size_t llama_path_max()':
/home/nexussfan/Source_Code/llama.cpp-1.0.0/src/llama-mmap.cpp:1145:12: error: 'PATH_MAX' was not declared in this scope
 1145 |     return PATH_MAX;
      |            ^~~~~~~~
gmake[2]: *** [src/CMakeFiles/llama.dir/build.make:569: src/CMakeFiles/llama.dir/llama-mmap.cpp.o] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:2587: src/CMakeFiles/llama.dir/all] Error 2
gmake: *** [Makefile:146: all] Error 2
Lingua principale
C++
Stelle
134k
Fork
25.4k
Merge medio
2g 5h
PR unite (30g)
509

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di ggml-org/llama.cpp

Tutte le issue di ggml-org/llama.cpp

Issue simili

Altre issue su C++

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.