Date: Tue, 3 Jul 2001 19:29:07 +1000 (EST) From: Bruce Evans <bde@zeta.org.au> To: Peter Jeremy <peter.jeremy@alcatel.com.au> Cc: Giorgos Keramidas <keramida@ceid.upatras.gr>, current@FreeBSD.ORG Subject: Re: funny strlen defines in sys/alpha/alpha/alpha-gdbstub.c Message-ID: <Pine.BSF.4.21.0107031918270.39588-100000@besplex.bde.org> In-Reply-To: <20010703090423.V506@gsmx07.alcatel.com.au>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, 3 Jul 2001, Peter Jeremy wrote: > On 2001-Jul-02 11:34:25 +0300, Giorgos Keramidas <keramida@ceid.upatras.gr> wrote: > > 130 #define strlen gdb_strlen > > 131 #define strcpy gdb_strcpy > > > >Is it really necessary to do this funny thing with the #defines? I > >mean, why not replace the calls with gdb_XXX() ourselves and be done > >with it? Sort of. ${MACHINE_ARCH}-gdbstub.c is sort of contrib'ed code, so we should wait for the vendor to fix this. > Alternatively, given the XXX comment, why not delete the local copies > of str{cpy,len}() and just usr the library versions? The original > reason appears to be to avoid the possibility that str{cpy,len}() are > not re-entrant. The FreeBSD ones _are_ re-entrant and it doesn't seem > likely that we will re-write them not to be re-entrant. The XXX comment applies to the code without the defines. It was removed in the i386 version when these defines were added in rev.1.12. See the comment for some of the other reasons why naming the private versions the same as the extern versions is bad. Yet another reason: strlen() and strcpy() are now normally gcc builtins, so the extern versions are rarely actually used, but you have know too much about how the gcc builtins are implemented to be sure that they are safe to use here. Bruce To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.0107031918270.39588-100000>