mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-09-24 04:59:14 -07:00
dev-cpp/glog: Version bump (0.5.0).
Signed-off-by: Arfrever Frehtes Taifersar Arahesis <Arfrever@Apache.Org> Signed-off-by: Mike Gilbert <floppym@gentoo.org>
This commit is contained in:
committed by
Mike Gilbert
parent
43d663de10
commit
6d87191d72
@@ -1,2 +1,3 @@
|
||||
DIST glog-0.3.4.tar.gz 522508 BLAKE2B 4a188d5998005b29afc52f2ea548f33e06a68da993bb74960e5aedb214ec52ef9e9fc39efb1a34f38f217b92df7db064ff01d58df36c3e4ad789becc97335ec2 SHA512 139525b546a9eccacc9bebf7cc3053ba52229e9488485ad45344c3d3134ca819d3b571250c0e3a6d84097009c8be89b0f4fa16ef5ec838ffcc237ae11c3a034c
|
||||
DIST glog-0.4.0.tar.gz 200955 BLAKE2B 083da6117af3e85697724942bfcb5a7831d447666945b06b149d8d324231b10923887bd8c507e8027136d12bffd30a657cb225df8c449f234381e3876f132953 SHA512 b585f1819ade2075f6b61dc5aaca5c3f9d25601dba2bd08b6c49b96ac5f79db23c6b7f2042df003f7130497dd7241fcaa8b107d1f97385cb66ce52d3c554b176
|
||||
DIST glog-0.5.0.tar.gz 183346 BLAKE2B 9109a9a4bd3c74ba5d4c1d9ed44ffe0e16d5d3b9b12bf9dd5d31c6e728292ea50f39b4e1b96d55fbb35653a448af4dc8a978e266a2b0f34261c5108099e90845 SHA512 445e4338f3d81cd0b065f2da9c6ce343c243263ca144cea424ef97531a4e9e09c06ffd6942ac01c5213a8003c75cfbbede3c4028d12f0134f23ff29314769c1a
|
||||
|
||||
@@ -0,0 +1,106 @@
|
||||
https://github.com/google/glog/issues/125
|
||||
https://github.com/google/glog/pull/651
|
||||
https://github.com/google/glog/commit/81e0d616edeb73cbd06d6c40bc4f90593ac0c5d1
|
||||
|
||||
--- /src/glog/logging.h.in
|
||||
+++ /src/glog/logging.h.in
|
||||
@@ -594,6 +594,9 @@
|
||||
void* prefix_callback_data = NULL);
|
||||
#endif
|
||||
|
||||
+// Check if google's logging library has been initialized.
|
||||
+GOOGLE_GLOG_DLL_DECL bool IsGoogleLoggingInitialized();
|
||||
+
|
||||
// Shutdown google's logging library.
|
||||
GOOGLE_GLOG_DLL_DECL void ShutdownGoogleLogging();
|
||||
|
||||
--- /src/logging_custom_prefix_unittest.cc
|
||||
+++ /src/logging_custom_prefix_unittest.cc
|
||||
@@ -221,11 +221,15 @@
|
||||
LogWithLevels(0, 0, 0, 0); // simulate "before global c-tors"
|
||||
const string early_stderr = GetCapturedTestStderr();
|
||||
|
||||
+ EXPECT_FALSE(IsGoogleLoggingInitialized());
|
||||
+
|
||||
// Setting a custom prefix generator (it will use the default format so that
|
||||
// the golden outputs can be reused):
|
||||
string prefix_attacher_data = "good data";
|
||||
InitGoogleLogging(argv[0], &PrefixAttacher, static_cast<void*>(&prefix_attacher_data));
|
||||
|
||||
+ EXPECT_TRUE(IsGoogleLoggingInitialized());
|
||||
+
|
||||
RunSpecifiedBenchmarks();
|
||||
|
||||
FLAGS_logtostderr = true;
|
||||
@@ -992,8 +996,10 @@
|
||||
base::SetLogger(GLOG_INFO,
|
||||
new RecordDeletionLogger(&custom_logger_deleted,
|
||||
base::GetLogger(GLOG_INFO)));
|
||||
+ EXPECT_TRUE(IsGoogleLoggingInitialized());
|
||||
ShutdownGoogleLogging();
|
||||
EXPECT_TRUE(custom_logger_deleted);
|
||||
+ EXPECT_FALSE(IsGoogleLoggingInitialized());
|
||||
}
|
||||
|
||||
_START_GOOGLE_NAMESPACE_
|
||||
--- /src/logging_unittest.cc
|
||||
+++ /src/logging_unittest.cc
|
||||
@@ -197,8 +197,12 @@
|
||||
LogWithLevels(0, 0, 0, 0); // simulate "before global c-tors"
|
||||
const string early_stderr = GetCapturedTestStderr();
|
||||
|
||||
+ EXPECT_FALSE(IsGoogleLoggingInitialized());
|
||||
+
|
||||
InitGoogleLogging(argv[0]);
|
||||
|
||||
+ EXPECT_TRUE(IsGoogleLoggingInitialized());
|
||||
+
|
||||
RunSpecifiedBenchmarks();
|
||||
|
||||
FLAGS_logtostderr = true;
|
||||
@@ -965,8 +969,10 @@
|
||||
base::SetLogger(GLOG_INFO,
|
||||
new RecordDeletionLogger(&custom_logger_deleted,
|
||||
base::GetLogger(GLOG_INFO)));
|
||||
+ EXPECT_TRUE(IsGoogleLoggingInitialized());
|
||||
ShutdownGoogleLogging();
|
||||
EXPECT_TRUE(custom_logger_deleted);
|
||||
+ EXPECT_FALSE(IsGoogleLoggingInitialized());
|
||||
}
|
||||
|
||||
_START_GOOGLE_NAMESPACE_
|
||||
--- /src/utilities.cc
|
||||
+++ /src/utilities.cc
|
||||
@@ -62,6 +62,10 @@
|
||||
|
||||
static const char* g_program_invocation_short_name = NULL;
|
||||
|
||||
+bool IsGoogleLoggingInitialized() {
|
||||
+ return g_program_invocation_short_name != NULL;
|
||||
+}
|
||||
+
|
||||
_END_GOOGLE_NAMESPACE_
|
||||
|
||||
// The following APIs are all internal.
|
||||
@@ -176,10 +180,6 @@
|
||||
}
|
||||
}
|
||||
|
||||
-bool IsGoogleLoggingInitialized() {
|
||||
- return g_program_invocation_short_name != NULL;
|
||||
-}
|
||||
-
|
||||
#ifdef OS_WINDOWS
|
||||
struct timeval {
|
||||
long tv_sec, tv_usec;
|
||||
--- /src/utilities.h
|
||||
+++ /src/utilities.h
|
||||
@@ -163,8 +163,6 @@
|
||||
|
||||
const char* ProgramInvocationShortName();
|
||||
|
||||
-bool IsGoogleLoggingInitialized();
|
||||
-
|
||||
int64 CycleClock_Now();
|
||||
|
||||
int64 UsecToCycles(int64 usec);
|
||||
171
dev-cpp/glog/files/glog-0.5.0-vmodule_levels_changeability.patch
Normal file
171
dev-cpp/glog/files/glog-0.5.0-vmodule_levels_changeability.patch
Normal file
@@ -0,0 +1,171 @@
|
||||
https://github.com/google/glog/issues/649
|
||||
https://github.com/google/glog/pull/650
|
||||
https://github.com/google/glog/commit/86fea1ab254c463cbb72e5ce8bcc6855bc4e1e9c
|
||||
|
||||
--- /src/glog/vlog_is_on.h.in
|
||||
+++ /src/glog/vlog_is_on.h.in
|
||||
@@ -81,10 +81,10 @@
|
||||
// parsing of --vmodule flag and/or SetVLOGLevel calls.
|
||||
#define VLOG_IS_ON(verboselevel) \
|
||||
__extension__ \
|
||||
- ({ static @ac_google_namespace@::int32* vlocal__ = NULL; \
|
||||
+ ({ static @ac_google_namespace@::SiteFlag vlocal__{NULL, NULL, 0, NULL}; \
|
||||
@ac_google_namespace@::int32 verbose_level__ = (verboselevel); \
|
||||
- (vlocal__ == NULL ? @ac_google_namespace@::InitVLOG3__(&vlocal__, &FLAGS_v, \
|
||||
- __FILE__, verbose_level__) : *vlocal__ >= verbose_level__); \
|
||||
+ (vlocal__.level == NULL ? @ac_google_namespace@::InitVLOG3__(&vlocal__, &FLAGS_v, \
|
||||
+ __FILE__, verbose_level__) : *vlocal__.level >= verbose_level__); \
|
||||
})
|
||||
#else
|
||||
// GNU extensions not available, so we do not support --vmodule.
|
||||
@@ -105,6 +105,13 @@
|
||||
|
||||
// Various declarations needed for VLOG_IS_ON above: =========================
|
||||
|
||||
+struct SiteFlag {
|
||||
+ @ac_google_namespace@::int32* level;
|
||||
+ const char* base_name;
|
||||
+ size_t base_len;
|
||||
+ SiteFlag* next;
|
||||
+};
|
||||
+
|
||||
// Helper routine which determines the logging info for a particalur VLOG site.
|
||||
// site_flag is the address of the site-local pointer to the controlling
|
||||
// verbosity level
|
||||
@@ -114,7 +121,7 @@
|
||||
// We will return the return value for VLOG_IS_ON
|
||||
// and if possible set *site_flag appropriately.
|
||||
extern GOOGLE_GLOG_DLL_DECL bool InitVLOG3__(
|
||||
- @ac_google_namespace@::int32** site_flag,
|
||||
+ @ac_google_namespace@::SiteFlag* site_flag,
|
||||
@ac_google_namespace@::int32* site_default,
|
||||
const char* fname,
|
||||
@ac_google_namespace@::int32 verbose_level);
|
||||
--- /src/logging_unittest.cc
|
||||
+++ /src/logging_unittest.cc
|
||||
@@ -98,6 +98,7 @@
|
||||
static void TestRawLogging();
|
||||
static void LogWithLevels(int v, int severity, bool err, bool alsoerr);
|
||||
static void TestLoggingLevels();
|
||||
+static void TestVLogModule();
|
||||
static void TestLogString();
|
||||
static void TestLogSink();
|
||||
static void TestLogToString();
|
||||
@@ -223,6 +224,7 @@
|
||||
TestLogging(true);
|
||||
TestRawLogging();
|
||||
TestLoggingLevels();
|
||||
+ TestVLogModule();
|
||||
TestLogString();
|
||||
TestLogSink();
|
||||
TestLogToString();
|
||||
@@ -453,6 +455,24 @@
|
||||
LogWithLevels(1, GLOG_FATAL, false, true);
|
||||
}
|
||||
|
||||
+int TestVlogHelper() {
|
||||
+ if (VLOG_IS_ON(1)) {
|
||||
+ return 1;
|
||||
+ }
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+void TestVLogModule() {
|
||||
+ int c = TestVlogHelper();
|
||||
+ EXPECT_EQ(0, c);
|
||||
+
|
||||
+#if defined(__GNUC__)
|
||||
+ EXPECT_EQ(0, SetVLOGLevel("logging_unittest", 1));
|
||||
+ c = TestVlogHelper();
|
||||
+ EXPECT_EQ(1, c);
|
||||
+#endif
|
||||
+}
|
||||
+
|
||||
TEST(DeathRawCHECK, logging) {
|
||||
ASSERT_DEATH(RAW_CHECK(false, "failure 1"),
|
||||
"RAW: Check false failed: failure 1");
|
||||
--- /src/vlog_is_on.cc
|
||||
+++ /src/vlog_is_on.cc
|
||||
@@ -125,6 +125,8 @@
|
||||
// Pointer to head of the VModuleInfo list.
|
||||
// It's a map from module pattern to logging level for those module(s).
|
||||
static VModuleInfo* vmodule_list = 0;
|
||||
+static SiteFlag* cached_site_list = 0;
|
||||
+
|
||||
// Boolean initialization flag.
|
||||
static bool inited_vmodule = false;
|
||||
|
||||
@@ -190,6 +192,23 @@
|
||||
info->vlog_level = log_level;
|
||||
info->next = vmodule_list;
|
||||
vmodule_list = info;
|
||||
+
|
||||
+ SiteFlag** item_ptr = &cached_site_list;
|
||||
+ SiteFlag* item = cached_site_list;
|
||||
+
|
||||
+ // We traverse the list fully because the pattern can match several items
|
||||
+ // from the list.
|
||||
+ while (item) {
|
||||
+ if (SafeFNMatch_(module_pattern, pattern_len, item->base_name,
|
||||
+ item->base_len)) {
|
||||
+ // Redirect the cached value to its module override.
|
||||
+ item->level = &info->vlog_level;
|
||||
+ *item_ptr = item->next; // Remove the item from the list.
|
||||
+ } else {
|
||||
+ item_ptr = &item->next;
|
||||
+ }
|
||||
+ item = *item_ptr;
|
||||
+ }
|
||||
}
|
||||
}
|
||||
RAW_VLOG(1, "Set VLOG level for \"%s\" to %d", module_pattern, log_level);
|
||||
@@ -198,7 +217,7 @@
|
||||
|
||||
// NOTE: Individual VLOG statements cache the integer log level pointers.
|
||||
// NOTE: This function must not allocate memory or require any locks.
|
||||
-bool InitVLOG3__(int32** site_flag, int32* site_default,
|
||||
+bool InitVLOG3__(SiteFlag* site_flag, int32* level_default,
|
||||
const char* fname, int32 verbose_level) {
|
||||
MutexLock l(&vmodule_lock);
|
||||
bool read_vmodule_flag = inited_vmodule;
|
||||
@@ -211,10 +230,17 @@
|
||||
int old_errno = errno;
|
||||
|
||||
// site_default normally points to FLAGS_v
|
||||
- int32* site_flag_value = site_default;
|
||||
+ int32* site_flag_value = level_default;
|
||||
|
||||
// Get basename for file
|
||||
const char* base = strrchr(fname, '/');
|
||||
+
|
||||
+#ifdef _WIN32
|
||||
+ if (!base) {
|
||||
+ base = strrchr(fname, '\\');
|
||||
+ }
|
||||
+#endif
|
||||
+
|
||||
base = base ? (base+1) : fname;
|
||||
const char* base_end = strchr(base, '.');
|
||||
size_t base_length = base_end ? size_t(base_end - base) : strlen(base);
|
||||
@@ -244,7 +270,20 @@
|
||||
ANNOTATE_BENIGN_RACE(site_flag,
|
||||
"*site_flag may be written by several threads,"
|
||||
" but the value will be the same");
|
||||
- if (read_vmodule_flag) *site_flag = site_flag_value;
|
||||
+ if (read_vmodule_flag) {
|
||||
+ site_flag->level = site_flag_value;
|
||||
+ // If VLOG flag has been cached to the default site pointer,
|
||||
+ // we want to add to the cached list in order to invalidate in case
|
||||
+ // SetVModule is called afterwards with new modules.
|
||||
+ // The performance penalty here is neglible, because InitVLOG3__ is called
|
||||
+ // once per site.
|
||||
+ if (site_flag_value == level_default && !site_flag->base_name) {
|
||||
+ site_flag->base_name = base;
|
||||
+ site_flag->base_len = base_length;
|
||||
+ site_flag->next = cached_site_list;
|
||||
+ cached_site_list = site_flag;
|
||||
+ }
|
||||
+ }
|
||||
|
||||
// restore the errno in case something recoverable went wrong during
|
||||
// the initialization of the VLOG mechanism (see above note "protect the..")
|
||||
57
dev-cpp/glog/glog-0.5.0.ebuild
Normal file
57
dev-cpp/glog/glog-0.5.0.ebuild
Normal file
@@ -0,0 +1,57 @@
|
||||
# Copyright 2011-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="7"
|
||||
CMAKE_ECLASS="cmake"
|
||||
|
||||
inherit cmake-multilib
|
||||
|
||||
if [[ "${PV}" == "9999" ]]; then
|
||||
inherit git-r3
|
||||
|
||||
EGIT_REPO_URI="https://github.com/google/glog"
|
||||
fi
|
||||
|
||||
DESCRIPTION="Google Logging library"
|
||||
HOMEPAGE="https://github.com/google/glog"
|
||||
if [[ "${PV}" == "9999" ]]; then
|
||||
SRC_URI=""
|
||||
else
|
||||
SRC_URI="https://github.com/google/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||
fi
|
||||
|
||||
LICENSE="BSD"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc64 ~s390 ~x86 ~amd64-linux ~x86-linux"
|
||||
IUSE="gflags +libunwind llvm-libunwind test"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
RDEPEND="gflags? ( dev-cpp/gflags:0=[${MULTILIB_USEDEP}] )
|
||||
libunwind? (
|
||||
llvm-libunwind? ( sys-libs/llvm-libunwind:0=[${MULTILIB_USEDEP}] )
|
||||
!llvm-libunwind? ( sys-libs/libunwind:0=[${MULTILIB_USEDEP}] )
|
||||
)"
|
||||
DEPEND="${RDEPEND}
|
||||
test? ( >=dev-cpp/gtest-1.8.0[${MULTILIB_USEDEP}] )"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/${P}-IsGoogleLoggingInitialized_public.patch"
|
||||
"${FILESDIR}/${P}-vmodule_levels_changeability.patch"
|
||||
)
|
||||
|
||||
src_configure() {
|
||||
local mycmakeargs=(
|
||||
-DBUILD_TESTING=$(usex test ON OFF)
|
||||
-DWITH_CUSTOM_PREFIX=ON
|
||||
-DWITH_GFLAGS=$(usex gflags ON OFF)
|
||||
-DWITH_GTEST=$(usex test ON OFF)
|
||||
-DWITH_UNWIND=$(usex libunwind ON OFF)
|
||||
)
|
||||
if use libunwind; then
|
||||
mycmakeargs+=(
|
||||
-DUnwind_PLATFORM_LIBRARY="${ESYSROOT}/usr/$(get_libdir)/libunwind.so"
|
||||
)
|
||||
fi
|
||||
|
||||
cmake-multilib_src_configure
|
||||
}
|
||||
Reference in New Issue
Block a user