Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 5 Jan 2005 16:22:26 +0800
From:      Xin LI <delphij@frontfree.net>
To:        freebsd-arch@FreeBSD.org
Subject:   RFC: Two fields in kld_sym_lookup and nlist structures
Message-ID:  <20050105082226.GA1899@frontfree.net>

next in thread | raw e-mail | index | archive | help

--BOKacYhQ+x31HxR3
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

Dear folks,

While I was traversing our source tree, I found that kld_sym_lookup's
symname and nlist's n_name are defined as char *.  On the other hand,
it seems that the usual usage of them looks like:

	nlist[0].n_name =3D "foo";

Which generates warnings on higher warning levels, since "foo" is a
string constatnt, and n_name is supposed to be a variable char *.

Can we change these fields into const char *?  A preliminary patch
looks like:

Index: sys/sys/linker.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /home/ncvs/src/sys/sys/linker.h,v
retrieving revision 1.39
diff -u -r1.39 linker.h
--- sys/sys/linker.h	27 Aug 2004 01:10:16 -0000	1.39
+++ sys/sys/linker.h	5 Jan 2005 07:46:03 -0000
@@ -270,7 +270,7 @@
=20
 struct kld_sym_lookup {
     int		version;	/* set to sizeof(struct kld_sym_lookup) */
-    char	*symname;	/* Symbol name we are looking up */
+    const char	*symname;	/* Symbol name we are looking up */
     u_long	symvalue;
     size_t	symsize;
 };
Index: sys/sys/nlist_aout.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /home/ncvs/src/sys/sys/nlist_aout.h,v
retrieving revision 1.11
diff -u -r1.11 nlist_aout.h
--- sys/sys/nlist_aout.h	7 Apr 2004 04:19:49 -0000	1.11
+++ sys/sys/nlist_aout.h	5 Jan 2005 07:56:06 -0000
@@ -51,11 +51,11 @@
 struct nlist {
 #ifdef _AOUT_INCLUDE_
 	union {
-		char *n_name;	/* symbol name (in memory) */
+		const char *n_name;	/* symbol name (in memory) */
 		long n_strx;	/* file string table offset (on disk) */
 	} n_un;
 #else
-	char *n_name;		/* symbol name (in memory) */
+	const char *n_name;		/* symbol name (in memory) */
 	int : 8 * (sizeof(long) > sizeof(char *) ?
 	    sizeof(long) - sizeof(char *) : sizeof(char *) - sizeof(long));
 #endif


Cheers,
--=20
Xin LI <delphij frontfree net>	http://www.delphij.net/
See complete headers for GPG key and other information.


--BOKacYhQ+x31HxR3
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.6 (FreeBSD)

iD8DBQFB26PC/cVsHxFZiIoRAjjVAJ0SZ4sE66b/NX9yAMwa05Ej2pOwTQCgiOh5
kfSW0HMfC2VtAQI2+oYJI+I=
=VPsU
-----END PGP SIGNATURE-----

--BOKacYhQ+x31HxR3--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20050105082226.GA1899>