diff options
author | etheisen <etheisen@cvs.openbsd.org> | 1997-01-10 18:29:49 +0000 |
---|---|---|
committer | etheisen <etheisen@cvs.openbsd.org> | 1997-01-10 18:29:49 +0000 |
commit | 328f8aadc16429dbd78b237d8e006dbc25810ed9 (patch) | |
tree | 62442be91c1b28056f2566668766fee4b00f213d /lib/libc | |
parent | 87de474551912bd738b4499fe7772a1d93582ce4 (diff) |
Leading underscores... Actually, they really DID fuck this up on the MIPS
and PPC platforms... Everyone else has _leading!
Diffstat (limited to 'lib/libc')
-rw-r--r-- | lib/libc/gen/nlist.c | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/lib/libc/gen/nlist.c b/lib/libc/gen/nlist.c index 4cc64b045d2..6ea5b91818b 100644 --- a/lib/libc/gen/nlist.c +++ b/lib/libc/gen/nlist.c @@ -32,7 +32,7 @@ */ #if defined(LIBC_SCCS) && !defined(lint) -static char rcsid[] = "$OpenBSD: nlist.c,v 1.18 1997/01/09 03:49:38 rahnds Exp $"; +static char rcsid[] = "$OpenBSD: nlist.c,v 1.19 1997/01/10 18:29:48 etheisen Exp $"; #endif /* LIBC_SCCS and not lint */ #include <sys/types.h> @@ -393,12 +393,16 @@ __elf_fdnlist(fd, list) if (soff == 0) continue; for (p = list; !ISLAST(p); p++) { - /* - * ELF ports do not use the leading - * underscore that is given with "standard" - * nlist calls as a.out format does. - */ - if (!strcmp(&strtab[soff], p->n_un.n_name+1)) { + /* + * XXX - ABI crap, they + * really fucked this up + * for MIPS and PowerPC + */ + if (!strcmp(&strtab[soff], + ((ehdr.e_machine == EM_MIPS) || + (ehdr.e_machine == EM_PPC)) ? + p->n_un.n_name+1 : + p->n_un.n_name)) { p->n_value = s->st_value; /* XXX - type conversion */ |