From 350c60b79e720d005a1a554fd177dbda607079cf Mon Sep 17 00:00:00 2001 From: Raphael Kubo da Costa Date: Tue, 30 Dec 2014 19:26:09 +0200 Subject: [PATCH] Link against QMAKE_LIBS_EXECINFO when using backtrace(3). Add a new mkspec variable, QMAKE_LIBS_EXECINFO, for platforms where backtrace(3), backtrace_symbols(3) and others are not in libc, but rather in a separate library -- on the BSDs, this is libexecinfo. Use it in corelib/global/global.pri so that libqt5core links against it and has the proper dependency when necessary. Change-Id: I62ac36c9b3ba7ab0719420cb795087d43ec138a4 Reviewed-by: Olivier Goffart Reviewed-by: Thiago Macieira --- mkspecs/freebsd-g++/qmake.conf | 1 + mkspecs/freebsd-g++46/qmake.conf | 1 + mkspecs/unsupported/freebsd-clang/qmake.conf | 1 + src/corelib/global/global.pri | 3 +++ 4 files changed, 6 insertions(+) diff --git a/mkspecs/freebsd-g++/qmake.conf b/mkspecs/freebsd-g++/qmake.conf index 3d2a0e9090..47505fc06a 100644 --- a/mkspecs/freebsd-g++/qmake.conf +++ b/mkspecs/freebsd-g++/qmake.conf @@ -17,6 +17,7 @@ QMAKE_LFLAGS_THREAD = -pthread QMAKE_LIBS = QMAKE_LIBS_DYNLOAD = +QMAKE_LIBS_EXECINFO = -lexecinfo QMAKE_LIBS_X11 = -lXext -lX11 -lm QMAKE_LIBS_OPENGL = -lGL QMAKE_LIBS_THREAD = diff --git a/mkspecs/freebsd-g++46/qmake.conf b/mkspecs/freebsd-g++46/qmake.conf index b15e689cde..277997ab28 100644 --- a/mkspecs/freebsd-g++46/qmake.conf +++ b/mkspecs/freebsd-g++46/qmake.conf @@ -17,6 +17,7 @@ QMAKE_LFLAGS_THREAD = -pthread QMAKE_LIBS = QMAKE_LIBS_DYNLOAD = +QMAKE_LIBS_EXECINFO = -lexecinfo QMAKE_LIBS_X11 = -lXext -lX11 -lm QMAKE_LIBS_OPENGL = -lGL QMAKE_LIBS_THREAD = diff --git a/mkspecs/unsupported/freebsd-clang/qmake.conf b/mkspecs/unsupported/freebsd-clang/qmake.conf index 2cfd763688..92b7c47590 100644 --- a/mkspecs/unsupported/freebsd-clang/qmake.conf +++ b/mkspecs/unsupported/freebsd-clang/qmake.conf @@ -18,6 +18,7 @@ QMAKE_LFLAGS_THREAD = -pthread QMAKE_LIBS = QMAKE_LIBS_DYNLOAD = +QMAKE_LIBS_EXECINFO = -lexecinfo QMAKE_LIBS_X11 = -lXext -lX11 -lm QMAKE_LIBS_OPENGL = -lGL QMAKE_LIBS_THREAD = diff --git a/src/corelib/global/global.pri b/src/corelib/global/global.pri index fb0e7fd708..e0dd9e4f36 100644 --- a/src/corelib/global/global.pri +++ b/src/corelib/global/global.pri @@ -35,6 +35,9 @@ INCLUDEPATH += $$QT_BUILD_TREE/src/corelib/global # Only used on platforms with CONFIG += precompile_header PRECOMPILED_HEADER = global/qt_pch.h +# qlogging.cpp uses backtrace(3), which is in a separate library on the BSDs. +LIBS_PRIVATE += $$QMAKE_LIBS_EXECINFO + linux*:!cross_compile:!static:!*-armcc* { QMAKE_LFLAGS += -Wl,-e,qt_core_boilerplate prog=$$quote(if (/program interpreter: (.*)]/) { print $1; })