]> Cypherpunks repositories - gostls13.git/commit
compile, link: remove base address selector from DWARF range lists
authorAlessandro Arzilli <alessandro.arzilli@gmail.com>
Sat, 21 Oct 2017 10:45:23 +0000 (12:45 +0200)
committerAustin Clements <austin@google.com>
Wed, 1 Nov 2017 14:35:30 +0000 (14:35 +0000)
commit018642d6cf2321f9209dfa59332daacc721d03b0
tree5d784f13b2a6403d0e50c4239c9b37ba6d9d3604
parent5617864900c397b9c0160a278ae35007e1d785ad
compile, link: remove base address selector from DWARF range lists

Dsymutil, an utility used on macOS when externally linking executables,
does not support base address selector entries in debug_ranges.

To work around this deficiency this commit removes base address
selectors from debug_ranges and emits instead a list composed only of
compile unit relative addresses.

A new type of relocation is introduced, R_ADDRCUOFF, similar to
R_ADDROFF, that relocates an address to its offset from the low_pc of
the symbol's compile unit.

Fixes #21945

Change-Id: Ie991f9bc1afda2b49ac5d734eb41c37d3a37e554
Reviewed-on: https://go-review.googlesource.com/72371
Run-TryBot: Austin Clements <austin@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Austin Clements <austin@google.com>
Reviewed-by: Heschi Kreinick <heschi@google.com>
src/cmd/internal/dwarf/dwarf.go
src/cmd/internal/obj/data.go
src/cmd/internal/obj/objfile.go
src/cmd/internal/objabi/reloctype.go
src/cmd/internal/objabi/reloctype_string.go
src/cmd/link/internal/ld/data.go
src/cmd/link/internal/ld/deadcode.go
src/cmd/link/internal/ld/dwarf.go
src/cmd/link/internal/sym/symbol.go