summaryrefslogtreecommitdiff
path: root/system/gcc/341-gccgo-libucontext-stack.patch
blob: 2befc5d32fcbb3db13885099c21bdbde4b05a8af (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Similar to Solaris, libucontext does not clear the stack below makecontext.
This causes the Go frontend to sometimes go below the stack.

On 32-bit Arm systems, this resulted in #832.  It is likely, though not known,
that this could have caused other issues we've seen in gccgo as well.

--- gcc-8.5.0/libgo/runtime/go-callers.c.old	2021-05-14 03:42:11.000000000 -0500
+++ gcc-8.5.0/libgo/runtime/go-callers.c	2022-12-25 01:46:15.834110528 -0600
@@ -117,7 +117,8 @@
      Solaris (http://gcc.gnu.org/PR52583 comment #21).  */
   if (function != NULL)
     {
-      if (__builtin_strcmp (function, "makecontext") == 0)
+      if (__builtin_strcmp (function, "makecontext") == 0
+          || __builtin_strcmp (function, "libucontext_makecontext") == 0)
 	return 1;
       if (filename != NULL)
 	{