aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/6l/obj.c
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2013-03-19 15:45:42 -0400
committerRuss Cox <rsc@golang.org>2013-03-19 15:45:42 -0400
commitb4f3533c92dc59f22bbddbc5b73a1575ce6f7f8b (patch)
treecc69d632eaae7b8aff08e47c22257ee453b53568 /src/cmd/6l/obj.c
parentab08eac5b78c05672a1bcdc5012f9f9384f86fba (diff)
downloadgo-b4f3533c92dc59f22bbddbc5b73a1575ce6f7f8b.tar.xz
cmd/ld: replace -hostobj with -linkmode
Still disabled. Need to fix TLS. R=golang-dev, minux.ma, bradfitz CC=golang-dev https://golang.org/cl/7783044
Diffstat (limited to 'src/cmd/6l/obj.c')
-rw-r--r--src/cmd/6l/obj.c30
1 files changed, 14 insertions, 16 deletions
diff --git a/src/cmd/6l/obj.c b/src/cmd/6l/obj.c
index 91569794bf..3775df9de5 100644
--- a/src/cmd/6l/obj.c
+++ b/src/cmd/6l/obj.c
@@ -109,7 +109,7 @@ main(int argc, char *argv[])
flagcount("d", "disable dynamic executable", &debug['d']);
flagcount("f", "ignore version mismatch", &debug['f']);
flagcount("g", "disable go package data checks", &debug['g']);
- flagcount("hostobj", "generate host object file", &isobj);
+ flagfn1("linkmode", "mode: set link mode (internal, external, auto)", setlinkmode);
flagstr("k", "sym: set field tracking symbol", &tracksym);
flagcount("n", "dump symbol table", &debug['n']);
flagstr("o", "outfile: set output file", &outfile);
@@ -124,10 +124,6 @@ main(int argc, char *argv[])
flagcount("w", "disable DWARF generation", &debug['w']);
flagparse(&argc, &argv, usage);
-
- // TODO: link mode flag instead of isobj
- if(isobj)
- linkmode = LinkExternal;
if(argc != 1)
usage();
@@ -137,17 +133,19 @@ main(int argc, char *argv[])
if(HEADTYPE == -1)
HEADTYPE = headtype(goos);
- if(isobj) {
- switch(HEADTYPE) {
- default:
- sysfatal("cannot use -hostobj with -H %s", headstr(HEADTYPE));
- case Hdarwin:
- case Hfreebsd:
- case Hlinux:
- case Hnetbsd:
- case Hopenbsd:
- break;
- }
+ switch(HEADTYPE) {
+ default:
+ if(linkmode == LinkAuto)
+ linkmode = LinkInternal;
+ if(linkmode == LinkExternal)
+ sysfatal("cannot use -linkmode=external with -H %s", headstr(HEADTYPE));
+ break;
+ case Hdarwin:
+ case Hfreebsd:
+ case Hlinux:
+ case Hnetbsd:
+ case Hopenbsd:
+ break;
}
if(outfile == nil) {