diff options
author | Kai Backman <kaib@golang.org> | 2010-01-25 21:38:27 -0800 |
---|---|---|
committer | Kai Backman <kaib@golang.org> | 2010-01-25 21:38:27 -0800 |
commit | 3884f7321f7f79e6bb32029dff83882d42704cba (patch) | |
tree | 1ddb3c3ad0e970d8ea3aec20ef03cc714a7580e1 | |
parent | 718be3215ffd6f8d4bfd8fa836cb2799d3366501 (diff) | |
download | go-3884f7321f7f79e6bb32029dff83882d42704cba.tar.gz go-3884f7321f7f79e6bb32029dff83882d42704cba.zip |
salvaging 183105 from dead client
a number of fixes for arm elf generation in 5l. -T now works as
advertised, -D now works properly.
R=rsc
CC=golang-dev
https://golang.org/cl/194076
-rw-r--r-- | src/cmd/5l/asm.c | 11 | ||||
-rw-r--r-- | src/cmd/5l/doc.go | 2 | ||||
-rw-r--r-- | src/cmd/5l/obj.c | 4 |
3 files changed, 9 insertions, 8 deletions
diff --git a/src/cmd/5l/asm.c b/src/cmd/5l/asm.c index a375b8bf87..bc8b322ab0 100644 --- a/src/cmd/5l/asm.c +++ b/src/cmd/5l/asm.c @@ -301,13 +301,14 @@ asmb(void) wputl(5); /* # of Shdrs */ wputl(4); /* Shdr with strings */ - fo = 0; - va = INITTEXT & ~((vlong)INITRND - 1); - w = HEADR+textsize; + fo = HEADR; + va = rnd(INITTEXT, INITRND); + + w = textsize; linuxphdr(1, /* text - type = PT_LOAD */ 1L+4L, /* text - flags = PF_X+PF_R */ - 0, /* file offset */ + fo, /* file offset */ va, /* vaddr */ va, /* paddr */ w, /* file size */ @@ -360,7 +361,7 @@ asmb(void) stroffset = 1; /* 0 means no name, so start at 1 */ fo = HEADR; - va = (INITTEXT & ~((vlong)INITRND - 1)) + HEADR; + va = rnd(INITTEXT, INITRND); w = textsize; linuxshdr(".text", /* name */ diff --git a/src/cmd/5l/doc.go b/src/cmd/5l/doc.go index be1fddd706..132426158a 100644 --- a/src/cmd/5l/doc.go +++ b/src/cmd/5l/doc.go @@ -19,10 +19,10 @@ Major changes include: Original options are listed in the link above. Options new in this version: + -L dir1,dir2,.. Search for libraries (package files) in the comma-separated list of directories. The default is the single location $GOROOT/pkg/$GOOS_arm. - */ package documentation diff --git a/src/cmd/5l/obj.c b/src/cmd/5l/obj.c index 274d502b84..292a0df7a6 100644 --- a/src/cmd/5l/obj.c +++ b/src/cmd/5l/obj.c @@ -80,7 +80,7 @@ linkername[] = void usage(void) { - fprint(2, "usage: 5l [-options] main.5\n"); + fprint(2, "usage: 5l [-E entry] [-H head] [-L dir] [-T text] [-D data] [-R rnd] [-o out] main.5\n"); errorexit(); } @@ -221,7 +221,7 @@ main(int argc, char *argv[]) case 6: /* arm elf */ HEADR = linuxheadr(); if(INITTEXT == -1) - INITTEXT = 0x8000+HEADR; + INITTEXT = 0x8000; if(INITDAT == -1) INITDAT = 0; if(INITRND == -1) |