1
0
mirror of https://github.com/golang/go synced 2024-11-21 21:54:40 -07:00

8l: fix windows build

R=rsc
CC=golang-dev
https://golang.org/cl/2595041
This commit is contained in:
Alex Brainman 2010-10-20 14:06:00 +11:00
parent a9725396c0
commit 5e4963d9e8

View File

@ -86,6 +86,7 @@ pewrite(void)
{ {
int i, j; int i, j;
seek(cout, 0, 0);
ewrite(cout, dosstub, sizeof dosstub); ewrite(cout, dosstub, sizeof dosstub);
strnput("PE", 4); strnput("PE", 4);
@ -102,7 +103,7 @@ pewrite(void)
void void
dope(void) dope(void)
{ {
textsect = new_section(".text", textsize, 0); textsect = new_section(".text", segtext.len, 0);
textsect->Characteristics = IMAGE_SCN_CNT_CODE| textsect->Characteristics = IMAGE_SCN_CNT_CODE|
IMAGE_SCN_CNT_INITIALIZED_DATA| IMAGE_SCN_CNT_INITIALIZED_DATA|
IMAGE_SCN_MEM_EXECUTE|IMAGE_SCN_MEM_READ; IMAGE_SCN_MEM_EXECUTE|IMAGE_SCN_MEM_READ;
@ -167,7 +168,6 @@ add_import_table(void)
for(f=fs; f->name; f++) for(f=fs; f->name; f++)
f->thunk += va; f->thunk += va;
vlong off = seek(cout, 0, 1);
seek(cout, 0, 2); seek(cout, 0, 2);
for(d=ds; ; d++) { for(d=ds; ; d++) {
lputl(d->OriginalFirstThunk); lputl(d->OriginalFirstThunk);
@ -187,12 +187,13 @@ add_import_table(void)
lputl(f->thunk); lputl(f->thunk);
strnput("", isect->SizeOfRawData - size); strnput("", isect->SizeOfRawData - size);
cflush(); cflush();
seek(cout, off, 0);
} }
void void
asmbpe(void) asmbpe(void)
{ {
vlong eof;
switch(thechar) { switch(thechar) {
default: default:
diag("unknown PE architecture"); diag("unknown PE architecture");
@ -205,6 +206,10 @@ asmbpe(void)
break; break;
} }
// make sure the end of file is INITRND-aligned.
eof = seek(cout, 0, 2);
strnput("", rnd(eof, INITRND) - eof);
add_import_table(); add_import_table();
fh.NumberOfSections = nsect; fh.NumberOfSections = nsect;