Commit 0088ddc3 authored by Michael Hudson-Doyle's avatar Michael Hudson-Doyle Committed by Ian Lance Taylor

cmd/6l, cmd/internal/ld, cmd/internal/obj: remove Xsym/Xadd from compiler's Reloc

They don't really make any sense on this side of the compiler/linker divide.

Some of the code touching these fields was the support for R_TLS when
thechar=='6' which turns out to be dead and so I just removed all of that.

Change-Id: I4e265613c4e7fcc30a965fffb7fd5f45017f06f3
Reviewed-on: https://go-review.googlesource.com/9107
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
parent 832c5735
...@@ -392,17 +392,6 @@ func elfreloc1(r *ld.Reloc, sectoff int64) int { ...@@ -392,17 +392,6 @@ func elfreloc1(r *ld.Reloc, sectoff int64) int {
} else { } else {
return -1 return -1
} }
case obj.R_TLS:
if r.Siz == 4 {
if ld.Buildmode == ld.BuildmodeCShared {
ld.Thearch.Vput(ld.R_X86_64_GOTTPOFF | uint64(elfsym)<<32)
} else {
ld.Thearch.Vput(ld.R_X86_64_TPOFF32 | uint64(elfsym)<<32)
}
} else {
return -1
}
} }
ld.Thearch.Vput(uint64(r.Xadd)) ld.Thearch.Vput(uint64(r.Xadd))
......
...@@ -143,9 +143,9 @@ overwrite: ...@@ -143,9 +143,9 @@ overwrite:
r.Siz = uint8(rdint(f)) r.Siz = uint8(rdint(f))
r.Type = int32(rdint(f)) r.Type = int32(rdint(f))
r.Add = rdint(f) r.Add = rdint(f)
r.Xadd = rdint(f) rdint(f) // Xadd, ignored
r.Sym = rdsym(ctxt, f, pkg) r.Sym = rdsym(ctxt, f, pkg)
r.Xsym = rdsym(ctxt, f, pkg) rdsym(ctxt, f, pkg) // Xsym, ignored
} }
} }
......
...@@ -1673,8 +1673,6 @@ func asmout(ctxt *obj.Link, p *obj.Prog, o *Optab, out []uint32) { ...@@ -1673,8 +1673,6 @@ func asmout(ctxt *obj.Link, p *obj.Prog, o *Optab, out []uint32) {
if ctxt.Flag_shared != 0 { if ctxt.Flag_shared != 0 {
rel.Add += ctxt.Pc - p.Pcrel.Pc - 8 - int64(rel.Siz) rel.Add += ctxt.Pc - p.Pcrel.Pc - 8 - int64(rel.Siz)
} }
rel.Xadd = rel.Add
rel.Xsym = rel.Sym
} else if ctxt.Flag_shared != 0 { } else if ctxt.Flag_shared != 0 {
rel.Type = obj.R_PCREL rel.Type = obj.R_PCREL
rel.Add += ctxt.Pc - p.Pcrel.Pc - 8 rel.Add += ctxt.Pc - p.Pcrel.Pc - 8
......
...@@ -356,9 +356,7 @@ type Reloc struct { ...@@ -356,9 +356,7 @@ type Reloc struct {
Siz uint8 Siz uint8
Type int32 Type int32
Add int64 Add int64
Xadd int64
Sym *LSym Sym *LSym
Xsym *LSym
} }
// Reloc.type // Reloc.type
......
...@@ -413,9 +413,9 @@ func writesym(ctxt *Link, b *Biobuf, s *LSym) { ...@@ -413,9 +413,9 @@ func writesym(ctxt *Link, b *Biobuf, s *LSym) {
wrint(b, int64(r.Siz)) wrint(b, int64(r.Siz))
wrint(b, int64(r.Type)) wrint(b, int64(r.Type))
wrint(b, r.Add) wrint(b, r.Add)
wrint(b, r.Xadd) wrint(b, 0) // Xadd, ignored
wrsym(b, r.Sym) wrsym(b, r.Sym)
wrsym(b, r.Xsym) wrsym(b, nil) // Xsym, ignored
} }
if s.Type == STEXT { if s.Type == STEXT {
......
...@@ -2460,11 +2460,6 @@ func vaddr(ctxt *obj.Link, p *obj.Prog, a *obj.Addr, r *obj.Reloc) int64 { ...@@ -2460,11 +2460,6 @@ func vaddr(ctxt *obj.Link, p *obj.Prog, a *obj.Addr, r *obj.Reloc) int64 {
r.Off = -1 // caller must fill in r.Off = -1 // caller must fill in
r.Sym = s r.Sym = s
r.Add = a.Offset r.Add = a.Offset
if s.Type == obj.STLSBSS {
r.Xadd = r.Add - int64(r.Siz)
r.Type = obj.R_TLS
r.Xsym = s
}
return 0 return 0
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment