Fix crash when running QtCore: Stack is misaligned on x86-64

When our ELF entry point function is started by the kernel, the stack is
aligned at 16 bytes. However, the stack is expected to be off by 8, due
to a preceding CALL instruction which didn't exist. This cauases a crash
further down as the compiler may generate aligned stack access.

Change-Id: I1496b069cc534f1a838dfffd15c9dc4ef9e3869e
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
This commit is contained in:
Thiago Macieira 2019-10-02 07:56:16 -07:00
parent 5aa13ea144
commit 9328058071

View File

@ -709,10 +709,14 @@ QT_END_NAMESPACE
#include "private/qcoreapplication_p.h"
QT_WARNING_DISABLE_GCC("-Wattributes")
QT_WARNING_DISABLE_CLANG("-Wattributes")
QT_WARNING_DISABLE_INTEL(2621)
extern const char qt_core_interpreter[] __attribute__((section(".interp")))
= ELF_INTERPRETER;
extern "C" void qt_core_boilerplate();
extern "C" void qt_core_boilerplate() __attribute__((force_align_arg_pointer));
void qt_core_boilerplate()
{
printf("This is the QtCore library version " QT_BUILD_STR "\n"