summaryrefslogtreecommitdiff
path: root/lib/libc
diff options
context:
space:
mode:
authoretheisen <etheisen@cvs.openbsd.org>1997-01-10 18:29:49 +0000
committeretheisen <etheisen@cvs.openbsd.org>1997-01-10 18:29:49 +0000
commit328f8aadc16429dbd78b237d8e006dbc25810ed9 (patch)
tree62442be91c1b28056f2566668766fee4b00f213d /lib/libc
parent87de474551912bd738b4499fe7772a1d93582ce4 (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.c18
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 */