diff options
-rw-r--r-- | src/corelib/CMakeLists.txt | 2 | ||||
-rw-r--r-- | src/corelib/configure.cmake | 4 | ||||
-rw-r--r-- | src/corelib/global/qlogging.cpp | 21 |
3 files changed, 11 insertions, 16 deletions
diff --git a/src/corelib/CMakeLists.txt b/src/corelib/CMakeLists.txt index c83ec2640b..e722be1851 100644 --- a/src/corelib/CMakeLists.txt +++ b/src/corelib/CMakeLists.txt @@ -697,6 +697,8 @@ qt_internal_extend_target(Core CONDITION QT_FEATURE_commandlineparser ) qt_internal_extend_target(Core CONDITION QT_FEATURE_backtrace + DEFINES + BACKTRACE_HEADER="${Backtrace_HEADER}" LIBRARIES WrapBacktrace::WrapBacktrace ) diff --git a/src/corelib/configure.cmake b/src/corelib/configure.cmake index aa51aad275..f386a62985 100644 --- a/src/corelib/configure.cmake +++ b/src/corelib/configure.cmake @@ -14,7 +14,9 @@ set_property(CACHE INPUT_libb2 PROPERTY STRINGS undefined no qt system) #### Libraries -if((UNIX) OR QT_FIND_ALL_PACKAGES_ALWAYS) +if((UNIX AND NOT QNX) OR QT_FIND_ALL_PACKAGES_ALWAYS) + # QNX's libbacktrace has an API wholly different from all the other Unix + # offerings qt_find_package(WrapBacktrace PROVIDED_TARGETS WrapBacktrace::WrapBacktrace MODULE_NAME core QMAKE_LIB backtrace) endif() qt_find_package(WrapDoubleConversion PROVIDED_TARGETS WrapDoubleConversion::WrapDoubleConversion MODULE_NAME core QMAKE_LIB doubleconversion) diff --git a/src/corelib/global/qlogging.cpp b/src/corelib/global/qlogging.cpp index 24f7d9342a..ece8216ed6 100644 --- a/src/corelib/global/qlogging.cpp +++ b/src/corelib/global/qlogging.cpp @@ -2,7 +2,7 @@ ** ** Copyright (C) 2021 The Qt Company Ltd. ** Copyright (C) 2016 Olivier Goffart <ogoffart@woboq.com> -** Copyright (C) 2018 Intel Corporation. +** Copyright (C) 2022 Intel Corporation. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the QtCore module of the Qt Toolkit. @@ -107,14 +107,11 @@ extern char *__progname; #endif #ifndef QT_BOOTSTRAPPED -#if QT_CONFIG(regularexpression) -# ifdef __UCLIBC__ -# if __UCLIBC_HAS_BACKTRACE__ -# define QLOGGING_HAVE_BACKTRACE -# endif -# elif (defined(__GLIBC__) && defined(__GLIBCXX__)) || (__has_include(<cxxabi.h>) && __has_include(<execinfo.h>)) -# define QLOGGING_HAVE_BACKTRACE -# endif +#if __has_include(<cxxabi.h>) && QT_CONFIG(backtrace) && QT_CONFIG(regularexpression) +# include <qregularexpression.h> +# include BACKTRACE_HEADER +# include <cxxabi.h> +# define QLOGGING_HAVE_BACKTRACE #endif #if defined(Q_OS_LINUX) && (defined(__GLIBC__) || __has_include(<sys/syscall.h>)) @@ -152,12 +149,6 @@ static QT_PREPEND_NAMESPACE(qint64) qt_gettid() return qintptr(QThread::currentThreadId()); } #endif - -#ifdef QLOGGING_HAVE_BACKTRACE -# include <qregularexpression.h> -# include <cxxabi.h> -# include <execinfo.h> -#endif #endif // !QT_BOOTSTRAPPED #include <cstdlib> |