aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKai Backman <kaib@golang.org>2010-01-25 21:38:27 -0800
committerKai Backman <kaib@golang.org>2010-01-25 21:38:27 -0800
commit3884f7321f7f79e6bb32029dff83882d42704cba (patch)
tree1ddb3c3ad0e970d8ea3aec20ef03cc714a7580e1
parent718be3215ffd6f8d4bfd8fa836cb2799d3366501 (diff)
downloadgo-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.c11
-rw-r--r--src/cmd/5l/doc.go2
-rw-r--r--src/cmd/5l/obj.c4
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)