summaryrefslogtreecommitdiff
path: root/absl/debugging
diff options
context:
space:
mode:
authorGravatar Abseil Team <absl-team@google.com>2020-07-01 12:27:47 -0700
committerGravatar Derek Mauro <dmauro@google.com>2020-07-01 16:40:29 -0400
commit38db52adb2eabc0969195b33b30763e0a1285ef9 (patch)
treed5c43dc994e4c11b18fda7b1506ea9002daf4835 /absl/debugging
parent81f34df8347a73c617f244f49cb916238857dc34 (diff)
Export of internal Abseil changes
-- 510cd0bc2ff9cf21e1e960264d179fa333a88612 by Derek Mauro <dmauro@google.com>: Removes the static initializer for VDSOSupport as requested by Chromium. The call is moved to InitializeSymbolizer(). PiperOrigin-RevId: 319275021 -- 0c91944889ad2bd10bc8080f4cd8083ca1d5de46 by Derek Mauro <dmauro@google.com>: Check for the lock_returned attribute before using it PiperOrigin-RevId: 319273193 -- 1001fa71bfb850f00502777f787aeff6e80654ca by Derek Mauro <dmauro@google.com>: Remove a no longer relevant MSVC code guard PiperOrigin-RevId: 319266085 -- a80caee79eb3f377c6bf97bec6b692c55169fe53 by Abseil Team <absl-team@google.com>: Bug fix to StrFormat %a rounding behavior for `long double`. PiperOrigin-RevId: 319238900 -- fdec318c449f1ca586145397099b03d973b738c4 by Abseil Team <absl-team@google.com>: Add test cases for absl::Time +/- absl::InfiniteDuration() == absl::Infinite{Future|Past}. PiperOrigin-RevId: 319223053 GitOrigin-RevId: 510cd0bc2ff9cf21e1e960264d179fa333a88612 Change-Id: I4b8932fb0ec6ab9c868450faf4ed837092a7c0c0
Diffstat (limited to 'absl/debugging')
-rw-r--r--absl/debugging/internal/vdso_support.cc12
-rw-r--r--absl/debugging/symbolize_elf.inc6
2 files changed, 6 insertions, 12 deletions
diff --git a/absl/debugging/internal/vdso_support.cc b/absl/debugging/internal/vdso_support.cc
index 1e8a78ac..19deb3cf 100644
--- a/absl/debugging/internal/vdso_support.cc
+++ b/absl/debugging/internal/vdso_support.cc
@@ -175,18 +175,6 @@ int GetCPU() {
return ret_code == 0 ? cpu : ret_code;
}
-// We need to make sure VDSOSupport::Init() is called before
-// InitGoogle() does any setuid or chroot calls. If VDSOSupport
-// is used in any global constructor, this will happen, since
-// VDSOSupport's constructor calls Init. But if not, we need to
-// ensure it here, with a global constructor of our own. This
-// is an allowed exception to the normal rule against non-trivial
-// global constructors.
-static class VDSOInitHelper {
- public:
- VDSOInitHelper() { VDSOSupport::Init(); }
-} vdso_init_helper;
-
} // namespace debugging_internal
ABSL_NAMESPACE_END
} // namespace absl
diff --git a/absl/debugging/symbolize_elf.inc b/absl/debugging/symbolize_elf.inc
index 328869f1..b7f8663c 100644
--- a/absl/debugging/symbolize_elf.inc
+++ b/absl/debugging/symbolize_elf.inc
@@ -83,6 +83,12 @@ ABSL_NAMESPACE_BEGIN
static char *argv0_value = nullptr;
void InitializeSymbolizer(const char *argv0) {
+#ifdef ABSL_HAVE_VDSO_SUPPORT
+ // We need to make sure VDSOSupport::Init() is called before any setuid or
+ // chroot calls, so InitializeSymbolizer() should be called very early in the
+ // life of a program.
+ absl::debugging_internal::VDSOSupport::Init();
+#endif
if (argv0_value != nullptr) {
free(argv0_value);
argv0_value = nullptr;