diff options
author | Thiago Macieira <thiago.macieira@intel.com> | 2019-10-02 07:56:16 -0700 |
---|---|---|
committer | Thiago Macieira <thiago.macieira@intel.com> | 2020-04-30 09:56:32 -0800 |
commit | 5a1f9cf8c325a3531affe1f5cd44c7f464f6cced (patch) | |
tree | a869603b18bcd27c835bab4b4745de396cfc7a8e | |
parent | 4220aa78703a252b964012240ff5664e0fe067c7 (diff) |
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>
(cherry picked from commit 932805807123833bb8f5ae9abda7e946f48d9f0c)
-rw-r--r-- | src/corelib/global/qlibraryinfo.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/corelib/global/qlibraryinfo.cpp b/src/corelib/global/qlibraryinfo.cpp index 5634d6e6c3..f2ada4ab30 100644 --- a/src/corelib/global/qlibraryinfo.cpp +++ b/src/corelib/global/qlibraryinfo.cpp @@ -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" |