From dc969f34a79d019497abb61c2a3f79b5b4be2ea9 Mon Sep 17 00:00:00 2001 From: Abseil Team Date: Mon, 17 Aug 2020 15:25:15 -0700 Subject: Export of internal Abseil changes -- caf65de1a20b1ad286796a9eaee38f8b59e93f3b by Samuel Benzaquen : Add a benchmark for StrAppend. PiperOrigin-RevId: 327111569 -- 2faa53fb3f4090f9609c7dea8951a82e1d72ce3a by Derek Mauro : Add the inline namespace to the code generated by gaussian_distribution_gentables A previous changed manually added it to the output PiperOrigin-RevId: 327022780 -- 29edfd86e49e4d7665e843463f8df3c72467e909 by Derek Mauro : Re-write the logic for detecting which stacktrace implementation to use on Linux. The visible change is to detect the presence of the `` header, which allows using the `backtrace`-based implementation when it is available. The logic has been simplified as well. Fixes #746 PiperOrigin-RevId: 326911875 -- ce198204b77aac240e98fc8d5931b17a8b26bac3 by Abseil Team : Demangle exception spec. PiperOrigin-RevId: 326909460 -- c41b89954545bdc4430d10e785d3ba64a55122d5 by Abseil Team : Add support for inheriting ctor. PiperOrigin-RevId: 326904919 GitOrigin-RevId: caf65de1a20b1ad286796a9eaee38f8b59e93f3b Change-Id: Ifd28b6a85a032839cbeafd1b16f88046dfd6c1d4 --- absl/debugging/internal/stacktrace_config.h | 52 ++++++++++++++--------------- 1 file changed, 25 insertions(+), 27 deletions(-) (limited to 'absl/debugging/internal/stacktrace_config.h') diff --git a/absl/debugging/internal/stacktrace_config.h b/absl/debugging/internal/stacktrace_config.h index d5cc1740..90af8528 100644 --- a/absl/debugging/internal/stacktrace_config.h +++ b/absl/debugging/internal/stacktrace_config.h @@ -44,48 +44,46 @@ !(TARGET_OS_IPHONE && __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_9_0) #define ABSL_STACKTRACE_INL_HEADER \ "absl/debugging/internal/stacktrace_generic-inl.inc" -#else -#define ABSL_STACKTRACE_INL_HEADER \ - "absl/debugging/internal/stacktrace_unimplemented-inl.inc" #endif #elif defined(__linux__) && !defined(__ANDROID__) -#if !defined(NO_FRAME_POINTER) -# if defined(__i386__) || defined(__x86_64__) -#define ABSL_STACKTRACE_INL_HEADER \ - "absl/debugging/internal/stacktrace_x86-inl.inc" -# elif defined(__ppc__) || defined(__PPC__) +#if defined(NO_FRAME_POINTER) && \ + (defined(__i386__) || defined(__x86_64__) || defined(__aarch64__)) +// Note: The libunwind-based implementation is not available to open-source +// users. #define ABSL_STACKTRACE_INL_HEADER \ - "absl/debugging/internal/stacktrace_powerpc-inl.inc" -# elif defined(__aarch64__) -#define ABSL_STACKTRACE_INL_HEADER \ - "absl/debugging/internal/stacktrace_aarch64-inl.inc" -#elif defined(__arm__) && defined(__GLIBC__) + "absl/debugging/internal/stacktrace_libunwind-inl.inc" +#define STACKTRACE_USES_LIBUNWIND 1 +#elif defined(NO_FRAME_POINTER) && defined(__has_include) +#if __has_include() // Note: When using glibc this may require -funwind-tables to function properly. #define ABSL_STACKTRACE_INL_HEADER \ "absl/debugging/internal/stacktrace_generic-inl.inc" -# else +#endif +#elif defined(__i386__) || defined(__x86_64__) #define ABSL_STACKTRACE_INL_HEADER \ - "absl/debugging/internal/stacktrace_unimplemented-inl.inc" -# endif -#else // defined(NO_FRAME_POINTER) -# if defined(__i386__) || defined(__x86_64__) || defined(__aarch64__) + "absl/debugging/internal/stacktrace_x86-inl.inc" +#elif defined(__ppc__) || defined(__PPC__) #define ABSL_STACKTRACE_INL_HEADER \ - "absl/debugging/internal/stacktrace_generic-inl.inc" -# elif defined(__ppc__) || defined(__PPC__) + "absl/debugging/internal/stacktrace_powerpc-inl.inc" +#elif defined(__aarch64__) #define ABSL_STACKTRACE_INL_HEADER \ - "absl/debugging/internal/stacktrace_generic-inl.inc" -# else + "absl/debugging/internal/stacktrace_aarch64-inl.inc" +#elif defined(__has_include) +#if __has_include() +// Note: When using glibc this may require -funwind-tables to function properly. #define ABSL_STACKTRACE_INL_HEADER \ - "absl/debugging/internal/stacktrace_unimplemented-inl.inc" -# endif -#endif // NO_FRAME_POINTER + "absl/debugging/internal/stacktrace_generic-inl.inc" +#endif +#endif -#else +#endif + +// Fallback to the empty implementation. +#if !defined(ABSL_STACKTRACE_INL_HEADER) #define ABSL_STACKTRACE_INL_HEADER \ "absl/debugging/internal/stacktrace_unimplemented-inl.inc" - #endif #endif // ABSL_DEBUGGING_INTERNAL_STACKTRACE_CONFIG_H_ -- cgit v1.2.3