aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/ld
diff options
context:
space:
mode:
authorJoel Sing <jsing@google.com>2013-08-24 01:18:04 +1000
committerJoel Sing <jsing@google.com>2013-08-24 01:18:04 +1000
commit71dc91db0ff711c39fbf86ca9425c65442e40b57 (patch)
tree2f45e2a4da3beac345141fc05f2153d8c53853ec /src/cmd/ld
parent180da80e9004cd6e1bbfc026890a12e86d0f9f5d (diff)
downloadgo-71dc91db0ff711c39fbf86ca9425c65442e40b57.tar.xz
all: compiler/bootstrap for dragonfly/amd64
Add dragonfly/amd64 support to the Go compiler, bootstrap and GOOS list. R=devon.odell, bradfitz CC=golang-dev https://golang.org/cl/12796050
Diffstat (limited to 'src/cmd/ld')
-rw-r--r--src/cmd/ld/doc.go2
-rw-r--r--src/cmd/ld/elf.c5
-rw-r--r--src/cmd/ld/elf.h1
-rw-r--r--src/cmd/ld/lib.h1
4 files changed, 9 insertions, 0 deletions
diff --git a/src/cmd/ld/doc.go b/src/cmd/ld/doc.go
index 5f7c2565ef..06b4116247 100644
--- a/src/cmd/ld/doc.go
+++ b/src/cmd/ld/doc.go
@@ -33,6 +33,8 @@ Options new in this version:
linker. This flag cannot be used when $GOOS is windows.
-H darwin (only in 6l/8l)
Write Apple Mach-O binaries (default when $GOOS is darwin)
+ -H dragonfly (only in 6l)
+ Write DragonFly ELF binaries (default when $GOOS is dragonfly)
-H linux
Write Linux ELF binaries (default when $GOOS is linux)
-H freebsd
diff --git a/src/cmd/ld/elf.c b/src/cmd/ld/elf.c
index 52bf333bd7..6b3638ec56 100644
--- a/src/cmd/ld/elf.c
+++ b/src/cmd/ld/elf.c
@@ -1189,6 +1189,9 @@ asmbelf(vlong symo)
case Hopenbsd:
interpreter = openbsddynld;
break;
+ case Hdragonfly:
+ interpreter = dragonflydynld;
+ break;
}
}
resoff -= elfinterp(sh, startva, resoff, interpreter);
@@ -1461,6 +1464,8 @@ elfobj:
eh->ident[EI_OSABI] = ELFOSABI_NETBSD;
else if(HEADTYPE == Hopenbsd)
eh->ident[EI_OSABI] = ELFOSABI_OPENBSD;
+ else if(HEADTYPE == Hdragonfly)
+ eh->ident[EI_OSABI] = ELFOSABI_NONE;
if(PtrSize == 8)
eh->ident[EI_CLASS] = ELFCLASS64;
else
diff --git a/src/cmd/ld/elf.h b/src/cmd/ld/elf.h
index dee5a63835..5b2ff041a3 100644
--- a/src/cmd/ld/elf.h
+++ b/src/cmd/ld/elf.h
@@ -1009,6 +1009,7 @@ extern char linuxdynld[];
extern char freebsddynld[];
extern char netbsddynld[];
extern char openbsddynld[];
+extern char dragonflydynld[];
int elfreloc1(Reloc*, vlong sectoff);
void putelfsectionsyms(void);
diff --git a/src/cmd/ld/lib.h b/src/cmd/ld/lib.h
index 0ba5203d14..7ad630e1f0 100644
--- a/src/cmd/ld/lib.h
+++ b/src/cmd/ld/lib.h
@@ -344,6 +344,7 @@ enum {
Hfreebsd, // FreeBSD ELF
Hwindows, // MS Windows PE
Hopenbsd, // OpenBSD ELF
+ Hdragonfly, // DragonFly ELF
};
typedef struct Header Header;