summaryrefslogtreecommitdiff
path: root/src/cmd/5l
diff options
context:
space:
mode:
authorShenghou Ma <minux@golang.org>2014-07-10 15:14:37 -0400
committerShenghou Ma <minux@golang.org>2014-07-10 15:14:37 -0400
commitd6679956474eb5d4bf469c228d697648bc80b8f9 (patch)
tree5aec2e11657b6a5307f245eca1868f4a3e57dc89 /src/cmd/5l
parent3794847b3f46321fd5c325354100210f28a353b1 (diff)
downloadgo-d6679956474eb5d4bf469c228d697648bc80b8f9.tar.gz
cmd/5c, cmd/5g, cmd/5l, liblink: nacl/arm support
LGTM=dave, rsc R=rsc, iant, dave CC=golang-codereviews https://codereview.appspot.com/108360043
Diffstat (limited to 'src/cmd/5l')
-rw-r--r--src/cmd/5l/5.out.h2
-rw-r--r--src/cmd/5l/asm.c1
-rw-r--r--src/cmd/5l/obj.c13
3 files changed, 15 insertions, 1 deletions
diff --git a/src/cmd/5l/5.out.h b/src/cmd/5l/5.out.h
index edcef1279..7099c2769 100644
--- a/src/cmd/5l/5.out.h
+++ b/src/cmd/5l/5.out.h
@@ -211,6 +211,8 @@ enum
AVARKILL,
ADUFFCOPY,
ADUFFZERO,
+ ADATABUNDLE,
+ ADATABUNDLEEND,
AMRC, // MRC/MCR
diff --git a/src/cmd/5l/asm.c b/src/cmd/5l/asm.c
index 5e9267b5b..2943442d5 100644
--- a/src/cmd/5l/asm.c
+++ b/src/cmd/5l/asm.c
@@ -661,6 +661,7 @@ asmb(void)
case Hfreebsd:
case Hnetbsd:
case Hopenbsd:
+ case Hnacl:
asmbelf(symo);
break;
}
diff --git a/src/cmd/5l/obj.c b/src/cmd/5l/obj.c
index 86a0ece2e..c6f60ee7c 100644
--- a/src/cmd/5l/obj.c
+++ b/src/cmd/5l/obj.c
@@ -63,6 +63,7 @@ archinit(void)
break;
case Hlinux:
case Hfreebsd:
+ case Hnacl:
break;
}
@@ -82,7 +83,6 @@ archinit(void)
case Hlinux: /* arm elf */
case Hfreebsd:
case Hnetbsd:
- case Hnacl:
debug['d'] = 0; // with dynamic linking
elfinit();
HEADR = ELFRESERVE;
@@ -93,6 +93,17 @@ archinit(void)
if(INITRND == -1)
INITRND = 4096;
break;
+ case Hnacl:
+ elfinit();
+ HEADR = 0x10000;
+ funcalign = 16;
+ if(INITTEXT == -1)
+ INITTEXT = 0x20000;
+ if(INITDAT == -1)
+ INITDAT = 0;
+ if(INITRND == -1)
+ INITRND = 0x10000;
+ break;
}
if(INITDAT != 0 && INITRND != 0)
print("warning: -D0x%ux is ignored because of -R0x%ux\n",