From e40c2ba93068944580eea8b3b724920be0bea66b Mon Sep 17 00:00:00 2001 From: Sergiu Deitsch Date: Fri, 1 Oct 2021 11:11:10 +0200 Subject: [PATCH] export OS_* defines (fixes #715) --- .gitignore | 13 +----- CMakeLists.txt | 1 + bazel/glog.bzl | 1 + src/base/commandlineflags.h | 2 +- src/demangle.cc | 6 +-- src/demangle.h | 2 +- src/demangle_unittest.cc | 4 +- src/glog/logging.h.in | 14 ++++--- src/glog/platform.h | 58 +++++++++++++++++++++++++++ src/glog/raw_logging.h.in | 6 +-- src/glog/vlog_is_on.h.in | 2 +- src/googletest.h | 14 +++---- src/logging.cc | 40 +++++++++--------- src/logging_custom_prefix_unittest.cc | 16 ++++---- src/logging_striptest_main.cc | 2 +- src/logging_unittest.cc | 18 ++++----- src/mock-log.h | 2 +- src/raw_logging.cc | 6 +-- src/signalhandler.cc | 20 ++++----- src/signalhandler_unittest.cc | 2 +- src/stacktrace.h | 2 +- src/stacktrace_libunwind-inl.h | 2 +- src/stacktrace_unittest.cc | 2 +- src/stacktrace_x86-inl.h | 4 +- src/stl_logging_unittest.cc | 4 +- src/symbolize.cc | 10 ++--- src/symbolize.h | 2 +- src/symbolize_unittest.cc | 10 ++--- src/utilities.cc | 22 +++++----- src/utilities.h | 36 +++++------------ src/utilities_unittest.cc | 2 +- src/vlog_is_on.cc | 4 +- src/windows/port.h | 2 +- 33 files changed, 183 insertions(+), 148 deletions(-) create mode 100644 src/glog/platform.h diff --git a/.gitignore b/.gitignore index b3158cf31..2678271dd 100644 --- a/.gitignore +++ b/.gitignore @@ -1,12 +1,3 @@ -/*.cmake -/*.filters -/*.sln -/*.vcxproj -autom4te.cache +*.orig +/build*/ bazel-* -CMakeCache.txt -CMakeFiles/ -config.h -glog-*.tar.gz -packages/debian-* -packages/rpm-unknown diff --git a/CMakeLists.txt b/CMakeLists.txt index 2409a3ab7..e68c0da43 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -545,6 +545,7 @@ set (GLOG_PUBLIC_H ${CMAKE_CURRENT_BINARY_DIR}/glog/stl_logging.h ${CMAKE_CURRENT_BINARY_DIR}/glog/vlog_is_on.h src/glog/log_severity.h + src/glog/platform.h ) set (GLOG_SRCS diff --git a/bazel/glog.bzl b/bazel/glog.bzl index 15dc8227c..f71795b2f 100644 --- a/bazel/glog.bzl +++ b/bazel/glog.bzl @@ -140,6 +140,7 @@ def glog_library(namespace = "google", with_gflags = 1, **kwargs): }), hdrs = [ "src/glog/log_severity.h", + "src/glog/platform.h", ":logging_h", ":raw_logging_h", ":stl_logging_h", diff --git a/src/base/commandlineflags.h b/src/base/commandlineflags.h index c13235ff4..0599869f4 100644 --- a/src/base/commandlineflags.h +++ b/src/base/commandlineflags.h @@ -59,7 +59,7 @@ #else -#include "glog/logging.h" +#include #define DECLARE_VARIABLE(type, shorttype, name, tn) \ namespace fL##shorttype { \ diff --git a/src/demangle.cc b/src/demangle.cc index 0010c1c43..d7db165cd 100644 --- a/src/demangle.cc +++ b/src/demangle.cc @@ -39,13 +39,13 @@ #include "demangle.h" #include "utilities.h" -#if defined(OS_WINDOWS) +#if defined(GLOG_OS_WINDOWS) #include #endif _START_GOOGLE_NAMESPACE_ -#if !defined(OS_WINDOWS) +#if !defined(GLOG_OS_WINDOWS) typedef struct { const char *abbrev; const char *real_name; @@ -1324,7 +1324,7 @@ static bool ParseTopLevelMangledName(State *state) { // The demangler entry point. bool Demangle(const char *mangled, char *out, size_t out_size) { -#if defined(OS_WINDOWS) +#if defined(GLOG_OS_WINDOWS) // When built with incremental linking, the Windows debugger // library provides a more complicated `Symbol->Name` with the // Incremental Linking Table offset, which looks like diff --git a/src/demangle.h b/src/demangle.h index a667db437..2ccb77335 100644 --- a/src/demangle.h +++ b/src/demangle.h @@ -71,7 +71,7 @@ #define BASE_DEMANGLE_H_ #include "config.h" -#include "glog/logging.h" +#include _START_GOOGLE_NAMESPACE_ diff --git a/src/demangle_unittest.cc b/src/demangle_unittest.cc index be483411f..fe3974b13 100644 --- a/src/demangle_unittest.cc +++ b/src/demangle_unittest.cc @@ -36,7 +36,7 @@ #include #include #include -#include "glog/logging.h" +#include #include "demangle.h" #include "googletest.h" #include "config.h" @@ -62,7 +62,7 @@ static const char *DemangleIt(const char * const mangled) { } } -#if defined(OS_WINDOWS) +#if defined(GLOG_OS_WINDOWS) TEST(Demangle, Windows) { EXPECT_STREQ( diff --git a/src/glog/logging.h.in b/src/glog/logging.h.in index 8edb6699d..e64e44acd 100644 --- a/src/glog/logging.h.in +++ b/src/glog/logging.h.in @@ -63,8 +63,10 @@ #define GLOG_MSVC_POP_WARNING() #endif +#include + #if @ac_cv_have_glog_export@ -#include "glog/export.h" +#include #endif // Annoying stuff for windows -- makes sure clients can import these functions @@ -106,7 +108,7 @@ #if @ac_cv_cxx11_atomic@ && __cplusplus >= 201103L #include -#elif defined(OS_WINDOWS) +#elif defined(GLOG_OS_WINDOWS) #include #endif @@ -586,8 +588,8 @@ DECLARE_bool(log_utc_time); @ac_google_start_namespace@ // They need the definitions of integer types. -#include "glog/log_severity.h" -#include "glog/vlog_is_on.h" +#include +#include // Initialize google's logging library. You will see the program name // specified by argv0 in log outputs. @@ -1055,7 +1057,7 @@ namespace google { LOG_PREVIOUS_TIME_RAW.store(std::chrono::duration_cast(LOG_CURRENT_TIME).count(), std::memory_order_relaxed); \ if (LOG_TIME_DELTA > LOG_TIME_PERIOD) @ac_google_namespace@::LogMessage( \ __FILE__, __LINE__, @ac_google_namespace@::GLOG_ ## severity).stream() -#elif defined(OS_WINDOWS) +#elif defined(GLOG_OS_WINDOWS) #define SOME_KIND_OF_LOG_EVERY_T(severity, seconds) \ GLOG_CONSTEXPR LONGLONG LOG_TIME_PERIOD = (seconds) * LONGLONG(1000000000); \ static LARGE_INTEGER LOG_PREVIOUS_TIME; \ @@ -1131,7 +1133,7 @@ namespace google { __FILE__, __LINE__, @ac_google_namespace@::GLOG_ ## severity, LOG_OCCURRENCES, \ &what_to_do).stream() -#elif defined(OS_WINDOWS) +#elif defined(GLOG_OS_WINDOWS) #define SOME_KIND_OF_LOG_EVERY_N(severity, n, what_to_do) \ static volatile unsigned LOG_OCCURRENCES = 0; \ diff --git a/src/glog/platform.h b/src/glog/platform.h new file mode 100644 index 000000000..e61441192 --- /dev/null +++ b/src/glog/platform.h @@ -0,0 +1,58 @@ +// Copyright (c) 2008, Google Inc. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Author: Shinichiro Hamaji +// +// Detect supported platforms. + +#ifndef GLOG_PLATFORM_H +#define GLOG_PLATFORM_H + +#if defined(WIN32) || defined(_WIN32) || defined(__WIN32__) +#define GLOG_OS_WINDOWS +#elif defined(__CYGWIN__) || defined(__CYGWIN32__) +#define GLOG_OS_CYGWIN +#elif defined(linux) || defined(__linux) || defined(__linux__) +#ifndef GLOG_OS_LINUX +#define GLOG_OS_LINUX +#endif +#elif defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__) +#define GLOG_OS_MACOSX +#elif defined(__FreeBSD__) +#define GLOG_OS_FREEBSD +#elif defined(__NetBSD__) +#define GLOG_OS_NETBSD +#elif defined(__OpenBSD__) +#define GLOG_OS_OPENBSD +#else +// TODO(hamaji): Add other platforms. +#error Platform not supported by glog. Please consider to contribute platform information by submitting a pull request on Github. +#endif + +#endif // GLOG_PLATFORM_H diff --git a/src/glog/raw_logging.h.in b/src/glog/raw_logging.h.in index cfd2add8d..4a7a1a222 100644 --- a/src/glog/raw_logging.h.in +++ b/src/glog/raw_logging.h.in @@ -40,9 +40,9 @@ @ac_google_start_namespace@ -#include "glog/log_severity.h" -#include "glog/logging.h" -#include "glog/vlog_is_on.h" +#include +#include +#include // Annoying stuff for windows -- makes sure clients can import these functions #ifndef GOOGLE_GLOG_DLL_DECL diff --git a/src/glog/vlog_is_on.h.in b/src/glog/vlog_is_on.h.in index f5a76c357..5c9a7f457 100644 --- a/src/glog/vlog_is_on.h.in +++ b/src/glog/vlog_is_on.h.in @@ -61,7 +61,7 @@ #ifndef BASE_VLOG_IS_ON_H_ #define BASE_VLOG_IS_ON_H_ -#include "glog/log_severity.h" +#include // Annoying stuff for windows -- makes sure clients can import these functions #ifndef GOOGLE_GLOG_DLL_DECL diff --git a/src/googletest.h b/src/googletest.h index bc3890ff2..a73846921 100644 --- a/src/googletest.h +++ b/src/googletest.h @@ -76,7 +76,7 @@ _END_GOOGLE_NAMESPACE_ #define GOOGLE_GLOG_DLL_DECL static inline string GetTempDir() { -#ifndef OS_WINDOWS +#ifndef GLOG_OS_WINDOWS return "/tmp"; #else char tmp[MAX_PATH]; @@ -85,7 +85,7 @@ static inline string GetTempDir() { #endif } -#if defined(OS_WINDOWS) && defined(_MSC_VER) && !defined(TEST_SRC_DIR) +#if defined(GLOG_OS_WINDOWS) && defined(_MSC_VER) && !defined(TEST_SRC_DIR) // The test will run in glog/vsproject/ // (e.g., glog/vsproject/logging_unittest). static const char TEST_SRC_DIR[] = "../.."; @@ -220,7 +220,7 @@ static inline void CalledAbort() { longjmp(g_jmp_buf, 1); } -#ifdef OS_WINDOWS +#ifdef GLOG_OS_WINDOWS // TODO(hamaji): Death test somehow doesn't work in Windows. #define ASSERT_DEATH(fn, msg) #else @@ -510,7 +510,7 @@ static inline bool MungeAndDiffTestStderr(const string& golden_filename) { WriteToFile(golden, munged_golden); string munged_captured = cap->filename() + ".munged"; WriteToFile(captured, munged_captured); -#ifdef OS_WINDOWS +#ifdef GLOG_OS_WINDOWS string diffcmd("fc " + munged_golden + " " + munged_captured); #else string diffcmd("diff -u " + munged_golden + " " + munged_captured); @@ -552,7 +552,7 @@ class Thread { virtual ~Thread() {} void SetJoinable(bool) {} -#if defined(OS_WINDOWS) && !defined(OS_CYGWIN) +#if defined(GLOG_OS_WINDOWS) && !defined(GLOG_OS_CYGWIN) void Start() { handle_ = CreateThread(NULL, 0, @@ -585,7 +585,7 @@ class Thread { return NULL; } -#if defined(OS_WINDOWS) && !defined(OS_CYGWIN) +#if defined(GLOG_OS_WINDOWS) && !defined(GLOG_OS_CYGWIN) static DWORD InvokeThreadW(void* self) { InvokeThread(self); return 0; @@ -598,7 +598,7 @@ class Thread { }; static inline void SleepForMilliseconds(unsigned t) { -#ifndef OS_WINDOWS +#ifndef GLOG_OS_WINDOWS # if defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE >= 199309L const struct timespec req = {0, t * 1000 * 1000}; nanosleep(&req, NULL); diff --git a/src/logging.cc b/src/logging.cc index b89042f53..fe3d609cd 100644 --- a/src/logging.cc +++ b/src/logging.cc @@ -59,14 +59,14 @@ #include #include // for errno #include -#ifdef OS_WINDOWS +#ifdef GLOG_OS_WINDOWS #include "windows/dirent.h" #else #include // for automatic removal of old logs #endif #include "base/commandlineflags.h" // to get the program name -#include "glog/logging.h" -#include "glog/raw_logging.h" +#include +#include #include "base/googleinit.h" #ifdef HAVE_STACKTRACE @@ -122,7 +122,7 @@ GLOG_DEFINE_bool(alsologtostderr, BoolFromEnv("GOOGLE_ALSOLOGTOSTDERR", false), "log messages go to stderr in addition to logfiles"); GLOG_DEFINE_bool(colorlogtostderr, false, "color messages logged to stderr (if supported by terminal)"); -#ifdef OS_LINUX +#ifdef GLOG_OS_LINUX GLOG_DEFINE_bool(drop_log_memory, true, "Drop in-memory buffers of log contents. " "Logs can grow very quickly and they are rarely read before they " "need to be evicted from memory. Instead, drop them from memory " @@ -198,7 +198,7 @@ GLOG_DEFINE_bool(log_utc_time, false, #define PATH_SEPARATOR '/' #ifndef HAVE_PREAD -#if defined(OS_WINDOWS) +#if defined(GLOG_OS_WINDOWS) #include #define ssize_t SSIZE_T #endif @@ -241,7 +241,7 @@ static void GetHostName(string* hostname) { *buf.nodename = '\0'; } *hostname = buf.nodename; -#elif defined(OS_WINDOWS) +#elif defined(GLOG_OS_WINDOWS) char buf[MAX_COMPUTERNAME_LENGTH + 1]; DWORD len = MAX_COMPUTERNAME_LENGTH + 1; if (GetComputerNameA(buf, &len)) { @@ -258,7 +258,7 @@ static void GetHostName(string* hostname) { // Returns true iff terminal supports using colors in output. static bool TerminalSupportsColor() { bool term_supports_color = false; -#ifdef OS_WINDOWS +#ifdef GLOG_OS_WINDOWS // on Windows TERM variable is usually not set, but the console does // support colors. term_supports_color = true; @@ -312,7 +312,7 @@ static GLogColor SeverityToColor(LogSeverity severity) { return color; } -#ifdef OS_WINDOWS +#ifdef GLOG_OS_WINDOWS // Returns the character attribute for the given color. static WORD GetColorAttribute(GLogColor color) { @@ -337,7 +337,7 @@ static const char* GetAnsiColorCode(GLogColor color) { return NULL; // stop warning about return type. } -#endif // OS_WINDOWS +#endif // GLOG_OS_WINDOWS // Safely get max_log_size, overriding to 1 if it somehow gets defined as 0 static int32 MaxLogSize() { @@ -747,7 +747,7 @@ static void ColoredWriteToStderr(LogSeverity severity, fwrite(message, len, 1, stderr); return; } -#ifdef OS_WINDOWS +#ifdef GLOG_OS_WINDOWS const HANDLE stderr_handle = GetStdHandle(STD_ERROR_HANDLE); // Gets the current text color. @@ -769,7 +769,7 @@ static void ColoredWriteToStderr(LogSeverity severity, fprintf(stderr, "\033[0;3%sm", GetAnsiColorCode(color)); fwrite(message, len, 1, stderr); fprintf(stderr, "\033[m"); // Resets the terminal to default. -#endif // OS_WINDOWS +#endif // GLOG_OS_WINDOWS } static void WriteToStderr(const char* message, size_t len) { @@ -782,7 +782,7 @@ inline void LogDestination::MaybeLogToStderr(LogSeverity severity, const char* message, size_t message_len, size_t /*prefix_len*/) { if ((severity >= FLAGS_stderrthreshold) || FLAGS_alsologtostderr) { ColoredWriteToStderr(severity, message, message_len); -#ifdef OS_WINDOWS +#ifdef GLOG_OS_WINDOWS // On Windows, also output to the debugger ::OutputDebugStringA(message); #elif defined(__ANDROID__) @@ -1050,7 +1050,7 @@ bool LogFileObject::CreateLogfile(const string& time_pid_string) { } return false; } -#ifdef OS_WINDOWS +#ifdef GLOG_OS_WINDOWS // https://github.com/golang/go/issues/27638 - make sure we seek to the end to append // empirically replicated with wine over mingw build if (!FLAGS_timestamp_in_logfile_name) { @@ -1074,7 +1074,7 @@ bool LogFileObject::CreateLogfile(const string& time_pid_string) { linkpath += linkname; unlink(linkpath.c_str()); // delete old one if it exists -#if defined(OS_WINDOWS) +#if defined(GLOG_OS_WINDOWS) // TODO(hamaji): Create lnk file on Windows? #elif defined(HAVE_UNISTD_H) // We must have unistd.h. @@ -1264,7 +1264,7 @@ void LogFileObject::Write(bool force_flush, (bytes_since_flush_ >= 1000000) || (CycleClock_Now() >= next_flush_time_) ) { FlushUnlocked(); -#ifdef OS_LINUX +#ifdef GLOG_OS_LINUX // Only consider files >= 3MiB if (FLAGS_drop_log_memory && file_length_ >= (3 << 20)) { // Don't evict the most recent 1-2MiB so as not to impact a tailer @@ -1299,7 +1299,7 @@ void LogFileObject::Write(bool force_flush, LogCleaner::LogCleaner() : enabled_(false), overdue_days_(7), dir_delim_('/') { -#ifdef OS_WINDOWS +#ifdef GLOG_OS_WINDOWS dir_delim_ = '\\'; #endif } @@ -2201,7 +2201,7 @@ bool SendEmail(const char*dest, const char *subject, const char*body){ static void GetTempDirectories(vector* list) { list->clear(); -#ifdef OS_WINDOWS +#ifdef GLOG_OS_WINDOWS // On windows we'll try to find a directory in this order: // C:/Documents & Settings/whomever/TEMP (or whatever GetTempPath() is) // C:/TMP/ @@ -2260,7 +2260,7 @@ const vector& GetLoggingDirectories() { logging_directories_list->push_back(FLAGS_log_dir.c_str()); } else { GetTempDirectories(logging_directories_list); -#ifdef OS_WINDOWS +#ifdef GLOG_OS_WINDOWS char tmp[MAX_PATH]; if (GetWindowsDirectoryA(tmp, MAX_PATH)) logging_directories_list->push_back(tmp); @@ -2303,7 +2303,7 @@ void TruncateLogFile(const char *path, int64 limit, int64 keep) { // Don't follow symlinks unless they're our own fd symlinks in /proc int flags = O_RDWR; // TODO(hamaji): Support other environments. -#ifdef OS_LINUX +#ifdef GLOG_OS_LINUX const char *procfd_prefix = "/proc/self/fd/"; if (strncmp(procfd_prefix, path, strlen(procfd_prefix))) flags |= O_NOFOLLOW; #endif @@ -2442,7 +2442,7 @@ int posix_strerror_r(int err, char *buf, size_t len) { return 0; } else { buf[0] = '\000'; -#if defined(OS_MACOSX) || defined(OS_FREEBSD) || defined(OS_OPENBSD) +#if defined(GLOG_OS_MACOSX) || defined(GLOG_OS_FREEBSD) || defined(GLOG_OS_OPENBSD) if (reinterpret_cast(rc) < sys_nerr) { // This means an error on MacOSX or FreeBSD. return -1; diff --git a/src/logging_custom_prefix_unittest.cc b/src/logging_custom_prefix_unittest.cc index e4b7d98c1..ac326dc52 100644 --- a/src/logging_custom_prefix_unittest.cc +++ b/src/logging_custom_prefix_unittest.cc @@ -56,8 +56,8 @@ #include #include "base/commandlineflags.h" -#include "glog/logging.h" -#include "glog/raw_logging.h" +#include +#include #include "googletest.h" DECLARE_string(log_backtrace_at); // logging.cc @@ -592,7 +592,7 @@ void TestCHECK() { // Tests using CHECK*() on anonymous enums. // Apple's GCC doesn't like this. -#if !defined(OS_MACOSX) +#if !defined(GLOG_OS_MACOSX) CHECK_EQ(CASE_A, CASE_A); CHECK_NE(CASE_A, CASE_B); CHECK_GE(CASE_A, CASE_A); @@ -674,7 +674,7 @@ static void GetFiles(const string& pattern, vector* files) { files->push_back(string(g.gl_pathv[i])); } globfree(&g); -#elif defined(OS_WINDOWS) +#elif defined(GLOG_OS_WINDOWS) WIN32_FIND_DATAA data; HANDLE handle = FindFirstFileA(pattern.c_str(), &data); size_t index = pattern.rfind('\\'); @@ -803,7 +803,7 @@ static void TestTwoProcessesWrite() { } static void TestSymlink() { -#ifndef OS_WINDOWS +#ifndef GLOG_OS_WINDOWS fprintf(stderr, "==== Test setting log file symlink\n"); string dest = FLAGS_test_tmpdir + "/logging_test_symlink"; string sym = FLAGS_test_tmpdir + "/symlinkbase"; @@ -946,7 +946,7 @@ static void TestTruncate() { // MacOSX 10.4 doesn't fail in this case. // Windows doesn't have symlink. // Let's just ignore this test for these cases. -#if !defined(OS_MACOSX) && !defined(OS_WINDOWS) +#if !defined(GLOG_OS_MACOSX) && !defined(GLOG_OS_WINDOWS) // Through a symlink should fail to truncate string linkname = path + ".link"; unlink(linkname.c_str()); @@ -955,7 +955,7 @@ static void TestTruncate() { #endif // The /proc/self path makes sense only for linux. -#if defined(OS_LINUX) +#if defined(GLOG_OS_LINUX) // Through an open fd symlink should work int fd; CHECK_ERR(fd = open(path.c_str(), O_APPEND | O_WRONLY)); @@ -1211,7 +1211,7 @@ TEST(Strerror, logging) { CHECK_EQ(posix_strerror_r(errcode, buf, 0), -1); CHECK_EQ(buf[0], 'A'); CHECK_EQ(posix_strerror_r(errcode, NULL, buf_size), -1); -#if defined(OS_MACOSX) || defined(OS_FREEBSD) || defined(OS_OPENBSD) +#if defined(GLOG_OS_MACOSX) || defined(GLOG_OS_FREEBSD) || defined(GLOG_OS_OPENBSD) // MacOSX or FreeBSD considers this case is an error since there is // no enough space. CHECK_EQ(posix_strerror_r(errcode, buf, 1), -1); diff --git a/src/logging_striptest_main.cc b/src/logging_striptest_main.cc index 87d8005bd..27e12544e 100644 --- a/src/logging_striptest_main.cc +++ b/src/logging_striptest_main.cc @@ -34,7 +34,7 @@ #include #include #include -#include "glog/logging.h" +#include #include "base/commandlineflags.h" #include "config.h" diff --git a/src/logging_unittest.cc b/src/logging_unittest.cc index ff26749f6..62101ba59 100644 --- a/src/logging_unittest.cc +++ b/src/logging_unittest.cc @@ -56,8 +56,8 @@ #include #include "base/commandlineflags.h" -#include "glog/logging.h" -#include "glog/raw_logging.h" +#include +#include #include "googletest.h" DECLARE_string(log_backtrace_at); // logging.cc @@ -587,7 +587,7 @@ void TestCHECK() { // Tests using CHECK*() on anonymous enums. // Apple's GCC doesn't like this. -#if !defined(OS_MACOSX) +#if !defined(GLOG_OS_MACOSX) CHECK_EQ(CASE_A, CASE_A); CHECK_NE(CASE_A, CASE_B); CHECK_GE(CASE_A, CASE_A); @@ -669,7 +669,7 @@ static void GetFiles(const string& pattern, vector* files) { files->push_back(string(g.gl_pathv[i])); } globfree(&g); -#elif defined(OS_WINDOWS) +#elif defined(GLOG_OS_WINDOWS) WIN32_FIND_DATAA data; HANDLE handle = FindFirstFileA(pattern.c_str(), &data); size_t index = pattern.rfind('\\'); @@ -798,7 +798,7 @@ static void TestTwoProcessesWrite() { } static void TestSymlink() { -#ifndef OS_WINDOWS +#ifndef GLOG_OS_WINDOWS fprintf(stderr, "==== Test setting log file symlink\n"); string dest = FLAGS_test_tmpdir + "/logging_test_symlink"; string sym = FLAGS_test_tmpdir + "/symlinkbase"; @@ -941,7 +941,7 @@ static void TestTruncate() { // MacOSX 10.4 doesn't fail in this case. // Windows doesn't have symlink. // Let's just ignore this test for these cases. -#if !defined(OS_MACOSX) && !defined(OS_WINDOWS) +#if !defined(GLOG_OS_MACOSX) && !defined(GLOG_OS_WINDOWS) // Through a symlink should fail to truncate string linkname = path + ".link"; unlink(linkname.c_str()); @@ -950,7 +950,7 @@ static void TestTruncate() { #endif // The /proc/self path makes sense only for linux. -#if defined(OS_LINUX) +#if defined(GLOG_OS_LINUX) // Through an open fd symlink should work int fd; CHECK_ERR(fd = open(path.c_str(), O_APPEND | O_WRONLY)); @@ -1031,7 +1031,7 @@ int64 elapsedTime_ns(const std::chrono::steady_clock::time_point& begin, return std::chrono::duration_cast((end - begin)) .count(); } -#elif defined(OS_WINDOWS) +#elif defined(GLOG_OS_WINDOWS) struct LogTimeRecorder { LogTimeRecorder() : m_streamTimes(0) {} size_t m_streamTimes; @@ -1299,7 +1299,7 @@ TEST(Strerror, logging) { CHECK_EQ(posix_strerror_r(errcode, buf, 0), -1); CHECK_EQ(buf[0], 'A'); CHECK_EQ(posix_strerror_r(errcode, NULL, buf_size), -1); -#if defined(OS_MACOSX) || defined(OS_FREEBSD) || defined(OS_OPENBSD) +#if defined(GLOG_OS_MACOSX) || defined(GLOG_OS_FREEBSD) || defined(GLOG_OS_OPENBSD) // MacOSX or FreeBSD considers this case is an error since there is // no enough space. CHECK_EQ(posix_strerror_r(errcode, buf, 1), -1); diff --git a/src/mock-log.h b/src/mock-log.h index 30a0f74ef..5b0ea0af8 100644 --- a/src/mock-log.h +++ b/src/mock-log.h @@ -42,7 +42,7 @@ #include -#include "glog/logging.h" +#include _START_GOOGLE_NAMESPACE_ namespace glog_testing { diff --git a/src/raw_logging.cc b/src/raw_logging.cc index e7dc5437a..8cedabd0f 100644 --- a/src/raw_logging.cc +++ b/src/raw_logging.cc @@ -42,8 +42,8 @@ #include // for open() #include #include "config.h" -#include "glog/logging.h" // To pick up flag settings etc. -#include "glog/raw_logging.h" +#include // To pick up flag settings etc. +#include #include "base/commandlineflags.h" #ifdef HAVE_STACKTRACE @@ -59,7 +59,7 @@ # include #endif -#if (defined(HAVE_SYSCALL_H) || defined(HAVE_SYS_SYSCALL_H)) && (!(defined(OS_MACOSX))) +#if (defined(HAVE_SYSCALL_H) || defined(HAVE_SYS_SYSCALL_H)) && (!(defined(GLOG_OS_MACOSX))) # define safe_write(fd, s, len) syscall(SYS_write, fd, s, len) #else // Not so safe, but what can you do? diff --git a/src/signalhandler.cc b/src/signalhandler.cc index b319d4b13..ec324ef52 100644 --- a/src/signalhandler.cc +++ b/src/signalhandler.cc @@ -34,7 +34,7 @@ #include "utilities.h" #include "stacktrace.h" #include "symbolize.h" -#include "glog/logging.h" +#include #include #include @@ -63,7 +63,7 @@ const struct { { SIGILL, "SIGILL" }, { SIGFPE, "SIGFPE" }, { SIGABRT, "SIGABRT" }, -#if !defined(OS_WINDOWS) +#if !defined(GLOG_OS_WINDOWS) { SIGBUS, "SIGBUS" }, #endif { SIGTERM, "SIGTERM" }, @@ -71,7 +71,7 @@ const struct { static bool kFailureSignalHandlerInstalled = false; -#if !defined(OS_WINDOWS) +#if !defined(GLOG_OS_WINDOWS) // Returns the program counter from signal context, NULL if unknown. void* GetPC(void* ucontext_in_void) { #if (defined(HAVE_UCONTEXT_H) || defined(HAVE_SYS_UCONTEXT_H)) && defined(PC_FROM_UCONTEXT) @@ -212,7 +212,7 @@ void DumpSignalInfo(int signal_number, siginfo_t *siginfo) { formatter.AppendUint64((uintptr_t)pthread_self(), 16); formatter.AppendString(") "); // Only linux has the PID of the signal sender in si_pid. -#ifdef OS_LINUX +#ifdef GLOG_OS_LINUX formatter.AppendString("from PID "); formatter.AppendUint64(static_cast(siginfo->si_pid), 10); formatter.AppendString("; "); @@ -257,7 +257,7 @@ void InvokeDefaultSignalHandler(int signal_number) { sig_action.sa_handler = SIG_DFL; sigaction(signal_number, &sig_action, NULL); kill(getpid(), signal_number); -#elif defined(OS_WINDOWS) +#elif defined(GLOG_OS_WINDOWS) signal(signal_number, SIG_DFL); raise(signal_number); #endif @@ -271,7 +271,7 @@ static pthread_t* g_entered_thread_id_pointer = NULL; // Dumps signal and stack frame information, and invokes the default // signal handler once our job is done. -#if defined(OS_WINDOWS) +#if defined(GLOG_OS_WINDOWS) void FailureSignalHandler(int signal_number) #else void FailureSignalHandler(int signal_number, @@ -318,7 +318,7 @@ void FailureSignalHandler(int signal_number, // First dump time info. DumpTimeInfo(); -#if !defined(OS_WINDOWS) +#if !defined(GLOG_OS_WINDOWS) // Get the program counter from ucontext. void *pc = GetPC(ucontext); DumpStackFrameInfo("PC: ", pc); @@ -368,7 +368,7 @@ bool IsFailureSignalHandlerInstalled() { sigaction(SIGABRT, NULL, &sig_action); if (sig_action.sa_sigaction == &FailureSignalHandler) return true; -#elif defined(OS_WINDOWS) +#elif defined(GLOG_OS_WINDOWS) return kFailureSignalHandlerInstalled; #endif // HAVE_SIGACTION return false; @@ -389,7 +389,7 @@ void InstallFailureSignalHandler() { CHECK_ERR(sigaction(kFailureSignals[i].number, &sig_action, NULL)); } kFailureSignalHandlerInstalled = true; -#elif defined(OS_WINDOWS) +#elif defined(GLOG_OS_WINDOWS) for (size_t i = 0; i < ARRAYSIZE(kFailureSignals); ++i) { CHECK_NE(signal(kFailureSignals[i].number, &FailureSignalHandler), SIG_ERR); @@ -399,7 +399,7 @@ void InstallFailureSignalHandler() { } void InstallFailureWriter(void (*writer)(const char* data, size_t size)) { -#if defined(HAVE_SIGACTION) || defined(OS_WINDOWS) +#if defined(HAVE_SIGACTION) || defined(GLOG_OS_WINDOWS) g_failure_writer = writer; #endif // HAVE_SIGACTION } diff --git a/src/signalhandler_unittest.cc b/src/signalhandler_unittest.cc index 3c90556a7..8a8e021a7 100644 --- a/src/signalhandler_unittest.cc +++ b/src/signalhandler_unittest.cc @@ -41,7 +41,7 @@ #include #include #include -#include "glog/logging.h" +#include #ifdef HAVE_LIB_GFLAGS #include diff --git a/src/stacktrace.h b/src/stacktrace.h index cb64b33a6..f969b0c0c 100644 --- a/src/stacktrace.h +++ b/src/stacktrace.h @@ -34,7 +34,7 @@ #define BASE_STACKTRACE_H_ #include "config.h" -#include "glog/logging.h" +#include _START_GOOGLE_NAMESPACE_ diff --git a/src/stacktrace_libunwind-inl.h b/src/stacktrace_libunwind-inl.h index e29a50c00..2df2573d8 100644 --- a/src/stacktrace_libunwind-inl.h +++ b/src/stacktrace_libunwind-inl.h @@ -37,7 +37,7 @@ extern "C" { #define UNW_LOCAL_ONLY #include } -#include "glog/raw_logging.h" +#include #include "stacktrace.h" _START_GOOGLE_NAMESPACE_ diff --git a/src/stacktrace_unittest.cc b/src/stacktrace_unittest.cc index df78d6240..13bb21889 100644 --- a/src/stacktrace_unittest.cc +++ b/src/stacktrace_unittest.cc @@ -33,7 +33,7 @@ #include #include "config.h" #include "base/commandlineflags.h" -#include "glog/logging.h" +#include #include "stacktrace.h" #ifdef HAVE_EXECINFO_H diff --git a/src/stacktrace_x86-inl.h b/src/stacktrace_x86-inl.h index af2783d78..876bc8274 100644 --- a/src/stacktrace_x86-inl.h +++ b/src/stacktrace_x86-inl.h @@ -33,7 +33,7 @@ #include "utilities.h" // for OS_* macros -#if !defined(OS_WINDOWS) +#if !defined(GLOG_OS_WINDOWS) #include #include #endif @@ -74,7 +74,7 @@ static void **NextStackFrame(void **old_sp) { // last two pages in the address space if ((uintptr_t)new_sp >= 0xffffe000) return NULL; #endif -#if !defined(OS_WINDOWS) +#if !defined(GLOG_OS_WINDOWS) if (!STRICT_UNWINDING) { // Lax sanity checks cause a crash in 32-bit tcmalloc/crash_reason_test // on AMD-based machines with VDSO-enabled kernels. diff --git a/src/stl_logging_unittest.cc b/src/stl_logging_unittest.cc index 79be2b579..5ab241455 100644 --- a/src/stl_logging_unittest.cc +++ b/src/stl_logging_unittest.cc @@ -58,8 +58,8 @@ # endif #endif -#include "glog/logging.h" -#include "glog/stl_logging.h" +#include +#include #include "googletest.h" using namespace std; diff --git a/src/symbolize.cc b/src/symbolize.cc index 617572801..6b9df1cf2 100644 --- a/src/symbolize.cc +++ b/src/symbolize.cc @@ -46,7 +46,7 @@ // and memmove(). We assume they are async-signal-safe. // // Additional header can be specified by the GLOG_BUILD_CONFIG_INCLUDE -// macro to add platform specific defines (e.g. OS_OPENBSD). +// macro to add platform specific defines (e.g. GLOG_OS_OPENBSD). #ifdef GLOG_BUILD_CONFIG_INCLUDE #include GLOG_BUILD_CONFIG_INCLUDE @@ -113,7 +113,7 @@ _END_GOOGLE_NAMESPACE_ #if defined(HAVE_DLFCN_H) #include #endif -#if defined(OS_OPENBSD) +#if defined(GLOG_OS_OPENBSD) #include #else #include @@ -132,7 +132,7 @@ _END_GOOGLE_NAMESPACE_ #include "symbolize.h" #include "config.h" -#include "glog/raw_logging.h" +#include // Re-runs fn until it doesn't cause EINTR. #define NO_INTR(fn) do {} while ((fn) < 0 && errno == EINTR) @@ -847,7 +847,7 @@ static ATTRIBUTE_NOINLINE bool SymbolizeAndDemangle(void *pc, char *out, _END_GOOGLE_NAMESPACE_ -#elif defined(OS_MACOSX) && defined(HAVE_DLADDR) +#elif defined(GLOG_OS_MACOSX) && defined(HAVE_DLADDR) #include #include @@ -872,7 +872,7 @@ static ATTRIBUTE_NOINLINE bool SymbolizeAndDemangle(void *pc, char *out, _END_GOOGLE_NAMESPACE_ -#elif defined(OS_WINDOWS) || defined(OS_CYGWIN) +#elif defined(GLOG_OS_WINDOWS) || defined(GLOG_OS_CYGWIN) #include #include diff --git a/src/symbolize.h b/src/symbolize.h index 082ca6780..2d7d1b82a 100644 --- a/src/symbolize.h +++ b/src/symbolize.h @@ -56,7 +56,7 @@ #include "utilities.h" #include "config.h" -#include "glog/logging.h" +#include #ifdef HAVE_SYMBOLIZE diff --git a/src/symbolize_unittest.cc b/src/symbolize_unittest.cc index d15004971..985fabf07 100644 --- a/src/symbolize_unittest.cc +++ b/src/symbolize_unittest.cc @@ -35,7 +35,7 @@ #include #include "config.h" -#include "glog/logging.h" +#include #include "googletest.h" #include "symbolize.h" #include "utilities.h" @@ -52,7 +52,7 @@ using namespace GOOGLE_NAMESPACE; #define always_inline -#if defined(__ELF__) || defined(OS_WINDOWS) || defined(OS_CYGWIN) +#if defined(__ELF__) || defined(GLOG_OS_WINDOWS) || defined(GLOG_OS_CYGWIN) // A wrapper function for Symbolize() to make the unit test simple. static const char *TrySymbolize(void *pc) { static char symbol[4096]; @@ -360,7 +360,7 @@ static void ATTRIBUTE_NOINLINE TestWithReturnAddress() { #endif } -# elif defined(OS_WINDOWS) || defined(OS_CYGWIN) +# elif defined(GLOG_OS_WINDOWS) || defined(GLOG_OS_CYGWIN) #ifdef _MSC_VER #include @@ -412,10 +412,10 @@ int main(int argc, char **argv) { TestWithPCInsideNonInlineFunction(); TestWithReturnAddress(); return RUN_ALL_TESTS(); -# elif defined(OS_WINDOWS) || defined(OS_CYGWIN) +# elif defined(GLOG_OS_WINDOWS) || defined(GLOG_OS_CYGWIN) TestWithReturnAddress(); return RUN_ALL_TESTS(); -# else // OS_WINDOWS +# else // GLOG_OS_WINDOWS printf("PASS (no symbolize_unittest support)\n"); return 0; # endif // __ELF__ diff --git a/src/utilities.cc b/src/utilities.cc index 2222b7ec5..020e7b3b6 100644 --- a/src/utilities.cc +++ b/src/utilities.cc @@ -161,7 +161,7 @@ static void DumpStackTraceAndExit() { sigemptyset(&sig_action.sa_mask); sig_action.sa_handler = SIG_DFL; sigaction(SIGABRT, &sig_action, NULL); -#elif defined(OS_WINDOWS) +#elif defined(GLOG_OS_WINDOWS) signal(SIGABRT, SIG_DFL); #endif // HAVE_SIGACTION } @@ -186,7 +186,7 @@ const char* ProgramInvocationShortName() { } } -#ifdef OS_WINDOWS +#ifdef GLOG_OS_WINDOWS struct timeval { long tv_sec, tv_usec; }; @@ -249,9 +249,9 @@ bool PidHasChanged() { pid_t GetTID() { // On Linux and MacOSX, we try to use gettid(). -#if defined OS_LINUX || defined OS_MACOSX +#if defined GLOG_OS_LINUX || defined GLOG_OS_MACOSX #ifndef __NR_gettid -#ifdef OS_MACOSX +#ifdef GLOG_OS_MACOSX #define __NR_gettid SYS_gettid #elif ! defined __i386__ #error "Must define __NR_gettid for non-x86 platforms" @@ -261,7 +261,7 @@ pid_t GetTID() { #endif static bool lacks_gettid = false; if (!lacks_gettid) { -#if (defined(OS_MACOSX) && defined(HAVE_PTHREAD_THREADID_NP)) +#if (defined(GLOG_OS_MACOSX) && defined(HAVE_PTHREAD_THREADID_NP)) uint64_t tid64; const int error = pthread_threadid_np(NULL, &tid64); pid_t tid = error ? -1 : static_cast(tid64); @@ -277,12 +277,12 @@ pid_t GetTID() { // the value change to "true". lacks_gettid = true; } -#endif // OS_LINUX || OS_MACOSX +#endif // GLOG_OS_LINUX || GLOG_OS_MACOSX // If gettid() could not be used, we use one of the following. -#if defined OS_LINUX +#if defined GLOG_OS_LINUX return getpid(); // Linux: getpid returns thread ID when gettid is absent -#elif defined OS_WINDOWS && !defined OS_CYGWIN +#elif defined GLOG_OS_WINDOWS && !defined GLOG_OS_CYGWIN return GetCurrentThreadId(); #elif defined(HAVE_PTHREAD) // If none of the techniques above worked, we use pthread_self(). @@ -294,7 +294,7 @@ pid_t GetTID() { const char* const_basename(const char* filepath) { const char* base = strrchr(filepath, '/'); -#ifdef OS_WINDOWS // Look for either path separator in Windows +#ifdef GLOG_OS_WINDOWS // Look for either path separator in Windows if (!base) base = strrchr(filepath, '\\'); #endif @@ -307,7 +307,7 @@ const string& MyUserName() { } static void MyUserNameInitializer() { // TODO(hamaji): Probably this is not portable. -#if defined(OS_WINDOWS) +#if defined(GLOG_OS_WINDOWS) const char* user = getenv("USERNAME"); #else const char* user = getenv("USER"); @@ -356,7 +356,7 @@ void InitGoogleLoggingUtilities(const char* argv0) { CHECK(!IsGoogleLoggingInitialized()) << "You called InitGoogleLogging() twice!"; const char* slash = strrchr(argv0, '/'); -#ifdef OS_WINDOWS +#ifdef GLOG_OS_WINDOWS if (!slash) slash = strrchr(argv0, '\\'); #endif g_program_invocation_short_name = slash ? slash + 1 : argv0; diff --git a/src/utilities.h b/src/utilities.h index 052d8705f..5ad5ed935 100644 --- a/src/utilities.h +++ b/src/utilities.h @@ -34,26 +34,6 @@ #ifndef UTILITIES_H__ #define UTILITIES_H__ -#if defined(WIN32) || defined(_WIN32) || defined(__WIN32__) -# define OS_WINDOWS -#elif defined(__CYGWIN__) || defined(__CYGWIN32__) -# define OS_CYGWIN -#elif defined(linux) || defined(__linux) || defined(__linux__) -# ifndef OS_LINUX -# define OS_LINUX -# endif -#elif defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__) -# define OS_MACOSX -#elif defined(__FreeBSD__) -# define OS_FREEBSD -#elif defined(__NetBSD__) -# define OS_NETBSD -#elif defined(__OpenBSD__) -# define OS_OPENBSD -#else -// TODO(hamaji): Add other platforms. -#endif - // printf macros for size_t, in the style of inttypes.h #ifdef _LP64 #define __PRIS_PREFIX "z" @@ -76,12 +56,14 @@ #include -#if defined(OS_WINDOWS) +#include + +#if defined(GLOG_OS_WINDOWS) # include "port.h" #endif #include "config.h" -#include "glog/logging.h" +#include // There are three different ways we can try to get the stack trace: // @@ -114,7 +96,7 @@ # define STACKTRACE_H "stacktrace_x86_64-inl.h" # elif (defined(__ppc__) || defined(__PPC__)) && __GNUC__ >= 2 # define STACKTRACE_H "stacktrace_powerpc-inl.h" -# elif defined(OS_WINDOWS) +# elif defined(GLOG_OS_WINDOWS) # define STACKTRACE_H "stacktrace_windows-inl.h" # endif #endif @@ -130,12 +112,12 @@ #ifndef GLOG_NO_SYMBOLIZE_DETECTION #ifndef HAVE_SYMBOLIZE // defined by gcc -#if defined(__ELF__) && defined(OS_LINUX) +#if defined(__ELF__) && defined(GLOG_OS_LINUX) # define HAVE_SYMBOLIZE -#elif defined(OS_MACOSX) && defined(HAVE_DLADDR) +#elif defined(GLOG_OS_MACOSX) && defined(HAVE_DLADDR) // Use dladdr to symbolize. # define HAVE_SYMBOLIZE -#elif defined(OS_WINDOWS) +#elif defined(GLOG_OS_WINDOWS) // Use DbgHelp to symbolize # define HAVE_SYMBOLIZE #endif @@ -154,7 +136,7 @@ namespace glog_internal_namespace_ { #ifdef HAVE___ATTRIBUTE__ # define ATTRIBUTE_NOINLINE __attribute__ ((noinline)) # define HAVE_ATTRIBUTE_NOINLINE -#elif defined(OS_WINDOWS) +#elif defined(GLOG_OS_WINDOWS) # define ATTRIBUTE_NOINLINE __declspec(noinline) # define HAVE_ATTRIBUTE_NOINLINE #else diff --git a/src/utilities_unittest.cc b/src/utilities_unittest.cc index 38e847dfb..93b1acdea 100644 --- a/src/utilities_unittest.cc +++ b/src/utilities_unittest.cc @@ -30,7 +30,7 @@ // Author: Shinichiro Hamaji #include "utilities.h" #include "googletest.h" -#include "glog/logging.h" +#include #ifdef HAVE_LIB_GFLAGS #include diff --git a/src/vlog_is_on.cc b/src/vlog_is_on.cc index 41ddbdf5e..8b9a9c5b0 100644 --- a/src/vlog_is_on.cc +++ b/src/vlog_is_on.cc @@ -40,8 +40,8 @@ #include #include #include "base/commandlineflags.h" -#include "glog/logging.h" -#include "glog/raw_logging.h" +#include +#include #include "base/googleinit.h" // glog doesn't have annotation diff --git a/src/windows/port.h b/src/windows/port.h index 72068a129..beea5af21 100755 --- a/src/windows/port.h +++ b/src/windows/port.h @@ -62,7 +62,7 @@ * used by both C and C++ code, so we put all the C++ together. */ -#include "glog/logging.h" +#include #ifdef _MSC_VER