diff --git a/src/corelib/CMakeLists.txt b/src/corelib/CMakeLists.txt index 89abd8d8631..c39c2c4c86b 100644 --- a/src/corelib/CMakeLists.txt +++ b/src/corelib/CMakeLists.txt @@ -703,6 +703,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 82bc03a4fda..249e84cb01c 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 0049f5ef35e..c369259788d 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 -** 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() && __has_include()) -# define QLOGGING_HAVE_BACKTRACE -# endif +#if __has_include() && QT_CONFIG(backtrace) && QT_CONFIG(regularexpression) +# include +# include BACKTRACE_HEADER +# include +# define QLOGGING_HAVE_BACKTRACE #endif #if defined(Q_OS_LINUX) && (defined(__GLIBC__) || __has_include()) @@ -152,12 +149,6 @@ static QT_PREPEND_NAMESPACE(qint64) qt_gettid() return qintptr(QThread::currentThreadId()); } #endif - -#ifdef QLOGGING_HAVE_BACKTRACE -# include -# include -# include -#endif #endif // !QT_BOOTSTRAPPED #include