aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/link/internal/amd64/asm.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/link/internal/amd64/asm.go')
-rw-r--r--src/cmd/link/internal/amd64/asm.go11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/cmd/link/internal/amd64/asm.go b/src/cmd/link/internal/amd64/asm.go
index 60bd45cd30..9ccb81966c 100644
--- a/src/cmd/link/internal/amd64/asm.go
+++ b/src/cmd/link/internal/amd64/asm.go
@@ -118,6 +118,17 @@ func adddynrel(ctxt *ld.Link, s *ld.Symbol, r *ld.Reloc) bool {
r.Add += 4
return true
+ case 256 + ld.R_X86_64_PC64:
+ if targ.Type == obj.SDYNIMPORT {
+ ld.Errorf(s, "unexpected R_X86_64_PC64 relocation for dynamic symbol %s", targ.Name)
+ }
+ if targ.Type == 0 || targ.Type == obj.SXREF {
+ ld.Errorf(s, "unknown symbol %s in pcrel", targ.Name)
+ }
+ r.Type = obj.R_PCREL
+ r.Add += 8
+ return true
+
case 256 + ld.R_X86_64_PLT32:
r.Type = obj.R_PCREL
r.Add += 4