summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIonen Wolkens <ionen@gentoo.org>2023-09-18 22:57:21 -0400
committerIonen Wolkens <ionen@gentoo.org>2023-09-18 22:59:48 -0400
commit7f6c7b9be96640df5b5e0fad5807990651ffb315 (patch)
treeb3254ada83da6fa129cab362e1f962346c41d294 /dev-qt/qtbase/files/qtbase-6.5.2-hppa-forkfd-grow-stack.patch
parentdev-qt/qtbase: skip NaN related tests for hppa-only (diff)
downloadgentoo-7f6c7b9be96640df5b5e0fad5807990651ffb315.tar.gz
gentoo-7f6c7b9be96640df5b5e0fad5807990651ffb315.tar.bz2
gentoo-7f6c7b9be96640df5b5e0fad5807990651ffb315.zip
dev-qt/qtbase: import hppa forkfd fix from debian
Some of bug #914371's issues could (ideally) still need looking into/attention, but believe reasonable to close for now and allow keywording assuming did not overlook anything. Closes: https://bugs.gentoo.org/914371 Signed-off-by: Ionen Wolkens <ionen@gentoo.org>
Diffstat (limited to 'dev-qt/qtbase/files/qtbase-6.5.2-hppa-forkfd-grow-stack.patch')
-rw-r--r--dev-qt/qtbase/files/qtbase-6.5.2-hppa-forkfd-grow-stack.patch28
1 files changed, 28 insertions, 0 deletions
diff --git a/dev-qt/qtbase/files/qtbase-6.5.2-hppa-forkfd-grow-stack.patch b/dev-qt/qtbase/files/qtbase-6.5.2-hppa-forkfd-grow-stack.patch
new file mode 100644
index 000000000000..ccada9f80e34
--- /dev/null
+++ b/dev-qt/qtbase/files/qtbase-6.5.2-hppa-forkfd-grow-stack.patch
@@ -0,0 +1,28 @@
+Patch taken from Debian[1], largely broken on HPPA without and several
+tests give segmentation faults[2].
+
+Needs upstreaming if someone familiar with HPPA wants to give this
+attention. Note forkfd is essentially maintained in qtbase's repo[3]
+rather than truly third party.
+
+[1] https://bugs.debian.org/1042018
+[2] https://bugs.gentoo.org/914371
+[3] https://code.qt.io/cgit/qt/qtbase.git/tree/src/3rdparty/forkfd
+
+Description: Change how stack grows on HPPA.
+ On HPPA stack grows upwards. This patch introduces this change for
+ this 3rd party code.
+Author: John David Anglin <dave.anglin@bell.net>
+--- a/src/3rdparty/forkfd/forkfd_linux.c
++++ b/src/3rdparty/forkfd/forkfd_linux.c
+@@ -170,5 +170,10 @@
+ *system = 1;
+
++#if defined(__hppa__)
++ /* Stack grows up */
++ pid = clone(childFn, childStack, cloneflags, token, &pidfd, NULL, NULL);
++#else
+ pid = clone(childFn, childStack + sizeof(childStack), cloneflags, token, &pidfd, NULL, NULL);
++#endif
+ if (pid < 0)
+ return pid;