]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/5l: embed $GOARM value into binary as runtime.goarm
authorShenghou Ma <minux.ma@gmail.com>
Sun, 2 Sep 2012 19:51:13 +0000 (03:51 +0800)
committerShenghou Ma <minux.ma@gmail.com>
Sun, 2 Sep 2012 19:51:13 +0000 (03:51 +0800)
R=golang-dev, dave, rsc
CC=golang-dev
https://golang.org/cl/6449127

src/cmd/5l/l.h
src/cmd/5l/obj.c

index e6f2ec3d98fa577034f759746ff0b87c0571a867..ee2794ae00f0d349bfe0db75ab4dc548eff74a92 100644 (file)
@@ -307,6 +307,7 @@ EXTERN      Prog    zprg;
 EXTERN int     dtype;
 EXTERN int     tlsoffset;
 EXTERN int     armsize;
+EXTERN int     goarm;
 
 extern char*   anames[];
 extern Optab   optab[];
index 05967ac9c01dcf70f2c98df423b779f8b79fa07c..0e738394c82fe486a2d64dbe5f7531c3ba9e6e26 100644 (file)
@@ -76,6 +76,7 @@ main(int argc, char *argv[])
 {
        int c;
        char *p, *name, *val;
+       Sym *s;
 
        Binit(&bso, 1, OWRITE);
        listinit();
@@ -89,7 +90,11 @@ main(int argc, char *argv[])
        nuxiinit();
        
        p = getenv("GOARM");
-       if(p != nil && strcmp(p, "5") == 0)
+       if(p != nil)
+               goarm = atoi(p);
+       else
+               goarm = 7;
+       if(goarm == 5)
                debug['F'] = 1;
 
        ARGBEGIN {
@@ -243,6 +248,11 @@ main(int argc, char *argv[])
        cbp = buf.cbuf;
        cbc = sizeof(buf.cbuf);
 
+       // embed goarm to runtime.goarm
+       s = lookup("runtime.goarm", 0);
+       s->dupok = 1;
+       adduint8(s, goarm);
+
        addlibpath("command line", "command line", argv[0], "main");
        loadlib();