libgo patch committed: Ignore __morestack in runtime.Callers

Message ID CAOyqgcUV6Ge_trXe5Mz=BN6r+bzv8Tmm_NjOGBfB2YfYk6d6+w@mail.gmail.com
State New, archived
Headers
Series libgo patch committed: Ignore __morestack in runtime.Callers |

Commit Message

Ian Lance Taylor Sept. 7, 2022, 1:40 a.m. UTC
  This libgo patch ignores the __morestack function in runtime.Callers.
We were ignoring all functions starting with "__morestack_", but not
the function "__morestack" itself.  Without this change, some tests
such as recover.go started failing recently, though I'm not sure
exactly what changed.  Bootstrapped and ran Go testsuite on
x86_64-pc-linux-gnu.  Committed to mainline.

Ian
c0852b51b7a68ada822955eb7ef83d933cc33e47
  

Comments

Ian Lance Taylor Sept. 13, 2022, 5:36 p.m. UTC | #1
On Tue, Sep 6, 2022 at 6:40 PM Ian Lance Taylor <iant@golang.org> wrote:
>
> This libgo patch ignores the __morestack function in runtime.Callers.
> We were ignoring all functions starting with "__morestack_", but not
> the function "__morestack" itself.  Without this change, some tests
> such as recover.go started failing recently, though I'm not sure
> exactly what changed.  Bootstrapped and ran Go testsuite on
> x86_64-pc-linux-gnu.  Committed to mainline.

I've also committed this patch to GCC 12 branch.

Ian
  

Patch

diff --git a/gcc/go/gofrontend/MERGE b/gcc/go/gofrontend/MERGE
index ca797045d66..dce38e727a7 100644
--- a/gcc/go/gofrontend/MERGE
+++ b/gcc/go/gofrontend/MERGE
@@ -1,4 +1,4 @@ 
-d53e8a0e94e34dc609e34dd5e404debda2640cfb
+6543b7fc6da533eb976b37649a925e7fd5a521fa
 
 The first line of this file holds the git revision number of the last
 merge done from the gofrontend repository.
diff --git a/libgo/runtime/go-callers.c b/libgo/runtime/go-callers.c
index 31783696a08..1d4dee66279 100644
--- a/libgo/runtime/go-callers.c
+++ b/libgo/runtime/go-callers.c
@@ -107,7 +107,7 @@  callback (void *data, uintptr_t pc, const char *filename, int lineno,
       p = function;
       if (__builtin_strncmp (p, "___", 3) == 0)
 	++p;
-      if (__builtin_strncmp (p, "__morestack_", 12) == 0)
+      if (__builtin_strncmp (p, "__morestack", 11) == 0)
 	return 0;
     }
   else if (filename != NULL)