Browse Source

Fix relative paths in json files. Fixed NFS.

Elbing Miss 8 years ago
parent
commit
1da53ee2b5
53 changed files with 236 additions and 211 deletions
  1. 8 8
      sys/src/9/k10/k8cpu.json
  2. 1 1
      sys/src/cmd/9660srv/9660srv.json
  3. 5 3
      sys/src/cmd/9nfs/9nfs.json
  4. 4 4
      sys/src/cmd/9nfs/auth.c
  5. 5 5
      sys/src/cmd/9nfs/nfs.c
  6. 3 2
      sys/src/cmd/9nfs/nfsmount.c
  7. 7 7
      sys/src/cmd/9nfs/nfsserver.c
  8. 22 0
      sys/src/cmd/9nfs/pcnfsd.json
  9. 9 10
      sys/src/cmd/9nfs/portmapper.json
  10. 1 1
      sys/src/cmd/9nfs/server.c
  11. 2 2
      sys/src/cmd/9nfs/strparse.c
  12. 2 2
      sys/src/cmd/9nfs/xfile.c
  13. 1 1
      sys/src/cmd/astro/astro.json
  14. 1 1
      sys/src/cmd/awk/awk.json
  15. 0 1
      sys/src/cmd/cmd.json
  16. 120 120
      sys/src/cmd/cmds.json
  17. 1 1
      sys/src/cmd/ip/dhcpclient.json
  18. 2 2
      sys/src/cmd/ip/ipconfig/ipconfig.json
  19. 6 6
      sys/src/cmd/kcmds.json
  20. 1 1
      sys/src/cmd/rc/rc.json
  21. 1 1
      sys/src/lib9p/lib9p.json
  22. 1 1
      sys/src/libString/libString.json
  23. 1 1
      sys/src/libauth/libauth.json
  24. 1 1
      sys/src/libauthsrv/libauthsrv.json
  25. 1 1
      sys/src/libavl/libavl.json
  26. 1 1
      sys/src/libbin/libbin.json
  27. 1 1
      sys/src/libbio/libbio.json
  28. 1 1
      sys/src/libc/klibc.json
  29. 1 1
      sys/src/libc/libc.json
  30. 1 1
      sys/src/libcomplete/libcomplete.json
  31. 1 1
      sys/src/libcontrol/libcontrol.json
  32. 1 1
      sys/src/libdisk/libdisk.json
  33. 1 1
      sys/src/libdraw/libdraw.json
  34. 1 1
      sys/src/libflate/libflate.json
  35. 1 1
      sys/src/libframe/libframe.json
  36. 1 1
      sys/src/libgeometry/libgeometry.json
  37. 1 1
      sys/src/libhtml/libhtml.json
  38. 1 1
      sys/src/libhttpd/libhttpd.json
  39. 1 1
      sys/src/libip/libip.json
  40. 1 1
      sys/src/liblex/liblex.json
  41. 1 1
      sys/src/libmach/libmach.json
  42. 1 1
      sys/src/libmemdraw/libmemdraw.json
  43. 1 1
      sys/src/libmemlayer/libmemlayer.json
  44. 1 1
      sys/src/libmp/libmp.json
  45. 1 1
      sys/src/libndb/libndb.json
  46. 1 1
      sys/src/libplumb/libplumb.json
  47. 1 1
      sys/src/libregexp/libregexp.json
  48. 1 1
      sys/src/libsec/libsec.json
  49. 1 1
      sys/src/libstdio/libstdio.json
  50. 1 1
      sys/src/libsunrpc/libsunrpc.json
  51. 1 1
      sys/src/libthread/libthread.json
  52. 1 1
      sys/src/libventi/libventi.json
  53. 3 1
      util/build.go

+ 8 - 8
sys/src/9/k10/k8cpu.json

@@ -8,28 +8,28 @@
 	],
     "Pre": [
 	"data2c _rc_lib_rcmain ../../../../rc/lib/rcmain >> k8cpu.root.c",
-	"cp ../../../../amd64/bin/rc rc.elf.out",
+	"cp $HARVEY/amd64/bin/rc rc.elf.out",
 	"strip rc.elf.out",
 	"data2c _amd64_bin_rc rc.elf.out >> k8cpu.root.c",
-	"cp ../../../../amd64/bin/bind bind.elf.out",
+	"cp $HARVEY/amd64/bin/bind bind.elf.out",
 	"strip bind.elf.out",
 	"data2c _amd64_bin_bind bind.elf.out>> k8cpu.root.c",
-	"cp ../../../../amd64/bin/mount mount.elf.out",
+	"cp $HARVEY/amd64/bin/mount mount.elf.out",
 	"strip mount.elf.out",
 	"data2c _amd64_bin_mount mount.elf.out>> k8cpu.root.c",
-	"cp ../../../../amd64/bin/echo echo.elf.out",
+	"cp $HARVEY/amd64/bin/echo echo.elf.out",
 	"strip echo.elf.out",
 	"data2c _amd64_bin_echo echo.elf.out>> k8cpu.root.c",
-	"cp ../../../../amd64/bin/ip/ipconfig ipconfig.elf.out",
+	"cp $HARVEY/amd64/bin/ip/ipconfig ipconfig.elf.out",
 	"strip ipconfig.elf.out",
 	"data2c _amd64_bin_ipconfig ipconfig.elf.out>> k8cpu.root.c",
-	"cp ../../../../amd64/bin/srv srv.elf.out",
+	"cp $HARVEY/amd64/bin/srv srv.elf.out",
 	"strip srv.elf.out",
 	"data2c _amd64_bin_srv srv.elf.out>> k8cpu.root.c",
-	"cp ../../../../amd64/bin/date date.elf.out",
+	"cp $HARVEY/amd64/bin/date date.elf.out",
 	"strip date.elf.out",
 	"data2c _amd64_bin_date date.elf.out>> k8cpu.root.c",
-	"cp ../../../../amd64/bin/ls ls.elf.out",
+	"cp $HARVEY/amd64/bin/ls ls.elf.out",
 	"strip ls.elf.out",
 	"data2c _amd64_bin_ls ls.elf.out>> k8cpu.root.c"
     ],

+ 1 - 1
sys/src/cmd/9660srv/9660srv.json

@@ -12,6 +12,6 @@
 	"xfile.c"
 	],
 	"Post": [
-	"mv 9660srv ../../../../amd64/bin/"
+	"mv 9660srv $HARVEY/amd64/bin/"
 	]
 }

+ 5 - 3
sys/src/cmd/9nfs/9nfs.json

@@ -2,7 +2,8 @@
 	"Name": "nfsserver",
 	"Program": "nfsserver",
 	"Projects": [
-	"portmapper.json"
+	"portmapper.json",
+	"pcnfsd.json"
 	],
 	"Include": ["../cmd.json"],
 	"Pre": [
@@ -13,6 +14,7 @@
 	"authhostowner.c",
 	"nfs.c",
 	"nfsmount.c",
+	"nfsserver.c",
 	"xfile.c",
 	"chat.c",
 	"rpc.c",
@@ -24,7 +26,7 @@
 	"unixnames.c"
 	],
 	"Post": [
-	"[ -d ../../../../amd64/bin/aux ] || mkdir ../../../../amd64/bin/aux",
-	"mv nfsserver ../../../../amd64/bin/aux/"
+	"[ -d $HARVEY/amd64/bin/aux ] || mkdir $HARVEY/amd64/bin/aux",
+	"mv nfsserver $HARVEY/amd64/bin/aux/"
 	]
 }

+ 4 - 4
sys/src/cmd/9nfs/auth.c

@@ -12,13 +12,13 @@
 /* this is all stubbed out; the NFS authentication stuff is now disabled - rob */
 
 Xfid *
-xfauth(Xfile *, String *)
+xfauth(Xfile *x, String *s)
 {
 	return 0;
 }
 
 int32_t
-xfauthread(Xfid *xf, int32_t, uint8_t *, int32_t)
+xfauthread(Xfid *xf, int32_t i, uint8_t *n, int32_t l)
 {
 
 	chat("xfauthread %s...", xf->uid);
@@ -26,14 +26,14 @@ xfauthread(Xfid *xf, int32_t, uint8_t *, int32_t)
 }
 
 int32_t
-xfauthwrite(Xfid *xf, int32_t, uint8_t *, int32_t)
+xfauthwrite(Xfid *xf, int32_t i, uint8_t *n, int32_t l)
 {
 	chat("xfauthwrite %s...", xf->uid);
 	return 0;
 }
 
 int
-xfauthremove(Xfid *, char *)
+xfauthremove(Xfid *x, char *c)
 {
 	chat("authremove...");
 	return -1;

+ 5 - 5
sys/src/cmd/9nfs/nfs.c

@@ -39,7 +39,7 @@ rpc2xfid(Rpccall *cmd, Dir *dp)
 			chat("bad tag %lux %lux...", ul, starttime);
 			return 0;
 		}
-		s = (Session *)GLONG();
+		s = (Session *)(int64_t)GLONG();
 		x1 = GLONG();
 		x2 = GLONG();
 		qid.path = x1 | (x2<<32);
@@ -79,12 +79,12 @@ rpc2xfid(Rpccall *cmd, Dir *dp)
 	if(m == 0){
 		chat("no map for pair (%s,%s)...", service, client);
 		/*chat("getdom %d.%d.%d.%d", cmd->host&0xFF, (cmd->host>>8)&0xFF,
-			(cmd->host>>16)&0xFF, (cmd->host>>24)&0xFF);/**/
+			(cmd->host>>16)&0xFF, (cmd->host>>24)&0xFF);*/
 		/*if(getdom(cmd->host, client, sizeof(client))<0)
-			return 0;/**/
+			return 0;*/
 		return 0;
 	}
