summaryrefslogtreecommitdiff
path: root/libgo/Makefile.in
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@gcc.gnu.org>2019-02-27 22:35:10 +0000
committerIan Lance Taylor <ian@gcc.gnu.org>2019-02-27 22:35:10 +0000
commitcba8a572c208078c1c6eb9845b54f960526c53c0 (patch)
tree2533982aacf337307ee72ee82ae77f3cb01fbd58 /libgo/Makefile.in
parente6df04c105464436e700013e1f665ebf0f94c9f2 (diff)
re PR go/89172 (FAIL: runtime/pprof)
PR go/89172 internal/cpu, runtime, runtime/pprof: handle function descriptors When using PPC64 ELF ABI v1 a function address is not a PC, but is the address of a function descriptor. The first field in the function descriptor is the actual PC (see http://refspecs.linuxfoundation.org/ELF/ppc64/PPC-elf64abi.html#FUNC-DES). The libbacktrace library knows about this, and libgo uses actual PC values consistently except for the helper function funcPC that appears in both runtime and runtime/pprof. This patch fixes funcPC by recording, in the internal/cpu package, whether function descriptors are being used. We have to check for function descriptors using a C compiler check, because GCC can be configured using --with-abi to select the ELF ABI to use. Fixes https://gcc.gnu.org/PR89172 Reviewed-on: https://go-review.googlesource.com/c/162978 From-SVN: r269266
Diffstat (limited to 'libgo/Makefile.in')
-rw-r--r--libgo/Makefile.in2
1 files changed, 2 insertions, 0 deletions
diff --git a/libgo/Makefile.in b/libgo/Makefile.in
index 0b26158dd7d..7f398918c57 100644
--- a/libgo/Makefile.in
+++ b/libgo/Makefile.in
@@ -397,6 +397,7 @@ ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
+FUNCTION_DESCRIPTORS = @FUNCTION_DESCRIPTORS@
GOARCH = @GOARCH@
GOC = @GOC@
GOFLAGS = @GOFLAGS@
@@ -2635,6 +2636,7 @@ s-cpu: Makefile
rm -f cpugen.go.tmp
echo "package cpu" > cpugen.go.tmp
echo "const CacheLinePadSize = `$(SHELL) $(srcdir)/goarch.sh $(GOARCH) cachelinesize`" >> cpugen.go.tmp
+ echo "const FunctionDescriptors = $(FUNCTION_DESCRIPTORS)" >> cpugen.go.tmp
$(SHELL) $(srcdir)/mvifdiff.sh cpugen.go.tmp cpugen.go
$(STAMP) $@