|
Message-ID: <CY4PR02MB2231AB9C3B643960B457181082B80@CY4PR02MB2231.namprd02.prod.outlook.com>
Date: Tue, 25 Jul 2017 08:01:16 +0000
From: Jamie Mccrae <Jamie.Mccrae@...rdtech.com>
To: "musl@...ts.openwall.com" <musl@...ts.openwall.com>
Subject: Static Qt console application linked with musl segmentation faults on
console message output with thread_local variable
Hi,
I have a simple Qt application which just outputs a single string to the console which I'm compiling on alpine linux (raspberry pi) statically with musl and it causes a segmentation fault when ran. I reported the issue to Qt and provided a stack trace but they say it's a problem with musl and not Qt.
Stack trace:
(gdb) run
Starting program: /tmp/TestApp/testconsole
Program received signal SIGSEGV, Segmentation fault.
0x74ac7d1c in grabMessageHandler () at global/qlogging.cpp:1618
1618 if (msgHandlerGrabbed)
(gdb) bt
#0 0x74ac7d1c in grabMessageHandler () at global/qlogging.cpp:1618
#1 0x74ac7e34 in qt_message_print (msgType=QtDebugMsg, context=..., message=...) at global/qlogging.cpp:1649
#2 0x74ac8024 in qt_message_output (msgType=QtDebugMsg, context=..., message=...) at global/qlogging.cpp:1696
#3 0x74b85d48 in QDebug::~QDebug (this=0xaefffcdc, __in_chrg=<optimized out>) at io/qdebug.cpp:156
#4 0x74ac2a04 in main (argc=1, argv=0xaefffd44) at main.cpp:63
Comment from Qt developer:
Not our bug. That function uses a variable marked with C++11 attribute thread_local. That means it's a MUSL bug.
Musl version: 1.1.16-r13
Sample code to reproduce the issue:
main.cpp:
int main(int argc, char *argv[])
{
QCoreApplication app(argc, argv);
qDebug() << "test output to console";
}
main.h:
#ifndef MAIN_H
#define MAIN_H
#include <QCoreApplication>
#include <QDebug>
int main(int argc, char *argv[]);
#endif
testconsole.pro:
QT += core
QT -= gui
TARGET = testconsole
CONFIG += console
CONFIG -= app_bundle
TEMPLATE = app
SOURCES += main.cpp
HEADERS += \
main.h
Expected output:
test output to console
Actual output:
Segmentation fault
Build line for Qt which was used on this system:
./configure -confirm-license -opensource -debug -static -no-journald -no-gif -no-ico -no-egl -xinput2 -qt-xkbcommon-x11 -no-compile-examples -no-cups -no-iconv -no-tslib -fontconfig -no-xcb-xlib -no-eglfs -no-directfb -no-linuxfb -no-kms -no-evdev -no-xkbcommon-evdev -no-libproxy -no-mtdev -libinput -dbus-linked -no-glib -icu -no-separate-debug-info -nomake examples -no-opengl -no-openssl -no-sql-sqlite -silent -system-libjpeg -system-libpng -system-pcre -qt-xcb -system-zlib -no-reduce-relocations
Is this a bug in musl, or is any more information required for this?
Thanks,
Jamie
Content of type "text/html" skipped
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.