From f1a49ef2a1241d53b4b89e13c2d1f8c97a2f773d Mon Sep 17 00:00:00 2001 From: Tony Butler Date: Wed, 22 Sep 2021 12:23:19 -0600 Subject: [PATCH] Improve compiler version strings --- src/base/kernel/Entry.cpp | 3 +++ src/base/kernel/Platform_unix.cpp | 2 ++ src/base/kernel/Platform_win.cpp | 2 ++ src/base/kernel/config/BaseConfig.cpp | 4 ++++ src/version.h | 13 +++++++++++++ 5 files changed, 24 insertions(+) diff --git a/src/base/kernel/Entry.cpp b/src/base/kernel/Entry.cpp index f12e833f..e0b6027f 100644 --- a/src/base/kernel/Entry.cpp +++ b/src/base/kernel/Entry.cpp @@ -58,6 +58,9 @@ static int showVersion() # elif defined(__GNUC__) " with GCC"); printf(" %d.%d.%d", __GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__); +# elif defined(MSVC_VERSION_PATCH) + " with MSVC"); + printf(" %d (%d.%d.%d.%d)", MSVC_VERSION, MSVC_VERSION_MAJOR, MSVC_VERSION_MINOR, MSVC_VERSION_PATCH, MSVC_VERSION_BUILD); # elif defined(_MSC_VER) " with MSVC"); printf(" %d", MSVC_VERSION); diff --git a/src/base/kernel/Platform_unix.cpp b/src/base/kernel/Platform_unix.cpp index f5bbc193..a0696a6c 100644 --- a/src/base/kernel/Platform_unix.cpp +++ b/src/base/kernel/Platform_unix.cpp @@ -65,6 +65,8 @@ char *xmrig::Platform::createUserAgent() # ifdef __clang__ length += snprintf(buf + length, max - length, " clang/%d.%d.%d", __clang_major__, __clang_minor__, __clang_patchlevel__); +# elif defined(__INTELC__) + length += snprintf(buf, sizeof buf, "icc/%d.%d.%d.%d (gcc/%d.%d.%d)", __INTELC_MAJOR__, __INTELC_MINOR__, __INTELC_PATCH__, __INTEL_COMPILER_BUILD_DATE, __GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__); # elif defined(__GNUC__) length += snprintf(buf + length, max - length, " gcc/%d.%d.%d", __GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__); # endif diff --git a/src/base/kernel/Platform_win.cpp b/src/base/kernel/Platform_win.cpp index 76d81ae5..5f6de735 100644 --- a/src/base/kernel/Platform_win.cpp +++ b/src/base/kernel/Platform_win.cpp @@ -62,6 +62,8 @@ char *xmrig::Platform::createUserAgent() # ifdef __GNUC__ snprintf(buf + length, max - length, " gcc/%d.%d.%d", __GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__); +# elif defined(MSVC_VERSION_PATCH) + snprintf(buf + length, max - length, " msvc/%dv%d.%d.%d.%d", MSVC_VERSION, MSVC_VERSION_MAJOR, MSVC_VERSION_MINOR, MSVC_VERSION_PATCH, MSVC_VERSION_BUILD); # elif _MSC_VER snprintf(buf + length, max - length, " msvc/%d", MSVC_VERSION); # endif diff --git a/src/base/kernel/config/BaseConfig.cpp b/src/base/kernel/config/BaseConfig.cpp index 37982999..ddb0744a 100644 --- a/src/base/kernel/config/BaseConfig.cpp +++ b/src/base/kernel/config/BaseConfig.cpp @@ -136,8 +136,12 @@ void xmrig::BaseConfig::printVersions() # if defined(__clang__) snprintf(buf, sizeof buf, "clang/%d.%d.%d", __clang_major__, __clang_minor__, __clang_patchlevel__); +# elif defined(__INTELC__) + snprintf(buf, sizeof buf, "icc/%d.%d.%d.%d (gcc/%d.%d.%d)", __INTELC_MAJOR__, __INTELC_MINOR__, __INTELC_PATCH__, __INTEL_COMPILER_BUILD_DATE, __GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__); # elif defined(__GNUC__) snprintf(buf, sizeof buf, "gcc/%d.%d.%d", __GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__); +# elif defined(MSVC_VERSION_PATCH) + snprintf(buf, sizeof buf, "MSVC/%d (%d.%d.%d.%d)", MSVC_VERSION, MSVC_VERSION_MAJOR, MSVC_VERSION_MINOR, MSVC_VERSION_PATCH, MSVC_VERSION_BUILD); # elif defined(_MSC_VER) snprintf(buf, sizeof buf, "MSVC/%d", MSVC_VERSION); # endif diff --git a/src/version.h b/src/version.h index 91676d85..2753015d 100644 --- a/src/version.h +++ b/src/version.h @@ -50,4 +50,17 @@ # endif #endif +#if defined(_MSC_FULL_VER) +# define MSVC_VERSION_MAJOR ((_MSC_FULL_VER / 10000000) >> 0) +# define MSVC_VERSION_MINOR (((_MSC_FULL_VER - (MSVC_VERSION_MAJOR * 10000000)) / 100000) >> 0) +# define MSVC_VERSION_PATCH (_MSC_FULL_VER - (MSVC_VERSION_MAJOR * 10000000) - (MSVC_VERSION_MINOR * 100000)) +# define MSVC_VERSION_BUILD _MSC_BUILD +#endif + +#if defined(__INTEL_COMPILER) +# define __INTELC_MAJOR__ ((__INTEL_COMPILER / 100) >> 0) +# define __INTELC_MINOR__ (((__INTEL_COMPILER - (__INTELC_MAJOR__ * 100)) / 10) >> 0) +# define __INTELC_PATCH__ (__INTEL_COMPILER - (__INTELC_MAJOR__ * 100) - (__INTELC_MINOR__ * 10)) +#endif + #endif /* XMRIG_VERSION_H */