Skip site navigation (1)Skip section navigation (2)
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>