Module Name:    src
Committed By:   he
Date:           Fri Aug 21 08:42:02 UTC 2009

Modified Files:
        src/include: nlist.h
        src/lib/libc/gen: nlist_coff.c nlist_ecoff.c nlist_elf32.c
            nlist_private.h

Log Message:
Introduce a new accessor macro N_NAME() to access the n_name field
in struct nlist, since it's accessed differently depending on
whether we do a.out or not.  Use this macro as appropriate in the
nlist* functions.
Also replace some includes of <a.out.h> with <nlist.h>, to fix build
problem for mips.


To generate a diff of this commit:
cvs rdiff -u -r1.13 -r1.14 src/include/nlist.h
cvs rdiff -u -r1.7 -r1.8 src/lib/libc/gen/nlist_coff.c
cvs rdiff -u -r1.17 -r1.18 src/lib/libc/gen/nlist_ecoff.c
cvs rdiff -u -r1.30 -r1.31 src/lib/libc/gen/nlist_elf32.c
cvs rdiff -u -r1.18 -r1.19 src/lib/libc/gen/nlist_private.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/include/nlist.h
diff -u src/include/nlist.h:1.13 src/include/nlist.h:1.14
--- src/include/nlist.h:1.13	Sat Feb 26 21:16:35 2005
+++ src/include/nlist.h	Fri Aug 21 08:42:02 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: nlist.h,v 1.13 2005/02/26 21:16:35 dsl Exp $	*/
+/*	$NetBSD: nlist.h,v 1.14 2009/08/21 08:42:02 he Exp $	*/
 
 /*-
  * Copyright (c) 1991, 1993
@@ -51,8 +51,10 @@
 		__aconst char *n_name;	/* symbol name (in memory) */
 		long n_strx;		/* file string table offset (on disk) */
 	} n_un;
+# define N_NAME(nlp)	((nlp)->n_un.n_name)
 #else
 	const char *n_name;		/* symbol name (in memory) */
+# define N_NAME(nlp)	((nlp)->n_name)
 #endif
 
 #define	N_UNDF	0x00		/* undefined */

Index: src/lib/libc/gen/nlist_coff.c
diff -u src/lib/libc/gen/nlist_coff.c:1.7 src/lib/libc/gen/nlist_coff.c:1.8
--- src/lib/libc/gen/nlist_coff.c:1.7	Mon Feb 16 10:40:45 2009
+++ src/lib/libc/gen/nlist_coff.c	Fri Aug 21 08:42:02 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: nlist_coff.c,v 1.7 2009/02/16 10:40:45 lukem Exp $ */
+/* $NetBSD: nlist_coff.c,v 1.8 2009/08/21 08:42:02 he Exp $ */
 
 /*
  * Copyright (c) 1996 Christopher G. Demetriou
@@ -36,7 +36,7 @@
 
 #include <sys/cdefs.h>
 #if defined(LIBC_SCCS) && !defined(lint)
-__RCSID("$NetBSD: nlist_coff.c,v 1.7 2009/02/16 10:40:45 lukem Exp $");
+__RCSID("$NetBSD: nlist_coff.c,v 1.8 2009/08/21 08:42:02 he Exp $");
 #endif /* LIBC_SCCS and not lint */
 
 #include "namespace.h"
@@ -50,7 +50,7 @@
 #include <stdio.h>
 #include <string.h>
 #include <unistd.h>
-#include <a.out.h>			/* for 'struct nlist' declaration */
+#include <nlist.h>
 
 #include "nlist_private.h"
 #ifdef NLIST_COFF
