Commit 6aa38668 authored by Alex Brainman's avatar Alex Brainman

cmd/link: delete addpesection

Change-Id: Iee9db172d28d4d372fa617907078a494e764bf12
Reviewed-on: https://go-review.googlesource.com/55260Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
parent babc5b1d
...@@ -456,10 +456,6 @@ func (f *peFile) addSection(name string, sectsize int, filesize int) *peSection ...@@ -456,10 +456,6 @@ func (f *peFile) addSection(name string, sectsize int, filesize int) *peSection
var pefile peFile var pefile peFile
func addpesection(ctxt *Link, name string, sectsize int, filesize int) *peSection {
return pefile.addSection(name, sectsize, filesize)
}
func chksectoff(ctxt *Link, h *peSection, off int64) { func chksectoff(ctxt *Link, h *peSection, off int64) {
if off != int64(h.PointerToRawData) { if off != int64(h.PointerToRawData) {
Errorf(nil, "%s.PointerToRawData = %#x, want %#x", h.name, uint64(int64(h.PointerToRawData)), uint64(off)) Errorf(nil, "%s.PointerToRawData = %#x, want %#x", h.name, uint64(int64(h.PointerToRawData)), uint64(off))
...@@ -710,7 +706,7 @@ func addimports(ctxt *Link, datsect *peSection) { ...@@ -710,7 +706,7 @@ func addimports(ctxt *Link, datsect *peSection) {
// add pe section and pad it at the end // add pe section and pad it at the end
n = uint64(coutbuf.Offset()) - uint64(startoff) n = uint64(coutbuf.Offset()) - uint64(startoff)
isect := addpesection(ctxt, ".idata", int(n), int(n)) isect := pefile.addSection(".idata", int(n), int(n))
isect.Characteristics = IMAGE_SCN_CNT_INITIALIZED_DATA | IMAGE_SCN_MEM_READ | IMAGE_SCN_MEM_WRITE isect.Characteristics = IMAGE_SCN_CNT_INITIALIZED_DATA | IMAGE_SCN_MEM_READ | IMAGE_SCN_MEM_WRITE
chksectoff(ctxt, isect, startoff) chksectoff(ctxt, isect, startoff)
strnput("", int(uint64(isect.SizeOfRawData)-n)) strnput("", int(uint64(isect.SizeOfRawData)-n))
...@@ -798,7 +794,7 @@ func addexports(ctxt *Link) { ...@@ -798,7 +794,7 @@ func addexports(ctxt *Link) {
return return
} }
sect := addpesection(ctxt, ".edata", size, size) sect := pefile.addSection(".edata", size, size)
sect.Characteristics = IMAGE_SCN_CNT_INITIALIZED_DATA | IMAGE_SCN_MEM_READ sect.Characteristics = IMAGE_SCN_CNT_INITIALIZED_DATA | IMAGE_SCN_MEM_READ
chksectoff(ctxt, sect, coutbuf.Offset()) chksectoff(ctxt, sect, coutbuf.Offset())
va := int(sect.VirtualAddress) va := int(sect.VirtualAddress)
...@@ -1120,7 +1116,7 @@ func addpesymtable(ctxt *Link) { ...@@ -1120,7 +1116,7 @@ func addpesymtable(ctxt *Link) {
if Linkmode != LinkExternal { if Linkmode != LinkExternal {
// We do not really need .symtab for go.o, and if we have one, ld // We do not really need .symtab for go.o, and if we have one, ld
// will also include it in the exe, and that will confuse windows. // will also include it in the exe, and that will confuse windows.
h = addpesection(ctxt, ".symtab", size, size) h = pefile.addSection(".symtab", size, size)
h.Characteristics = IMAGE_SCN_MEM_READ | IMAGE_SCN_MEM_DISCARDABLE h.Characteristics = IMAGE_SCN_MEM_READ | IMAGE_SCN_MEM_DISCARDABLE
chksectoff(ctxt, h, symtabStartPos) chksectoff(ctxt, h, symtabStartPos)
} }
...@@ -1147,7 +1143,7 @@ func addpersrc(ctxt *Link) { ...@@ -1147,7 +1143,7 @@ func addpersrc(ctxt *Link) {
return return
} }
h := addpesection(ctxt, ".rsrc", int(rsrcsym.Size), int(rsrcsym.Size)) h := pefile.addSection(".rsrc", int(rsrcsym.Size), int(rsrcsym.Size))
h.Characteristics = IMAGE_SCN_MEM_READ | IMAGE_SCN_MEM_WRITE | IMAGE_SCN_CNT_INITIALIZED_DATA h.Characteristics = IMAGE_SCN_MEM_READ | IMAGE_SCN_MEM_WRITE | IMAGE_SCN_CNT_INITIALIZED_DATA
chksectoff(ctxt, h, coutbuf.Offset()) chksectoff(ctxt, h, coutbuf.Offset())
...@@ -1194,7 +1190,7 @@ func addinitarray(ctxt *Link) (c *peSection) { ...@@ -1194,7 +1190,7 @@ func addinitarray(ctxt *Link) (c *peSection) {
size = 8 size = 8
} }
c = addpesection(ctxt, ".ctors", size, size) c = pefile.addSection(".ctors", size, size)
c.Characteristics = IMAGE_SCN_CNT_INITIALIZED_DATA | IMAGE_SCN_MEM_READ c.Characteristics = IMAGE_SCN_CNT_INITIALIZED_DATA | IMAGE_SCN_MEM_READ
c.SizeOfRawData = uint32(size) c.SizeOfRawData = uint32(size)
...@@ -1223,7 +1219,7 @@ func Asmbpe(ctxt *Link) { ...@@ -1223,7 +1219,7 @@ func Asmbpe(ctxt *Link) {
fh.Machine = IMAGE_FILE_MACHINE_I386 fh.Machine = IMAGE_FILE_MACHINE_I386
} }
t := addpesection(ctxt, ".text", int(Segtext.Length), int(Segtext.Length)) t := pefile.addSection(".text", int(Segtext.Length), int(Segtext.Length))
t.Characteristics = IMAGE_SCN_CNT_CODE | IMAGE_SCN_CNT_INITIALIZED_DATA | IMAGE_SCN_MEM_EXECUTE | IMAGE_SCN_MEM_READ t.Characteristics = IMAGE_SCN_CNT_CODE | IMAGE_SCN_CNT_INITIALIZED_DATA | IMAGE_SCN_MEM_EXECUTE | IMAGE_SCN_MEM_READ
if Linkmode == LinkExternal { if Linkmode == LinkExternal {
// some data symbols (e.g. masks) end up in the .text section, and they normally // some data symbols (e.g. masks) end up in the .text section, and they normally
...@@ -1236,17 +1232,17 @@ func Asmbpe(ctxt *Link) { ...@@ -1236,17 +1232,17 @@ func Asmbpe(ctxt *Link) {
var d *peSection var d *peSection
var c *peSection var c *peSection
if Linkmode != LinkExternal { if Linkmode != LinkExternal {
d = addpesection(ctxt, ".data", int(Segdata.Length), int(Segdata.Filelen)) d = pefile.addSection(".data", int(Segdata.Length), int(Segdata.Filelen))
d.Characteristics = IMAGE_SCN_CNT_INITIALIZED_DATA | IMAGE_SCN_MEM_READ | IMAGE_SCN_MEM_WRITE d.Characteristics = IMAGE_SCN_CNT_INITIALIZED_DATA | IMAGE_SCN_MEM_READ | IMAGE_SCN_MEM_WRITE
chksectseg(ctxt, d, &Segdata) chksectseg(ctxt, d, &Segdata)
datasect = pensect datasect = pensect
} else { } else {
d = addpesection(ctxt, ".data", int(Segdata.Filelen), int(Segdata.Filelen)) d = pefile.addSection(".data", int(Segdata.Filelen), int(Segdata.Filelen))
d.Characteristics = IMAGE_SCN_CNT_INITIALIZED_DATA | IMAGE_SCN_MEM_READ | IMAGE_SCN_MEM_WRITE | IMAGE_SCN_ALIGN_32BYTES d.Characteristics = IMAGE_SCN_CNT_INITIALIZED_DATA | IMAGE_SCN_MEM_READ | IMAGE_SCN_MEM_WRITE | IMAGE_SCN_ALIGN_32BYTES
chksectseg(ctxt, d, &Segdata) chksectseg(ctxt, d, &Segdata)
datasect = pensect datasect = pensect
b := addpesection(ctxt, ".bss", int(Segdata.Length-Segdata.Filelen), 0) b := pefile.addSection(".bss", int(Segdata.Length-Segdata.Filelen), 0)
b.Characteristics = IMAGE_SCN_CNT_UNINITIALIZED_DATA | IMAGE_SCN_MEM_READ | IMAGE_SCN_MEM_WRITE | IMAGE_SCN_ALIGN_32BYTES b.Characteristics = IMAGE_SCN_CNT_UNINITIALIZED_DATA | IMAGE_SCN_MEM_READ | IMAGE_SCN_MEM_WRITE | IMAGE_SCN_ALIGN_32BYTES
b.PointerToRawData = 0 b.PointerToRawData = 0
bsssect = pensect bsssect = pensect
......
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