]> git.djapps.eu Git - pkg/ggml/sources/llama.cpp/commitdiff
Update llama-mmap to use ftello/fseeko (#22497)
authorReese Levine <redacted>
Thu, 30 Apr 2026 21:17:52 +0000 (14:17 -0700)
committerGitHub <redacted>
Thu, 30 Apr 2026 21:17:52 +0000 (14:17 -0700)
* Update llama-mmap to work with 32-bit wasm and >2GB models

* Update to gguf.cpp style

src/llama-mmap.cpp

index ccc29c1302ee7e9063cd4f4b1019943b12c451b9..ed572da7fb5450e3cd4a7446b137b0e92d2895f5 100644 (file)
 #include <TargetConditionals.h>
 #endif
 
+#ifdef _WIN32
+#    define llama_mmap_ftell _ftelli64
+#    define llama_mmap_fseek _fseeki64
+#else
+#    define llama_mmap_ftell ftello
+#    define llama_mmap_fseek fseeko
+#endif
+
 // TODO: consider moving to llama-impl.h if needed in more places
 #if defined(_WIN32)
 static std::string llama_format_win_err(DWORD err) {
@@ -226,7 +234,7 @@ struct llama_file::impl {
 
     size_t tell() const {
         if (fd == -1) {
-            long ret = std::ftell(fp);
+            off_t ret = llama_mmap_ftell(fp);
             if (ret == -1) {
                 throw std::runtime_error(format("ftell error: %s", strerror(errno)));
             }
@@ -244,7 +252,7 @@ struct llama_file::impl {
     void seek(size_t offset, int whence) const {
         off_t ret = 0;
         if (fd == -1) {
-            ret = std::fseek(fp, (long) offset, whence);
+            ret = llama_mmap_fseek(fp, offset, whence);
         } else {
             ret = lseek(fd, offset, whence);
         }