@@ -151,7 +151,7 @@
 
 	for (i = 0; i < nesyms; i++) {
 		char *symtabname;
-		char *nlistname;
+		const char *nlistname;
 		struct coff_extsym esym;
 		char name[10];
 
@@ -171,7 +171,7 @@
 			continue;
 
 		for (p = list; !ISLAST(p); p++) {
-			nlistname = p->n_un.n_name;
+			nlistname = N_NAME(p);
 			if (!strcmp(symtabname, nlistname)) {
 				/*
 				 * Translate (roughly) from COFF to nlist

Index: src/lib/libc/gen/nlist_ecoff.c
diff -u src/lib/libc/gen/nlist_ecoff.c:1.17 src/lib/libc/gen/nlist_ecoff.c:1.18
--- src/lib/libc/gen/nlist_ecoff.c:1.17	Mon Feb 16 10:40:45 2009
+++ src/lib/libc/gen/nlist_ecoff.c	Fri Aug 21 08:42:02 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: nlist_ecoff.c,v 1.17 2009/02/16 10:40:45 lukem Exp $ */
+/* $NetBSD: nlist_ecoff.c,v 1.18 2009/08/21 08:42:02 he Exp $ */
 
 /*
  * Copyright (c) 1996 Christopher G. Demetriou
@@ -36,7 +36,7 @@
 
 #include <sys/cdefs.h>
 #if defined(LIBC_SCCS) && !defined(lint)
-__RCSID("$NetBSD: nlist_ecoff.c,v 1.17 2009/02/16 10:40:45 lukem Exp $");
+__RCSID("$NetBSD: nlist_ecoff.c,v 1.18 2009/08/21 08:42:02 he Exp $");
 #endif /* LIBC_SCCS and not lint */
 
 #include "namespace.h"
@@ -50,7 +50,7 @@
 #include <stdio.h>
 #include <string.h>
 #include <unistd.h>
-#include <a.out.h>			/* for 'struct nlist' declaration */
+#include <nlist.h>
 
 #include "nlist_private.h"
 #ifdef NLIST_ECOFF
@@ -151,11 +151,11 @@
 
 	for (i = 0; i < nesyms; i++) {
 		for (p = list; !ISLAST(p); p++) {
-			char *nlistname;
+			const char *nlistname;
 			char *symtabname;
 
 			/* This may be incorrect */
-			nlistname = p->n_un.n_name;
+			nlistname = N_NAME(p);
 			if (*nlistname == '_')
 				nlistname++;
 

Index: src/lib/libc/gen/nlist_elf32.c
diff -u src/lib/libc/gen/nlist_elf32.c:1.30 src/lib/libc/gen/nlist_elf32.c:1.31
--- src/lib/libc/gen/nlist_elf32.c:1.30	Mon Feb 16 10:40:45 2009
+++ src/lib/libc/gen/nlist_elf32.c	Fri Aug 21 08:42:02 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: nlist_elf32.c,v 1.30 2009/02/16 10:40:45 lukem Exp $ */
+/* $NetBSD: nlist_elf32.c,v 1.31 2009/08/21 08:42:02 he Exp $ */
 
 /*
  * Copyright (c) 1996 Christopher G. Demetriou
@@ -36,7 +36,7 @@
 
 #include <sys/cdefs.h>
 #if defined(LIBC_SCCS) && !defined(lint)
-__RCSID("$NetBSD: nlist_elf32.c,v 1.30 2009/02/16 10:40:45 lukem Exp $");
+__RCSID("$NetBSD: nlist_elf32.c,v 1.31 2009/08/21 08:42:02 he Exp $");
 #endif /* LIBC_SCCS and not lint */
 
 /* If not included by nlist_elf64.c, ELFSIZE won't be defined. */
@@ -57,7 +57,7 @@
 #include <stdio.h>
 #include <string.h>
 #include <unistd.h>
-#include <a.out.h>			/* for 'struct nlist' declaration */
+#include <nlist.h>
 
 #include "nlist_private.h"
 #if defined(NLIST_ELF32) || defined(NLIST_ELF64)
@@ -150,7 +150,7 @@
 
 			p->n_other = 0;
 			p->n_desc = 0;
-			nlistname = p->n_un.n_name;
+			nlistname = N_NAME(p);
 			if (*nlistname == '_')
 				nlistname++;
 
@@ -258,7 +258,7 @@
 			char *symtabname;
 
 			/* This may be incorrect */
-			nlistname = p->n_un.n_name;
+			nlistname = N_NAME(p);
 			if (*nlistname == '_')
 				nlistname++;
 

Index: src/lib/libc/gen/nlist_private.h
diff -u src/lib/libc/gen/nlist_private.h:1.18 src/lib/libc/gen/nlist_private.h:1.19
--- src/lib/libc/gen/nlist_private.h:1.18	Sun Aug 16 03:56:26 2009
+++ src/lib/libc/gen/nlist_private.h	Fri Aug 21 08:42:02 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: nlist_private.h,v 1.18 2009/08/16 03:56:26 matt Exp $ */
+/* $NetBSD: nlist_private.h,v 1.19 2009/08/21 08:42:02 he Exp $ */
 
 /*
  * Copyright (c) 1996 Christopher G. Demetriou
@@ -66,7 +66,9 @@
 /* #define	NLIST_ELF64 */
 #endif
 
-#define	ISLAST(p)	(p->n_un.n_name == 0 || p->n_un.n_name[0] == 0)
+#define	ISLAST(p)	(N_NAME(p) == 0 || N_NAME(p)[0] == 0)
+
+struct nlist;
 
 #ifdef NLIST_AOUT
 int	__fdnlist_aout __P((int, struct nlist *));

Reply via email to