-	/*chat("map=(%s,%s)...", m->server, m->client);/**/
+	/*chat("map=(%s,%s)...", m->server, m->client);*/
 	cmd->user = user = id2name(&m->u.ids, au.uid);
 	if(user == 0){
 		chat("no user for id %ld...", au.uid);
@@ -397,7 +397,7 @@ xp2fhandle(Xfile *xp, Fhandle fh)
 		dataptr[2+n] = 0;
 	}else{
 		PLONG(starttime);
-		PLONG((u32int)(uintptr)xp->s);
+		PLONG((uint32_t)(uintptr)xp->s);
 		x = xp->qid.path;
 		PLONG(x);
 		x = xp->qid.path>>32;

+ 3 - 2
sys/src/cmd/9nfs/nfsmount.c

@@ -186,11 +186,12 @@ error:
 static int
 mntnull(int n, Rpccall *cmd, Rpccall *reply)
 {
-	USED(n, cmd, reply);
+	USED(n); USED(cmd); USED(reply);
 	chat("mntnull\n");
 	return 0;
 }
 
+/*
 static char*
 Str2str(String s, char *buf, int nbuf)
 {
@@ -202,7 +203,7 @@ Str2str(String s, char *buf, int nbuf)
 	buf[i] = 0;
 	return buf;
 }
-
+*/
 static int
 mntmnt(int n, Rpccall *cmd, Rpccall *reply)
 {

+ 7 - 7
sys/src/cmd/9nfs/nfsserver.c

@@ -91,7 +91,7 @@ nfsinit(int argc, char **argv)
 	/*
 	 * mntinit will have already parsed our options.
 	 */
-	USED(argc, argv);
+	USED(argc); USED(argv);
 	clog("nfs file server init\n");
 	rpcalarm = doalarm;
 	nfstime = time(0);
@@ -100,7 +100,7 @@ nfsinit(int argc, char **argv)
 static int
 nfsnull(int n, Rpccall *cmd, Rpccall *reply)
 {
-	USED(n, reply);
+	USED(n); USED(reply);
 	chat("nfsnull...");
 	showauth(&cmd->cred);
 	chat("OK\n");
@@ -185,7 +185,7 @@ nfssetattr(int n, Rpccall *cmd, Rpccall *reply)
 static int
 nfsroot(int n, Rpccall *cmd, Rpccall *reply)
 {
-	USED(n, reply);
+	USED(n); USED(reply);
 	chat("nfsroot...");
 	showauth(&cmd->cred);
 	chat("OK\n");
@@ -234,7 +234,7 @@ nfslookup(int n, Rpccall *cmd, Rpccall *reply)
 static int
 nfsreadlink(int n, Rpccall *cmd, Rpccall *reply)
 {
-	USED(n, reply);
+	USED(n); USED(reply);
 	chat("readlink...");
 	showauth(&cmd->cred);
 	return error(reply, NFSERR_NOENT);
@@ -291,7 +291,7 @@ nfsread(int n, Rpccall *cmd, Rpccall *reply)
 static int
 nfswritecache(int n, Rpccall *cmd, Rpccall *reply)
 {
-	USED(n, reply);
+	USED(n); USED(reply);
 	chat("writecache...");
 	showauth(&cmd->cred);
 	chat("OK\n");
@@ -514,7 +514,7 @@ nfsrename(int n, Rpccall *cmd, Rpccall *reply)
 static int
 nfslink(int n, Rpccall *cmd, Rpccall *reply)
 {
-	USED(n, reply);
+	USED(n); USED(reply);
 	chat("link...");
 	showauth(&cmd->cred);
 	return error(reply, NFSERR_NOENT);
@@ -523,7 +523,7 @@ nfslink(int n, Rpccall *cmd, Rpccall *reply)
 static int
 nfssymlink(int n, Rpccall *cmd, Rpccall *reply)
 {
-	USED(n, reply);
+	USED(n); USED(reply);
 	chat("symlink...");
 	showauth(&cmd->cred);
 	return error(reply, NFSERR_NOENT);

+ 22 - 0
sys/src/cmd/9nfs/pcnfsd.json

@@ -0,0 +1,22 @@
+{
+	"Name": "pcnfsd",
+	"Program": "pcnfsd",
+	"Include": ["../cmd.json"],
+	"Pre": [
+	],
+	"SourceFiles": [
+	"pcnfsd.c",
+	"unixnames.c",
+	"chat.c",
+	"rpc.c",
+	"server.c",
+	"string.c",
+	"listalloc.c",
+	"strparse.c",
+	"system.c"
+	],
+	"Post": [
+	"[ -d $HARVEY/amd64/bin/aux ] || mkdir $HARVEY/amd64/bin/aux",
+	"mv pcnfsd $HARVEY/amd64/bin/aux/"
+	]
+}

+ 9 - 10
sys/src/cmd/9nfs/portmapper.json

@@ -1,19 +1,18 @@
 {
-	"Name": "9nfs",
-	"Programs": [
-	"portmapper",
-	"pcnfsd"
-	],
+	"Name": "portmapper",
+	"Program": "portmapper",
 	"Include": ["../cmd.json"],
 	"Pre": [
 	],
-	"SourceFilesCmd": [
+	"SourceFiles": [
 	"portmapper.c",
-	"pcnfsd.c"
+	"rpc.c",
+	"chat.c",
+	"server.c",
+	"string.c"
 	],
 	"Post": [
-	"[ -d ../../../../amd64/bin/aux ] || mkdir ../../../../amd64/bin/aux",
-	"mv portmapper ../../../../amd64/bin/aux/",
-	"mv pcnfsd ../../../../amd64/bin/aux/"
+	"[ -d $HARVEY/amd64/bin/aux ] || mkdir $HARVEY/amd64/bin/aux",
+	"mv portmapper $HARVEY/amd64/bin/aux/"
 	]
 }

+ 1 - 1
sys/src/cmd/9nfs/server.c

@@ -13,7 +13,7 @@
 static int	alarmflag;
 
 static int	Iconv(Fmt*);
-static void	openudp(int);
+//static void	openudp(int);
 static void	cachereply(Rpccall*, void*, int);
 static int	replycache(int, Rpccall*, int32_t (*)(int, void*, int32_t));
 static void	udpserver(int, Progmap*);

+ 2 - 2
sys/src/cmd/9nfs/strparse.c

@@ -17,7 +17,7 @@ strparse(char *p, int arsize, char **arv)
 {
 	int arc = 0;
 
-	/*print("parse: 0x%lux = \"%s\"\n", p, p);/**/
+	/*print("parse: 0x%lux = \"%s\"\n", p, p);*/
 	while(p){
 		while(*p == ' ' || *p == '\t')
 			p++;
@@ -36,6 +36,6 @@ strparse(char *p, int arsize, char **arv)
 	/*while(*arv){
 		print("\t0x%lux = \"%s\"\n", *arv, *arv);
 		++arv;
-	}/**/
+	}*/
 	return arc;
 }

+ 2 - 2
sys/src/cmd/9nfs/xfile.c

@@ -23,13 +23,13 @@ xfile(Qid *qid, void *s, int new)
 	int k;
 	Xfile **hp, *f, *pf;
 
-	k = ((uint32_t)qid->path ^ (((u32int)(uintptr)s)<<24))%FIDMOD;
+	k = ((uint32_t)qid->path ^ (((uint32_t)(uintptr)s)<<24))%FIDMOD;
 	hp = &xfiles[k];
 
 	lock(&xlocks[k]);
 	for(f=*hp, pf=0; f; pf=f, f=f->next)
 		if(f->qid.path == qid->path 
-		&& (u32int)(uintptr)f->s == (u32int)(uintptr)s)
+		&& (uint32_t)(uintptr)f->s == (uint32_t)(uintptr)s)
 			break;
 	if(f && pf){
 		pf->next = f->next;

+ 1 - 1
sys/src/cmd/astro/astro.json

@@ -37,6 +37,6 @@
 	"venust.c"
 	],
 	"Post": [
-	"mv astro ../../../../amd64/bin/"
+	"mv astro $HARVEY/amd64/bin/"
 	]
 }

+ 1 - 1
sys/src/cmd/awk/awk.json

@@ -19,6 +19,6 @@
 	"y.tab.c"
 	],
 	"Post": [
-	"mv awk ../../../../amd64/bin/"
+	"mv awk $HARVEY/amd64/bin/"
 	]
 }

+ 0 - 1
sys/src/cmd/cmd.json

@@ -21,7 +21,6 @@
     "Oflags": [
 	"-static",
 	"-e_main",
-	"-L../../../amd64/lib",
 	"-lavl",
 	"-lbin",
 	"-lcomplete",

+ 120 - 120
sys/src/cmd/cmds.json

@@ -253,125 +253,125 @@
 	"yacc.c"
 	],
 	"Post": [
-	"mv aan ../../../amd64/bin/",
-	"mv archfs ../../../amd64/bin/",
-	"mv ascii ../../../amd64/bin/",
-	"mv awd ../../../amd64/bin/",
-	"mv basename ../../../amd64/bin/",
-	"mv bsplit ../../../amd64/bin/",
-	"mv cal ../../../amd64/bin/",
-	"mv calendar ../../../amd64/bin/",
-	"mv calls ../../../amd64/bin/",
-	"mv cat ../../../amd64/bin/",
-	"mv chgrp ../../../amd64/bin/",
-	"mv chmod ../../../amd64/bin/",
-	"mv cleanname ../../../amd64/bin/",
-	"mv clock ../../../amd64/bin/",
-	"mv cmp ../../../amd64/bin/",
-	"mv col ../../../amd64/bin/",
-	"mv colors ../../../amd64/bin/",
-	"mv comm ../../../amd64/bin/",
-	"mv cp ../../../amd64/bin/",
-	"mv cpu ../../../amd64/bin/",
-	"mv crop ../../../amd64/bin/",
-	"mv dc ../../../amd64/bin/",
-	"mv dd ../../../amd64/bin/",
-	"mv deroff ../../../amd64/bin/",
-	"mv du ../../../amd64/bin/",
-	"mv ecp ../../../amd64/bin/",
-	"mv ed ../../../amd64/bin/",
-	"mv factor ../../../amd64/bin/",
-	"mv fcp ../../../amd64/bin/",
-	"mv file ../../../amd64/bin/",
-	"mv fmt ../../../amd64/bin/",
-	"mv fortune ../../../amd64/bin/",
-	"mv freq ../../../amd64/bin/",
-	"mv getmap ../../../amd64/bin/",
-	"mv gview ../../../amd64/bin/",
-	"mv hget ../../../amd64/bin/",
-	"mv histogram ../../../amd64/bin/",
-	"mv history ../../../amd64/bin/",
-	"mv html2ms ../../../amd64/bin/",
-	"mv iconv ../../../amd64/bin/",
-	"mv idiff ../../../amd64/bin/",
-	"mv import ../../../amd64/bin/",
-	"mv init ../../../amd64/bin/",
-	"mv join ../../../amd64/bin/",
-	"mv kbmap ../../../amd64/bin/",
-	"mv kprof ../../../amd64/bin/",
-	"mv ktrace ../../../amd64/bin/",
-	"mv lens ../../../amd64/bin/",
-	"mv lnfs ../../../amd64/bin/",
-	"mv lock ../../../amd64/bin/",
-	"mv look ../../../amd64/bin/",
-	"mv mc ../../../amd64/bin/",
-	"mv md5sum ../../../amd64/bin/",
-	"mv mkdir ../../../amd64/bin/",
-	"mv mntgen ../../../amd64/bin/",
-	"mv ms2html ../../../amd64/bin/",
-	"mv mtime ../../../amd64/bin/",
-	"mv mug ../../../amd64/bin/",
-	"mv mv ../../../amd64/bin/",
-	"mv netstat ../../../amd64/bin/",
-	"mv news ../../../amd64/bin/",
-	"mv nfs ../../../amd64/bin/",
-	"mv nm ../../../amd64/bin/",
-	"mv nntpfs ../../../amd64/bin/",
-	"mv ns ../../../amd64/bin/",
-	"mv pbd ../../../amd64/bin/",
-	"mv p ../../../amd64/bin/",
-	"mv pcc ../../../amd64/bin/",
-	"mv pipefile ../../../amd64/bin/",
-	"mv pr ../../../amd64/bin/",
-	"mv primes ../../../amd64/bin/",
-	"mv prof ../../../amd64/bin/",
-	"mv ps ../../../amd64/bin/",
-	"mv pump ../../../amd64/bin/",
-	"mv pwd ../../../amd64/bin/",
-	"mv ramfs ../../../amd64/bin/",
-	"mv ratrace ../../../amd64/bin/",
-	"mv rdbfs ../../../amd64/bin/",
-	"mv read ../../../amd64/bin/",
-	"mv resample ../../../amd64/bin/",
-	"mv rm ../../../amd64/bin/",
-	"mv rx ../../../amd64/bin/",
-	"mv screenlock ../../../amd64/bin/",
-	"mv seconds ../../../amd64/bin/",
-	"mv sed ../../../amd64/bin/",
-	"mv seq ../../../amd64/bin/",
-	"mv sha1sum ../../../amd64/bin/",
-	"mv size ../../../amd64/bin/",
-	"mv sleep ../../../amd64/bin/",
-	"mv sort ../../../amd64/bin/",
-	"mv split ../../../amd64/bin/",
-	"mv srvfs ../../../amd64/bin/",
-	"mv stats ../../../amd64/bin/",
-	"mv strings ../../../amd64/bin/",
-	"mv strip ../../../amd64/bin/",
-	"mv sum ../../../amd64/bin/",
-	"mv swap ../../../amd64/bin/",
-	"mv tail ../../../amd64/bin/",
-	"mv tar ../../../amd64/bin/",
-	"mv tee ../../../amd64/bin/",
-	"mv testalarm ../../../amd64/bin/",
-	"mv test ../../../amd64/bin/",
-	"mv time ../../../amd64/bin/",
-	"mv tlsclient ../../../amd64/bin/",
-	"mv tlssrv ../../../amd64/bin/",
-	"mv touch ../../../amd64/bin/",
-	"mv tprof ../../../amd64/bin/",
-	"mv trace ../../../amd64/bin/",
-	"mv tr ../../../amd64/bin/",
-	"mv tweak ../../../amd64/bin/",
-	"mv unicode ../../../amd64/bin/",
-	"mv uniq ../../../amd64/bin/",
-	"mv unlnfs ../../../amd64/bin/",
-	"mv unmount ../../../amd64/bin/",
-	"mv wc ../../../amd64/bin/",
-	"mv webcookies ../../../amd64/bin/",
-	"mv webfsget ../../../amd64/bin/",
-	"mv winwatch ../../../amd64/bin/",
-	"mv xd ../../../amd64/bin/",
-	"mv yacc ../../../amd64/bin/"
+	"mv aan $HARVEY/amd64/bin/",
+	"mv archfs $HARVEY/amd64/bin/",
+	"mv ascii $HARVEY/amd64/bin/",
+	"mv awd $HARVEY/amd64/bin/",
+	"mv basename $HARVEY/amd64/bin/",
+	"mv bsplit $HARVEY/amd64/bin/",
+	"mv cal $HARVEY/amd64/bin/",
+	"mv calendar $HARVEY/amd64/bin/",
+	"mv calls $HARVEY/amd64/bin/",
+	"mv cat $HARVEY/amd64/bin/",
+	"mv chgrp $HARVEY/amd64/bin/",
+	"mv chmod $HARVEY/amd64/bin/",
+	"mv cleanname $HARVEY/amd64/bin/",
+	"mv clock $HARVEY/amd64/bin/",
+	"mv cmp $HARVEY/amd64/bin/",
+	"mv col $HARVEY/amd64/bin/",
+	"mv colors $HARVEY/amd64/bin/",
+	"mv comm $HARVEY/amd64/bin/",
+	"mv cp $HARVEY/amd64/bin/",
+	"mv cpu $HARVEY/amd64/bin/",
+	"mv crop $HARVEY/amd64/bin/",
+	"mv dc $HARVEY/amd64/bin/",
+	"mv dd $HARVEY/amd64/bin/",
+	"mv deroff $HARVEY/amd64/bin/",
+	"mv du $HARVEY/amd64/bin/",
+	"mv ecp $HARVEY/amd64/bin/",
+	"mv ed $HARVEY/amd64/bin/",
+	"mv factor $HARVEY/amd64/bin/",
+	"mv fcp $HARVEY/amd64/bin/",
+	"mv file $HARVEY/amd64/bin/",
+	"mv fmt $HARVEY/amd64/bin/",
+	"mv fortune $HARVEY/amd64/bin/",
+	"mv freq $HARVEY/amd64/bin/",
+	"mv getmap $HARVEY/amd64/bin/",
+	"mv gview $HARVEY/amd64/bin/",
+	"mv hget $HARVEY/amd64/bin/",
+	"mv histogram $HARVEY/amd64/bin/",
+	"mv history $HARVEY/amd64/bin/",
+	"mv html2ms $HARVEY/amd64/bin/",
+	"mv iconv $HARVEY/amd64/bin/",
+	"mv idiff $HARVEY/amd64/bin/",
+	"mv import $HARVEY/amd64/bin/",
+	"mv init $HARVEY/amd64/bin/",
+	"mv join $HARVEY/amd64/bin/",
+	"mv kbmap $HARVEY/amd64/bin/",
+	"mv kprof $HARVEY/amd64/bin/",
+	"mv ktrace $HARVEY/amd64/bin/",
+	"mv lens $HARVEY/amd64/bin/",
+	"mv lnfs $HARVEY/amd64/bin/",
+	"mv lock $HARVEY/amd64/bin/",
+	"mv look $HARVEY/amd64/bin/",
+	"mv mc $HARVEY/amd64/bin/",
+	"mv md5sum $HARVEY/amd64/bin/",
+	"mv mkdir $HARVEY/amd64/bin/",
+	"mv mntgen $HARVEY/amd64/bin/",
+	"mv ms2html $HARVEY/amd64/bin/",
+	"mv mtime $HARVEY/amd64/bin/",
+	"mv mug $HARVEY/amd64/bin/",
+	"mv mv $HARVEY/amd64/bin/",
+	"mv netstat $HARVEY/amd64/bin/",
+	"mv news $HARVEY/amd64/bin/",
+	"mv nfs $HARVEY/amd64/bin/",
+	"mv nm $HARVEY/amd64/bin/",
+	"mv nntpfs $HARVEY/amd64/bin/",
+	"mv ns $HARVEY/amd64/bin/",
+	"mv pbd $HARVEY/amd64/bin/",
+	"mv p $HARVEY/amd64/bin/",
+	"mv pcc $HARVEY/amd64/bin/",
+	"mv pipefile $HARVEY/amd64/bin/",
+	"mv pr $HARVEY/amd64/bin/",
+	"mv primes $HARVEY/amd64/bin/",
+	"mv prof $HARVEY/amd64/bin/",
+	"mv ps $HARVEY/amd64/bin/",
+	"mv pump $HARVEY/amd64/bin/",
+	"mv pwd $HARVEY/amd64/bin/",
+	"mv ramfs $HARVEY/amd64/bin/",
+	"mv ratrace $HARVEY/amd64/bin/",
+	"mv rdbfs $HARVEY/amd64/bin/",
+	"mv read $HARVEY/amd64/bin/",
+	"mv resample $HARVEY/amd64/bin/",
+	"mv rm $HARVEY/amd64/bin/",
+	"mv rx $HARVEY/amd64/bin/",
+	"mv screenlock $HARVEY/amd64/bin/",
+	"mv seconds $HARVEY/amd64/bin/",
+	"mv sed $HARVEY/amd64/bin/",
+	"mv seq $HARVEY/amd64/bin/",
+	"mv sha1sum $HARVEY/amd64/bin/",
+	"mv size $HARVEY/amd64/bin/",
+	"mv sleep $HARVEY/amd64/bin/",
+	"mv sort $HARVEY/amd64/bin/",
+	"mv split $HARVEY/amd64/bin/",
+	"mv srvfs $HARVEY/amd64/bin/",
+	"mv stats $HARVEY/amd64/bin/",
+	"mv strings $HARVEY/amd64/bin/",
+	"mv strip $HARVEY/amd64/bin/",
+	"mv sum $HARVEY/amd64/bin/",
+	"mv swap $HARVEY/amd64/bin/",
+	"mv tail $HARVEY/amd64/bin/",
+	"mv tar $HARVEY/amd64/bin/",
+	"mv tee $HARVEY/amd64/bin/",
+	"mv testalarm $HARVEY/amd64/bin/",
+	"mv test $HARVEY/amd64/bin/",
+	"mv time $HARVEY/amd64/bin/",
+	"mv tlsclient $HARVEY/amd64/bin/",
+	"mv tlssrv $HARVEY/amd64/bin/",
+	"mv touch $HARVEY/amd64/bin/",
+	"mv tprof $HARVEY/amd64/bin/",
+	"mv trace $HARVEY/amd64/bin/",
+	"mv tr $HARVEY/amd64/bin/",
+	"mv tweak $HARVEY/amd64/bin/",
+	"mv unicode $HARVEY/amd64/bin/",
+	"mv uniq $HARVEY/amd64/bin/",
+	"mv unlnfs $HARVEY/amd64/bin/",
+	"mv unmount $HARVEY/amd64/bin/",
+	"mv wc $HARVEY/amd64/bin/",
+	"mv webcookies $HARVEY/amd64/bin/",
+	"mv webfsget $HARVEY/amd64/bin/",
+	"mv winwatch $HARVEY/amd64/bin/",
+	"mv xd $HARVEY/amd64/bin/",
+	"mv yacc $HARVEY/amd64/bin/"
 	]
 }

+ 1 - 1
sys/src/cmd/ip/dhcpclient.json

@@ -8,6 +8,6 @@
 	"dhcpclient.c"
 	],
 	"Post": [
-	"mv dhcpclient ../../../../amd64/bin/ip/"
+	"mv dhcpclient $HARVEY/amd64/bin/ip/"
 	]
 }

+ 2 - 2
sys/src/cmd/ip/ipconfig/ipconfig.json

@@ -10,7 +10,7 @@
 	"ppp.c"
 	],
 	"Post": [
-	"[ -d ../../../../../amd64/bin/ip ] || mkdir ../../../../../amd64/bin/ip",
-	"mv ipconfig ../../../../../amd64/bin/ip/ipconfig"
+	"[ -d $HARVEY/amd64/bin/ip ] || mkdir $HARVEY/amd64/bin/ip",
+	"mv ipconfig $HARVEY/amd64/bin/ip/ipconfig"
 	]
 }

