summaryrefslogtreecommitdiff
path: root/src/cmd/6l
diff options
context:
space:
mode:
authorShenghou Ma <minux.ma@gmail.com>2014-02-09 16:45:38 -0500
committerShenghou Ma <minux.ma@gmail.com>2014-02-09 16:45:38 -0500
commitdcb4a6132d446afa527ff2bbf9e5dcd9600042c9 (patch)
treeb269b431f1fce3b1bcaec0e6567ab8a7cd10441a /src/cmd/6l
parente56c42d7f7578c100a0c02889fad65b075a459b4 (diff)
downloadgo-dcb4a6132d446afa527ff2bbf9e5dcd9600042c9.tar.gz
include, linlink, cmd/6l, cmd/ld: part 1 of solaris/amd64 linker changes.
rsc suggested that we split the whole linker changes into three parts. This is the first one, mostly dealing with adding Hsolaris. LGTM=iant R=golang-codereviews, iant, dave CC=golang-codereviews https://codereview.appspot.com/54210050
Diffstat (limited to 'src/cmd/6l')
-rw-r--r--src/cmd/6l/asm.c4
-rw-r--r--src/cmd/6l/obj.c2
2 files changed, 6 insertions, 0 deletions
diff --git a/src/cmd/6l/asm.c b/src/cmd/6l/asm.c
index 084e2cc6a..813bdc848 100644
--- a/src/cmd/6l/asm.c
+++ b/src/cmd/6l/asm.c
@@ -44,6 +44,7 @@ char freebsddynld[] = "/libexec/ld-elf.so.1";
char openbsddynld[] = "/usr/libexec/ld.so";
char netbsddynld[] = "/libexec/ld.elf_so";
char dragonflydynld[] = "/usr/libexec/ld-elf.so.2";
+char solarisdynld[] = "/lib/amd64/ld.so.1";
char zeroes[32];
@@ -645,6 +646,7 @@ asmb(void)
case Hnetbsd:
case Hopenbsd:
case Hdragonfly:
+ case Hsolaris:
debug['8'] = 1; /* 64-bit addresses */
break;
case Hwindows:
@@ -674,6 +676,7 @@ asmb(void)
case Hnetbsd:
case Hopenbsd:
case Hdragonfly:
+ case Hsolaris:
symo = rnd(HEADR+segtext.len, INITRND)+rnd(segrodata.len, INITRND)+segdata.filelen;
symo = rnd(symo, INITRND);
break;
@@ -754,6 +757,7 @@ asmb(void)
case Hnetbsd:
case Hopenbsd:
case Hdragonfly:
+ case Hsolaris:
asmbelf(symo);
break;
case Hwindows:
diff --git a/src/cmd/6l/obj.c b/src/cmd/6l/obj.c
index a2f146574..92c0c747a 100644
--- a/src/cmd/6l/obj.c
+++ b/src/cmd/6l/obj.c
@@ -65,6 +65,7 @@ archinit(void)
case Hlinux:
case Hnetbsd:
case Hopenbsd:
+ case Hsolaris:
break;
}
ctxt->linkmode = linkmode;
@@ -106,6 +107,7 @@ archinit(void)
case Hnetbsd: /* netbsd */
case Hopenbsd: /* openbsd */
case Hdragonfly: /* dragonfly */
+ case Hsolaris: /* solaris */
elfinit();
HEADR = ELFRESERVE;
if(INITTEXT == -1)