On 2023-07-25 4:29 p.m., Patrick Franz wrote:
Due to the lack of resources, it's unlikely we'll even investigate this.
However, if you have a patch, I'm happy to apply it.
The attached change fixes the reported segmentation fault in qsb. The change is 
to
src/3rdparty/forkfd/forkfd_linux.c in the qt6-base package. The problem is the 
system_vforkfd
routine assumes the stack direction is down, but on hppa the stack grows up. 
This causes
the childFn argument to be clobbered on the stack and the segmentation fault.

With this change to qt6-base, qt6-declarative builds successfully on hppa.  I 
believe it will also fix the
qt6-multimedia build as it appears to fail for the same reason.

Somehow, we need to get this installed in the 3rdparty forkfd source so all 
packages that use it
are fixed.

Regards,
Dave Anglin

--
John David Anglin  dave.ang...@bell.net
--- ./src/3rdparty/forkfd/forkfd_linux.c.save   2023-07-27 12:04:02.940466337 
+0000
+++ ./src/3rdparty/forkfd/forkfd_linux.c        2023-07-27 12:06:53.522077424 
+0000
@@ -168,7 +168,12 @@
     }
     *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;
     if (ppid)

Reply via email to