+ 6 - 6
sys/src/cmd/kcmds.json

@@ -25,11 +25,11 @@
 	"ls.c"
 	],
 	"Post": [
-	"mv bind ../../../amd64/bin/",
-	"mv mount ../../../amd64/bin/",
-	"mv date ../../../amd64/bin/",
-	"mv srv ../../../amd64/bin/",
-	"mv echo ../../../amd64/bin/",
-	"mv ls ../../../amd64/bin/"
+	"mv bind $HARVEY/amd64/bin/",
+	"mv mount $HARVEY/amd64/bin/",
+	"mv date $HARVEY/amd64/bin/",
+	"mv srv $HARVEY/amd64/bin/",
+	"mv echo $HARVEY/amd64/bin/",
+	"mv ls $HARVEY/amd64/bin/"
 	]
 }

+ 1 - 1
sys/src/cmd/rc/rc.json

@@ -26,6 +26,6 @@
 	"y.tab.c"
 	],
 	"Post":[
-	"mv rc ../../../../amd64/bin/"
+	"mv rc $HARVEY/amd64/bin/"
 	]
 }

+ 1 - 1
sys/src/lib9p/lib9p.json

@@ -22,6 +22,6 @@
 	"util.c"
 	],
 	"Post": [
-	"ar rv ../../../amd64/lib/lib9p.a *.o"
+	"ar rv $HARVEY/amd64/lib/lib9p.a *.o"
 	]
 }

