go/src/debug/elf/testdata
Victor Michel e01a226fad debug/elf: support relocations relative to sections with non-zero addresses
commit 72ec930fa7 added basic support for
relocations, but assumed that the symbol value would be 0, likely because
.debug_info always has address == 0 in the ELF section headers.

CL 195679 added further support for relocations, but explicitly encoded
the original assumption that section addresses would be 0.

This change removes that assumption: all relocations will now be
properly computed based on the target symbol value even when that symbol
is a section with a non-zero address.

Typically, sections that are part of a LOAD program segment have
non-zero addresses. For example, .debug_ranges relocations could be
relative to .text, which usually has an address > 0.

Fixes #40879

Change-Id: Ib0a616bb8b05d6c96d179b03ca33a10946fc5d59
GitHub-Last-Rev: 4200de7326
GitHub-Pull-Request: golang/go#41038
Reviewed-on: https://go-review.googlesource.com/c/go/+/250559
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
2020-08-31 18:42:38 +00:00
..
compressed-32.obj
compressed-64.obj
gcc-386-freebsd-exec
gcc-amd64-linux-exec
gcc-amd64-openbsd-debug-with-rela.obj
go-relocation-test-clang-arm.obj
go-relocation-test-clang-x86.obj
go-relocation-test-gcc5-ppc.obj
go-relocation-test-gcc424-x86-64.obj
go-relocation-test-gcc441-x86-64.obj
go-relocation-test-gcc441-x86.obj
go-relocation-test-gcc482-aarch64.obj
go-relocation-test-gcc482-ppc64le.obj
go-relocation-test-gcc492-arm.obj
go-relocation-test-gcc492-mips64.obj
go-relocation-test-gcc492-mipsle.obj
go-relocation-test-gcc493-mips64le.obj
go-relocation-test-gcc531-s390x.obj
go-relocation-test-gcc540-mips.obj
go-relocation-test-gcc620-sparc64.obj
go-relocation-test-gcc720-riscv64.obj
go-relocation-test-gcc930-ranges-no-rela-x86-64
go-relocation-test-gcc930-ranges-with-rela-x86-64
hello-world-core.gz
hello.c
multiple-code-sections.c
zdebug-test-gcc484-x86-64.obj