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>