+ 1 - 1
sys/src/libString/libString.json

@@ -24,6 +24,6 @@
 	"s_unique.c"
 	],
 	"Post": [
-	"ar rv ../../../amd64/lib/libString.a *.o"
+	"ar rv $HARVEY/amd64/lib/libString.a *.o"
 	]
 }

+ 1 - 1
sys/src/libauth/libauth.json

@@ -23,6 +23,6 @@
 	"noworld.c"
 	],
 	"Post": [
-	"ar rv ../../../amd64/lib/libauth.a *.o"
+	"ar rv $HARVEY/amd64/lib/libauth.a *.o"
 	]
 }

+ 1 - 1
sys/src/libauthsrv/libauthsrv.json

@@ -22,6 +22,6 @@
 	"readnvram.c"
 	],
 	"Post": [
-	"ar rv ../../../amd64/lib/libauthsrv.a *.o"
+	"ar rv $HARVEY/amd64/lib/libauthsrv.a *.o"
 	]
 }

+ 1 - 1
sys/src/libavl/libavl.json

@@ -8,6 +8,6 @@
 	"avl.c"
 	],
 	"Post": [
-	"ar rv ../../../amd64/lib/libavl.a *.o"
+	"ar rv $HARVEY/amd64/lib/libavl.a *.o"
 	]
 }

