From 6690e7fe566445e20fec178e9e209e5f9f2fdde3 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 5 Apr 2023 23:33:46 -0700
Subject: [PATCH] Do not use LFS64 functions on linux/musl

On musl, off_t is 64bit always ( even on 32bit platforms ), therefore using
LFS64 funcitons is not needed on such platforms. Moreover, musl has stopped
providing aliases for these functions [1] which means it wont compile on
newer musl systems. Therefore only use it on 32bit glibc/linux platforms
and exclude musl like cygwin or OSX

[1] https://git.musl-libc.org/cgit/musl/commit/?id=246f1c811448f37a44b41cd8df8d0ef9736d95f4

Upstream-Status: Submitted [https://github.com/gabime/spdlog/pull/2589]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 thirdparty/spdlog-20170710/include/spdlog/details/os.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/thirdparty/spdlog-20170710/include/spdlog/details/os.h b/thirdparty/spdlog-20170710/include/spdlog/details/os.h
index 735f60147..639b07a79 100644
--- a/thirdparty/spdlog-20170710/include/spdlog/details/os.h
+++ b/thirdparty/spdlog-20170710/include/spdlog/details/os.h
@@ -237,7 +237,7 @@ inline size_t filesize(FILE *f)
 #else // unix
     int fd = fileno(f);
     //64 bits(but not in osx, where fstat64 is deprecated)
-#if !defined(__FreeBSD__) && !defined(__APPLE__) && (defined(__x86_64__) || defined(__ppc64__))
+#if !defined(__FreeBSD__) && !defined(__APPLE__) && ((defined(__x86_64__) || defined(__ppc64__)) && (!defined(__linux__)))
     struct stat64 st;
     if (fstat64(fd, &st) == 0)
         return static_cast<size_t>(st.st_size);
-- 
2.40.0

