-
Notifications
You must be signed in to change notification settings - Fork 13.7k
Closed
Labels
Description
Git commit
Release b4508: a1649cc
Operating systems
Mac
GGML backends
Metal
Problem description & steps to reproduce
On some macOS systems - and perhaps others, as this is a general bug - use of errno in source llama-mmap.cpp causes a build failure. The fix is simply to add an include for <cerrno>.
I'll submit a PR momentarily, linking to this issue.
First Bad Commit
No response
Compile command
cmake -G "CodeBlocks - Unix Makefiles" -DCMAKE_BUILD_TYPE=MacPorts -DCMAKE_INSTALL_PREFIX="/opt/local" -DCMAKE_INSTALL_NAME_DIR="/opt/local/lib" -DCMAKE_SYSTEM_PREFIX_PATH="/opt/local;/usr" -DCMAKE_C_COMPILER_LAUNCHER=/opt/local/bin/ccache -DCMAKE_CXX_COMPILER_LAUNCHER=/opt/local/bin/ccache -DCMAKE_Fortran_COMPILER_LAUNCHER=/opt/local/bin/ccache -DCMAKE_OBJC_COMPILER_LAUNCHER=/opt/local/bin/ccache -DCMAKE_OBJCXX_COMPILER_LAUNCHER=/opt/local/bin/ccache -DCMAKE_ISPC_COMPILER_LAUNCHER=/opt/local/bin/ccache -DCMAKE_C_COMPILER="$CC" -DCMAKE_CXX_COMPILER="$CXX" -DCMAKE_OBJC_COMPILER="$CC" -DCMAKE_OBJCXX_COMPILER="$CXX" -DCMAKE_POLICY_DEFAULT_CMP0025=NEW -DCMAKE_POLICY_DEFAULT_CMP0060=NEW -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_COLOR_MAKEFILE=ON -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_MAKE_PROGRAM=/usr/bin/make -DCMAKE_MODULE_PATH="/opt/local/share/cmake/Modules" -DCMAKE_PREFIX_PATH="/opt/local/share/cmake/Modules" -DCMAKE_BUILD_WITH_INSTALL_RPATH:BOOL=ON -DCMAKE_INSTALL_RPATH="/opt/local/lib" -Wno-dev -DGGML_LTO=ON -DGGML_CCACHE=OFF -DGGML_OPENMP=OFF -DLLAMA_CURL=ON -DGGML_METAL=OFF -DGGML_METAL_EMBED_LIBRARY=OFF -DGGML_BLAS=ON -DGGML_ACCELLERATE=ON -DGGML_BLAS_VENDOR=Apple -DCMAKE_OSX_ARCHITECTURES="x86_64" -DCMAKE_OSX_DEPLOYMENT_TARGET="10.15" -DCMAKE_OSX_SYSROOT="/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk" /opt/local/var/macports/build/_opt_macports_sources_ports_latest_llm_llama.cpp/llama.cpp/work/llama.cpp-4508Relevant log output
/opt/local/var/macports/build/_opt_macports_sources_ports_latest_llm_llama.cpp/llama.cpp/work/llama.cpp-4508/src/llama-mmap.cpp:159:86: error: use of undeclared identifier 'errno'
throw std::runtime_error(format("failed to open %s: %s", fname, strerror(errno)));
^
/opt/local/var/macports/build/_opt_macports_sources_ports_latest_llm_llama.cpp/llama.cpp/work/llama.cpp-4508/src/llama-mmap.cpp:174:73: error: use of undeclared identifier 'errno'
throw std::runtime_error(format("ftell error: %s", strerror(errno)));
^
/opt/local/var/macports/build/_opt_macports_sources_ports_latest_llm_llama.cpp/llama.cpp/work/llama.cpp-4508/src/llama-mmap.cpp:188:72: error: use of undeclared identifier 'errno'
throw std::runtime_error(format("seek error: %s", strerror(errno)));
^
/opt/local/var/macports/build/_opt_macports_sources_ports_latest_llm_llama.cpp/llama.cpp/work/llama.cpp-4508/src/llama-mmap.cpp:196:9: error: use of undeclared identifier 'errno'
errno = 0;
^
/opt/local/var/macports/build/_opt_macports_sources_ports_latest_llm_llama.cpp/llama.cpp/work/llama.cpp-4508/src/llama-mmap.cpp:199:72: error: use of undeclared identifier 'errno'
throw std::runtime_error(format("read error: %s", strerror(errno)));
^
/opt/local/var/macports/build/_opt_macports_sources_ports_latest_llm_llama.cpp/llama.cpp/work/llama.cpp-4508/src/llama-mmap.cpp:216:9: error: use of undeclared identifier 'errno'
errno = 0;
^
/opt/local/var/macports/build/_opt_macports_sources_ports_latest_llm_llama.cpp/llama.cpp/work/llama.cpp-4508/src/llama-mmap.cpp:219:73: error: use of undeclared identifier 'errno'
throw std::runtime_error(format("write error: %s", strerror(errno)));
^
/opt/local/var/macports/build/_opt_macports_sources_ports_latest_llm_llama.cpp/llama.cpp/work/llama.cpp-4508/src/llama-mmap.cpp:284:73: error: use of undeclared identifier 'errno'
throw std::runtime_error(format("mmap failed: %s", strerror(errno)));
^
/opt/local/var/macports/build/_opt_macports_sources_ports_latest_llm_llama.cpp/llama.cpp/work/llama.cpp-4508/src/llama-mmap.cpp:290:34: error: use of undeclared identifier 'errno'
strerror(errno));
^
/opt/local/var/macports/build/_opt_macports_sources_ports_latest_llm_llama.cpp/llama.cpp/work/llama.cpp-4508/src/llama-mmap.cpp:296:34: error: use of undeclared identifier 'errno'
strerror(errno));
^
/opt/local/var/macports/build/_opt_macports_sources_ports_latest_llm_llama.cpp/llama.cpp/work/llama.cpp-4508/src/llama-mmap.cpp:331:69: error: use of undeclared identifier 'errno'
LLAMA_LOG_WARN("warning: munmap failed: %s\n", strerror(errno));
^
/opt/local/var/macports/build/_opt_macports_sources_ports_latest_llm_llama.cpp/llama.cpp/work/llama.cpp-4508/src/llama-mmap.cpp:354:73: error: use of undeclared identifier 'errno'
LLAMA_LOG_WARN("warning: munmap failed: %s\n", strerror(errno));
^
/opt/local/var/macports/build/_opt_macports_sources_ports_latest_llm_llama.cpp/llama.cpp/work/llama.cpp-4508/src/llama-mmap.cpp:471:38: error: use of undeclared identifier 'errno'
char* errmsg = std::strerror(errno);
^
/opt/local/var/macports/build/_opt_macports_sources_ports_latest_llm_llama.cpp/llama.cpp/work/llama.cpp-4508/src/llama-mmap.cpp:472:25: error: use of undeclared identifier 'errno'
bool suggest = (errno == ENOMEM);
^
/opt/local/var/macports/build/_opt_macports_sources_ports_latest_llm_llama.cpp/llama.cpp/work/llama.cpp-4508/src/llama-mmap.cpp:472:34: error: use of undeclared identifier 'ENOMEM'
bool suggest = (errno == ENOMEM);
^
/opt/local/var/macports/build/_opt_macports_sources_ports_latest_llm_llama.cpp/llama.cpp/work/llama.cpp-4508/src/llama-mmap.cpp:489:85: error: use of undeclared identifier 'errno'
LLAMA_LOG_WARN("warning: failed to munlock buffer: %s\n", std::strerror(errno));
^
16 errors generated.
make[2]: *** [src/CMakeFiles/llama.dir/llama-mmap.cpp.o] Error 1