+ 1 - 1
sys/src/libbin/libbin.json

@@ -8,6 +8,6 @@
 	"bin.c"
 	],
 	"Post": [
-	"ar rv ../../../amd64/lib/libbin.a *.o"
+	"ar rv $HARVEY/amd64/lib/libbin.a *.o"
 	]
 }

+ 1 - 1
sys/src/libbio/libbio.json

@@ -24,6 +24,6 @@
 	"bvprint.c"
 	],
 	"Post": [
-	"ar rv ../../../amd64/lib/libbio.a *.o"
+	"ar rv $HARVEY/amd64/lib/libbio.a *.o"
 	]
 }

+ 1 - 1
sys/src/libc/klibc.json

@@ -269,6 +269,6 @@
 	],
 	"Post": [
 	"rm 9syscall/*.s",
-	"ar rv ../../../amd64/lib/klibc.a *.o"
+	"ar rv $HARVEY/amd64/lib/klibc.a *.o"
 	]
 }

+ 1 - 1
sys/src/libc/libc.json

@@ -268,6 +268,6 @@
 	"amd64/main9.S"
 	],
 	"Post": [
-	"ar rv ../../../amd64/lib/libc.a *.o"
+	"ar rv $HARVEY/amd64/lib/libc.a *.o"
 	]
 }

