From 81fadf1c8d33ce8fb38e18f00b96fc2434ab7f98 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Tue, 25 Jun 2019 06:16:21 +0000 Subject: [PATCH] runtime: mark memequal and memclrNoHeapPointers nosplit They are wrappers of libc functions that use no stack. Mark them nosplit so the linker won't patch it to call __morestack_non_split. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/183629 From-SVN: r272633 --- gcc/go/gofrontend/MERGE | 2 +- libgo/runtime/go-memclr.c | 3 ++- libgo/runtime/go-memequal.c | 3 ++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/gcc/go/gofrontend/MERGE b/gcc/go/gofrontend/MERGE index ca68507906a..ca0578ab9d4 100644 --- a/gcc/go/gofrontend/MERGE +++ b/gcc/go/gofrontend/MERGE @@ -1,4 +1,4 @@ -89b442a0100286ee569b8d2562ce1b2ea602f7e7 +a857aad2f3994e6fa42a6fc65330e65d209597a0 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-memclr.c b/libgo/runtime/go-memclr.c index e478b658b9c..b5d4975e57d 100644 --- a/libgo/runtime/go-memclr.c +++ b/libgo/runtime/go-memclr.c @@ -7,7 +7,8 @@ #include "runtime.h" void memclrNoHeapPointers(void *, uintptr) - __asm__ (GOSYM_PREFIX "runtime.memclrNoHeapPointers"); + __asm__ (GOSYM_PREFIX "runtime.memclrNoHeapPointers") + __attribute__ ((no_split_stack)); void memclrNoHeapPointers (void *p1, uintptr len) diff --git a/libgo/runtime/go-memequal.c b/libgo/runtime/go-memequal.c index 5f514aaae09..9648cbabe43 100644 --- a/libgo/runtime/go-memequal.c +++ b/libgo/runtime/go-memequal.c @@ -7,7 +7,8 @@ #include "runtime.h" _Bool memequal (void *, void *, uintptr) - __asm__ (GOSYM_PREFIX "runtime.memequal"); + __asm__ (GOSYM_PREFIX "runtime.memequal") + __attribute__ ((no_split_stack)); _Bool memequal (void *p1, void *p2, uintptr len)