summaryrefslogtreecommitdiffstats
path: root/src/opengl/qopenglbuffer.cpp
diff options
context:
space:
mode:
authorMichał Łoś <michal.los@siili.com>2024-10-31 11:08:59 +0100
committerMichał Łoś <michal.los@siili.com>2024-11-05 14:36:17 +0100
commita295f4f9130347d9708d77354bac85d58b495347 (patch)
tree347abbebaa9e0018f8b60cc2e6b36218cc872a2c /src/opengl/qopenglbuffer.cpp
parentdc1ae86bad0b4eaa83909f663777c09fb2f2376b (diff)
Enable broken_threadlocal_dtors for VxWorks
Changes applied in commit 4fabde349f16b59f37568da2a4c050c6dd53a34e broke VxWorks tests and examples, many of which crash with error: ``` pthreadLib: unable to create POSIX thread internal attributes. ``` This error appeared in multiple tests, but was tested on tst_QSignalSpy, where it was 100% reproducible (I haven't check other tests for reproducibility). This above error is printed when VxWorks task starts and initializes its pthread containers. Pthread starting procedure results in error `S_objLib_OBJ_ID_ERROR`, on which documentation states that it means "The <tid> parameter is an invalid task ID". This happens because VxWorks pthread implementation clears its internal data, and only then passes control to `taskExit` system procedure, which calls thread_local destructors. Any calls to `pthread` routines which require current thread internal data ends with error and termination. While VxWorks uses clang internally, it implements `__cxa_thread_atexit` and `__cxa_thread_atexit_impl`, which makes it pass `TEST_cxa_atexit` in CMake, even thou their call order is different than on other platforms. Enable QT_FEATURE_broken_threadlocal_dtors for VxWorks by failing compilation of cxa_thread_atexit* tests, which fixes the crashes on VxWorks. Task-number: QTBUG-115777 Change-Id: I4109b66903333a94301afe7fe5634ac4365a70b4 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/opengl/qopenglbuffer.cpp')
0 files changed, 0 insertions, 0 deletions