+ 1 - 1
sys/src/libcomplete/libcomplete.json

@@ -8,6 +8,6 @@
 	"complete.c"
 	],
 	"Post": [
-	"ar rv ../../../amd64/lib/libcomplete.a *.o"
+	"ar rv $HARVEY/amd64/lib/libcomplete.a *.o"
 	]
 }

+ 1 - 1
sys/src/libcontrol/libcontrol.json

@@ -23,6 +23,6 @@
 	"textbutton3.c"
 	],
 	"Post": [
-	"ar rv ../../../amd64/lib/libcontrol.a *.o"
+	"ar rv $HARVEY/amd64/lib/libcontrol.a *.o"
 	]
 }

+ 1 - 1
sys/src/libdisk/libdisk.json

@@ -10,6 +10,6 @@
 	"scsi.c"
 	],
 	"Post": [
-	"ar rv ../../../amd64/lib/libdisk.a *.o"
+	"ar rv $HARVEY/amd64/lib/libdisk.a *.o"
 	]
 }

+ 1 - 1
sys/src/libdraw/libdraw.json

@@ -63,6 +63,6 @@
 	"writesubfont.c"
 	],
 	"Post": [
-	"ar rv ../../../amd64/lib/libdraw.a *.o"
+	"ar rv $HARVEY/amd64/lib/libdraw.a *.o"
 	]
 }

+ 1 - 1
sys/src/libflate/libflate.json

@@ -18,6 +18,6 @@
 	"adler.c"
 	],
 	"Post": [
-	"ar rv ../../../amd64/lib/libflate.a *.o"
+	"ar rv $HARVEY/amd64/lib/libflate.a *.o"
 	]
 }

+ 1 - 1
sys/src/libframe/libframe.json

@@ -16,6 +16,6 @@
 	"frutil.c"
 	],
 	"Post": [
-	"ar rv ../../../amd64/lib/libframe.a *.o"
+	"ar rv $HARVEY/amd64/lib/libframe.a *.o"
 	]
 }

+ 1 - 1
sys/src/libgeometry/libgeometry.json

@@ -13,6 +13,6 @@
 	"tstack.c"
 	],
 	"Post": [
-	"ar rv ../../../amd64/lib/libgeometry.a *.o"
+	"ar rv $HARVEY/amd64/lib/libgeometry.a *.o"
 	]
 }

+ 1 - 1
sys/src/libhtml/libhtml.json

@@ -11,6 +11,6 @@
 	"utils.c"
 	],
 	"Post": [
-	"ar rv ../../../amd64/lib/libhtml.a *.o"
+	"ar rv $HARVEY/amd64/lib/libhtml.a *.o"
 	]
 }

+ 1 - 1
sys/src/libhttpd/libhttpd.json

@@ -24,6 +24,6 @@
 	"urlunesc.c"
 	],
 	"Post": [
-	"ar rv ../../../amd64/lib/libhttpd.a *.o"
+	"ar rv $HARVEY/amd64/lib/libhttpd.a *.o"
 	]
 }

