name mangling, process control

This commit is contained in:
rsc 2005-11-28 00:40:04 +00:00
parent 689be54125
commit 7d6f5677c1
6 changed files with 780 additions and 10 deletions

View file

@ -491,6 +491,8 @@ symclose(Fhdr *hdr)
Symbol*
_addsym(Fhdr *fp, Symbol *sym)
{
char *t;
static char buf[65536];
Symbol *s;
if(fp->nsym%128 == 0){
@ -502,6 +504,12 @@ _addsym(Fhdr *fp, Symbol *sym)
if(machdebug)
fprint(2, "sym %s %c %L\n", sym->name, sym->type, sym->loc);
sym->fhdr = fp;
t = demangle(sym->name, buf, 1);
if(t != sym->name){
sym->name = strdup(t);
if(sym->name == nil)
return nil;
}
s = &fp->sym[fp->nsym++];
*s = *sym;
return s;