diff options
author | Shenghou Ma <minux@golang.org> | 2014-07-10 15:14:37 -0400 |
---|---|---|
committer | Shenghou Ma <minux@golang.org> | 2014-07-10 15:14:37 -0400 |
commit | d6679956474eb5d4bf469c228d697648bc80b8f9 (patch) | |
tree | 5aec2e11657b6a5307f245eca1868f4a3e57dc89 /src/cmd/5l | |
parent | 3794847b3f46321fd5c325354100210f28a353b1 (diff) | |
download | go-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.h | 2 | ||||
-rw-r--r-- | src/cmd/5l/asm.c | 1 | ||||
-rw-r--r-- | src/cmd/5l/obj.c | 13 |
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", |