From 4dcd47d71df8ca4edcc31302744bd93f0c31298e Mon Sep 17 00:00:00 2001 From: staviq Date: Fri, 1 Sep 2023 11:07:06 +0200 Subject: [PATCH] logs : fix mingw-like builds (fixes #2898) (#2911) * fix mingw-like builds * formatting * make LOG_COMPAT easier to override and extend * simplify win detection * fix for #2940 --- Makefile | 10 +++++----- common/log.h | 20 ++++++++++---------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/Makefile b/Makefile index b750540fe..b56df3d8a 100644 --- a/Makefile +++ b/Makefile @@ -79,6 +79,11 @@ ifdef LLAMA_SERVER_VERBOSE CXXFLAGS += -DSERVER_VERBOSE=$(LLAMA_SERVER_VERBOSE) endif +ifdef LLAMA_DISABLE_LOGS + CFLAGS += -DLOG_DISABLE_LOGS + CXXFLAGS += -DLOG_DISABLE_LOGS +endif # LLAMA_DISABLE_LOGS + # warnings CFLAGS += -Wall -Wextra -Wpedantic -Wcast-qual -Wdouble-promotion -Wshadow -Wstrict-prototypes -Wpointer-arith \ -Wmissing-prototypes -Werror=implicit-int @@ -343,11 +348,6 @@ k_quants.o: k_quants.c k_quants.h $(CC) $(CFLAGS) -c $< -o $@ endif # LLAMA_NO_K_QUANTS -ifdef LLAMA_DISABLE_LOGS - CFLAGS += -DLOG_DISABLE_LOGS - CXXFLAGS += -DLOG_DISABLE_LOGS -endif # LLAMA_DISABLE_LOGS - # # Print build information # diff --git a/common/log.h b/common/log.h index c1364187d..bf9fafd68 100644 --- a/common/log.h +++ b/common/log.h @@ -154,7 +154,7 @@ inline std::string log_filename_generator_impl(const std::string & log_file_base // #include "log.h" // #ifndef LOG_NO_TIMESTAMPS - #ifndef _WIN32 + #ifndef _MSC_VER #define LOG_TIMESTAMP_FMT "[%" PRIu64 "] " #define LOG_TIMESTAMP_VAL , (std::chrono::duration_cast>(std::chrono::system_clock::now().time_since_epoch())).count() #else @@ -167,7 +167,7 @@ inline std::string log_filename_generator_impl(const std::string & log_file_base #endif #ifdef LOG_TEE_TIMESTAMPS - #ifndef _WIN32 + #ifndef _MSC_VER #define LOG_TEE_TIMESTAMP_FMT "[%" PRIu64 "] " #define LOG_TEE_TIMESTAMP_VAL , (std::chrono::duration_cast>(std::chrono::system_clock::now().time_since_epoch())).count() #else @@ -187,7 +187,7 @@ inline std::string log_filename_generator_impl(const std::string & log_file_base // #include "log.h" // #ifndef LOG_NO_FILE_LINE_FUNCTION - #ifndef _WIN32 + #ifndef _MSC_VER #define LOG_FLF_FMT "[%24s:%5d][%24s] " #define LOG_FLF_VAL , __FILE__, __LINE__, __FUNCTION__ #else @@ -200,7 +200,7 @@ inline std::string log_filename_generator_impl(const std::string & log_file_base #endif #ifdef LOG_TEE_FILE_LINE_FUNCTION - #ifndef _WIN32 + #ifndef _MSC_VER #define LOG_TEE_FLF_FMT "[%24s:%5d][%24s] " #define LOG_TEE_FLF_VAL , __FILE__, __LINE__, __FUNCTION__ #else @@ -224,7 +224,7 @@ enum LogTriState // INTERNAL, DO NOT USE // USE LOG() INSTEAD // -#ifndef _WIN32 +#ifndef _MSC_VER #define LOG_IMPL(str, ...) \ { \ if (LOG_TARGET != nullptr) \ @@ -247,7 +247,7 @@ enum LogTriState // INTERNAL, DO NOT USE // USE LOG_TEE() INSTEAD // -#ifndef _WIN32 +#ifndef _MSC_VER #define LOG_TEE_IMPL(str, ...) \ { \ if (LOG_TARGET != nullptr) \ @@ -284,7 +284,7 @@ enum LogTriState // Main LOG macro. // behaves like printf, and supports arguments the exact same way. // -#ifndef _WIN32 +#ifndef _MSC_VER #define LOG(...) LOG_IMPL(__VA_ARGS__, "") #else #define LOG(str, ...) LOG_IMPL("%s" str, "", __VA_ARGS__, "") @@ -298,14 +298,14 @@ enum LogTriState // Secondary target can be changed just like LOG_TARGET // by defining LOG_TEE_TARGET // -#ifndef _WIN32 +#ifndef _MSC_VER #define LOG_TEE(...) LOG_TEE_IMPL(__VA_ARGS__, "") #else #define LOG_TEE(str, ...) LOG_TEE_IMPL("%s" str, "", __VA_ARGS__, "") #endif // LOG macro variants with auto endline. -#ifndef _WIN32 +#ifndef _MSC_VER #define LOGLN(...) LOG_IMPL(__VA_ARGS__, "\n") #define LOG_TEELN(...) LOG_TEE_IMPL(__VA_ARGS__, "\n") #else @@ -461,7 +461,7 @@ inline void log_test() LOG("13 Hello World this time in yet new file?\n") log_set_target(log_filename_generator("llama_autonamed", "log")); LOG("14 Hello World in log with generated filename!\n") -#ifdef _WIN32 +#ifdef _MSC_VER LOG_TEE("15 Hello msvc TEE without arguments\n") LOG_TEE("16 Hello msvc TEE with (%d)(%s) arguments\n", 1, "test") LOG_TEELN("17 Hello msvc TEELN without arguments\n")