From 98af71c585f4d9ed7c8d4f11b39abf89c03b8550 Mon Sep 17 00:00:00 2001 From: Tony Narlock Date: Mon, 1 Aug 2016 00:19:35 -0500 Subject: [PATCH] Add FreeBSD compatibility defs fix some linux-isms for spdlog on freebsd systems - FreeBSD uses plain-old ``stat`` (not ``stat64``) - ``errno_str``'s else requires GNU extensions, not available by default on FreeBSD. The one used by apple systems is most correct --- include/spdlog/details/os.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/spdlog/details/os.h b/include/spdlog/details/os.h index d188581a..ff182c5f 100644 --- a/include/spdlog/details/os.h +++ b/include/spdlog/details/os.h @@ -210,7 +210,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(__APPLE__) && (defined(__x86_64__) || defined(__ppc64__)) + #if !defined(__FreeBSD__) && !defined(__APPLE__) && (defined(__x86_64__) || defined(__ppc64__)) struct stat64 st; if (fstat64(fd, &st) == 0) return st.st_size; @@ -299,7 +299,7 @@ inline std::string errno_str(int err_num) else return "Unkown error"; -#elif defined(__APPLE__) || ((_POSIX_C_SOURCE >= 200112L) && ! _GNU_SOURCE) // posix version +#elif defined(__FreeBSD__) || defined(__APPLE__) || ((_POSIX_C_SOURCE >= 200112L) && ! _GNU_SOURCE) // posix version if (strerror_r(err_num, buf, buf_size) == 0) return std::string(buf); else