]> Cypherpunks repositories - gostls13.git/commitdiff
salvaging 183105 from dead client
authorKai Backman <kaib@golang.org>
Tue, 26 Jan 2010 05:38:27 +0000 (21:38 -0800)
committerKai Backman <kaib@golang.org>
Tue, 26 Jan 2010 05:38:27 +0000 (21:38 -0800)
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

src/cmd/5l/asm.c
src/cmd/5l/doc.go
src/cmd/5l/obj.c

index a375b8bf8744d60c993ba744eeda384ef850ef51..bc8b322ab05097eca214382fc1769a4fd94b648d 100644 (file)
@@ -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 */
index be1fddd706fef3f182095a774805c0910d116b3f..132426158a7c3eec3cf225679b50605a074d7d69 100644 (file)
@@ -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
index 274d502b844dc854a1c428ac163793ede0509911..292a0df7a6d72856e3118b4d0e9eca3ec00b43e2 100644 (file)
@@ -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)