small hidings
diff --git a/src/libmach/Linux.c b/src/libmach/Linux.c
index def8925..9127434 100644
--- a/src/libmach/Linux.c
+++ b/src/libmach/Linux.c
@@ -42,7 +42,7 @@
 static int attachedpids[1000];
 static int nattached;
 
-int
+static int
 ptraceattach(int pid)
 {
 	int i;
@@ -91,8 +91,6 @@
 		}
 }
 
-
-
 int
 mapproc(int pid, Map *map, Regs **rp)
 {
diff --git a/src/libmach/sym.c b/src/libmach/sym.c
index a5cf031..b5d3eac 100644
--- a/src/libmach/sym.c
+++ b/src/libmach/sym.c
@@ -439,7 +439,7 @@
 }
 
 int
-syminit(Fhdr *hdr)
+symopen(Fhdr *hdr)
 {
 	int i;
 	Symbol *r, *w, *es;
@@ -474,8 +474,21 @@
 	return 0;
 }
 
+void
+symclose(Fhdr *hdr)
+{
+	_delhdr(hdr);
+	if(hdr->symclose)
+		hdr->symclose(hdr);
+	free(hdr->byname);
+	hdr->byname = nil;
+	free(hdr->sym);
+	hdr->sym = nil;
+	hdr->nsym = 0;
+}
+
 Symbol*
-addsym(Fhdr *fp, Symbol *sym)
+_addsym(Fhdr *fp, Symbol *sym)
 {
 	Symbol *s;
 
diff --git a/src/libmach/symdwarf.c b/src/libmach/symdwarf.c
index 3ac1257..c56667b 100644
--- a/src/libmach/symdwarf.c
+++ b/src/libmach/symdwarf.c
@@ -212,7 +212,7 @@
 		case TagVariable:
 			if(dwarftosym(fp, d, &s, &sym, 0) < 0)
 				continue;
-			addsym(fp, &sym);
+			_addsym(fp, &sym);
 		}
 	}
 }
diff --git a/src/libmach/symelf.c b/src/libmach/symelf.c
index 0b9f410..40dec11 100644
--- a/src/libmach/symelf.c
+++ b/src/libmach/symelf.c
@@ -46,7 +46,7 @@
 			sym.type = 'U';
 		if(esym.bind==ElfSymBindLocal)
 			sym.type += 'a' - 'A';
-		addsym(fp, &sym);
+		_addsym(fp, &sym);
 	}
 
 	for(i=0; i<elf->nprog; i++){
@@ -60,7 +60,7 @@
 		sym.hiloc = locaddr(p->vaddr+p->filesz);
 		sym.type = 'D';
 		sym.class = CDATA;
-		addsym(fp, &sym);
+		_addsym(fp, &sym);
 	}
 	return 0;
 }
diff --git a/src/libmach/symstabs.c b/src/libmach/symstabs.c
index 07bbd9f..472dd87 100644
--- a/src/libmach/symstabs.c
+++ b/src/libmach/symstabs.c
@@ -196,7 +196,7 @@
 			fun = nil;
 			if(stabcvtsym(&sym, &s, dir, file, i) < 0)
 				continue;
-			if((fun = addsym(fp, &s)) == nil)
+			if((fun = _addsym(fp, &s)) == nil)
 				goto err;
 			locals = 0;
 			params = 0;
@@ -249,7 +249,7 @@
 			/* create new symbol, add it */
 			if(stabcvtsym(&sym, &s, dir, file, i) < 0)
 				continue;
-			if(addsym(fp, &s) == nil)
+			if(_addsym(fp, &s) == nil)
 				goto err;
 			break;
 		}
diff --git a/src/libmach/t.c b/src/libmach/t.c
index d11cb7d..68d2bdf 100644
--- a/src/libmach/t.c
+++ b/src/libmach/t.c
@@ -163,9 +163,9 @@
 	attachargs(argc, argv, OREAD);
 	attachdynamic();
 
-	if(!corpid && !corhdr)
-		sysfatal("could not attach to process");
-
+//	if(!corpid && !corhdr)
+//		sysfatal("could not attach to process");
+//
 	p.pid = corpid;
 	if((e = td_ta_new(&p, &ta)) != TD_OK)
 		sysfatal("td_ta_new: %s", terr(e));