+ 1 - 1
sys/src/libip/libip.json

@@ -18,6 +18,6 @@
 	"ptclbsum.c"
 	],
 	"Post": [
-	"ar rv ../../../amd64/lib/libip.a *.o"
+	"ar rv $HARVEY/amd64/lib/libip.a *.o"
 	]
 }

+ 1 - 1
sys/src/liblex/liblex.json

@@ -12,6 +12,6 @@
 	"yywrap.c"
 	],
 	"Post": [
-	"ar rv ../../../amd64/lib/liblex.a *.o"
+	"ar rv $HARVEY/amd64/lib/liblex.a *.o"
 	]
 }

+ 1 - 1
sys/src/libmach/libmach.json

@@ -18,6 +18,6 @@
 	"sym.c"
 	],
 	"Post": [
-	"ar rv ../../../amd64/lib/libmach.a *.o"
+	"ar rv $HARVEY/amd64/lib/libmach.a *.o"
 	]
 }

+ 1 - 1
sys/src/libmemdraw/libmemdraw.json

@@ -27,6 +27,6 @@
 	"write.c"
 	],
 	"Post": [
-	"ar rv ../../../amd64/lib/libmemdraw.a *.o"
+	"ar rv $HARVEY/amd64/lib/libmemdraw.a *.o"
 	]
 }

+ 1 - 1
sys/src/libmemlayer/libmemlayer.json

@@ -19,6 +19,6 @@
 	"unload.c"
 	],
 	"Post": [
-	"ar rv ../../../amd64/lib/libmemlayer.a *.o"
+	"ar rv $HARVEY/amd64/lib/libmemlayer.a *.o"
 	]
 }

+ 1 - 1
sys/src/libmp/libmp.json

@@ -39,6 +39,6 @@
 	"port/strtomp.c"
 	],
 	"Post": [
-	"ar rv ../../../amd64/lib/libmp.a *.o"
+	"ar rv $HARVEY/amd64/lib/libmp.a *.o"
 	]
 }

+ 1 - 1
sys/src/libndb/libndb.json

@@ -26,6 +26,6 @@
 	"ndbsubstitute.c"
 	],
 	"Post": [
-	"ar rv ../../../amd64/lib/libndb.a *.o"
+	"ar rv $HARVEY/amd64/lib/libndb.a *.o"
 	]
 }

+ 1 - 1
sys/src/libplumb/libplumb.json

@@ -10,6 +10,6 @@
 	"plumbsendtext.c"
 	],
 	"Post": [
-	"ar rv ../../../amd64/lib/libplumb.a *.o"
+	"ar rv $HARVEY/amd64/lib/libplumb.a *.o"
 	]
 }

+ 1 - 1
sys/src/libregexp/libregexp.json

@@ -14,6 +14,6 @@
 	"rregsub.c"
 	],
 	"Post": [
-	"ar rv ../../../amd64/lib/libregexp.a *.o"
+	"ar rv $HARVEY/amd64/lib/libregexp.a *.o"
 	]
 }

+ 1 - 1
sys/src/libsec/libsec.json

@@ -62,6 +62,6 @@
 	"port/x509.c"
 	],
 	"Post": [
-	"ar rv ../../../amd64/lib/libsec.a *.o"
+	"ar rv $HARVEY/amd64/lib/libsec.a *.o"
 	]
 }

+ 1 - 1
sys/src/libstdio/libstdio.json

@@ -56,6 +56,6 @@
 	"vsprintf.c"
 	],
 	"Post": [
-	"ar rv ../../../amd64/lib/libstdio.a *.o"
+	"ar rv $HARVEY/amd64/lib/libstdio.a *.o"
 	]
 }

+ 1 - 1
sys/src/libsunrpc/libsunrpc.json

@@ -22,6 +22,6 @@
 	"udp.c"
 	],
 	"Post": [
-	"ar rv ../../../amd64/lib/libsunrpc.a *.o"
+	"ar rv $HARVEY/amd64/lib/libsunrpc.a *.o"
 	]
 }

+ 1 - 1
sys/src/libthread/libthread.json

@@ -32,6 +32,6 @@
 	"sched.c"
 	],
 	"Post": [
-	"ar rv ../../../amd64/lib/libthread.a *.o"
+	"ar rv $HARVEY/amd64/lib/libthread.a *.o"
 	]
 }

+ 1 - 1
sys/src/libventi/libventi.json

@@ -35,6 +35,6 @@
 	"zeroscore.c"
 	],
 	"Post": [
-	"ar rv ../../../amd64/lib/libventi.a *.o"
+	"ar rv $HARVEY/amd64/lib/libventi.a *.o"
 	]
 }

+ 3 - 1
util/build.go

@@ -145,6 +145,7 @@ func link(b *build) {
 			o := f[:len(f)] + ".o"
 			args = append(args, []string{o}...)
 			args = append(args, b.Oflags...)
+			args = append(args, adjust([]string{"-L", "/amd64/lib"})...)
 			args = append(args, b.Libs...)
 			cmd := exec.Command("ld", args...)
 			cmd.Env = append(os.Environ(), b.Env...)
@@ -160,8 +161,9 @@ func link(b *build) {
 		}
 	} else {
 		args := []string{"-o", b.Program}
-		args = append(args, b.Oflags...)
 		args = append(args, b.ObjectFiles...)
+		args = append(args, b.Oflags...)
+		args = append(args, adjust([]string{"-L", "/amd64/lib"})...)
 		args = append(args, b.Libs...)
 		cmd := exec.Command("ld", args...)
 		cmd.Env = append(os.Environ(), b.Env...)