Date: Thu, 4 Dec 2008 20:42:05 +0100 From: Max Laier <max@love2party.net> To: freebsd-arch@freebsd.org Cc: Florian Smeets <flo@kasimir.com>, d@delphij.net Subject: Re: Adding strndup(3) to libc viable/useful? Message-ID: <200812042042.06181.max@love2party.net> In-Reply-To: <e7db6d980812041127t6109ebbcr8a68822bdd91cc92@mail.gmail.com> References: <49381DD4.2000506@kasimir.com> <49382502.1040403@delphij.net> <e7db6d980812041127t6109ebbcr8a68822bdd91cc92@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thursday 04 December 2008 20:27:01 Peter Wemm wrote: > On Thu, Dec 4, 2008 at 10:44 AM, Xin LI <delphij@delphij.net> wrote: > > -----BEGIN PGP SIGNED MESSAGE----- > > Hash: SHA1 > > > > Hi, Florian, > > > > Florian Smeets wrote: > >> Hi, > >> > >> first of all i hope arch is the correct place to discuss this. > >> > >> While porting an application to FreeBSD i found that FreeBSDs libc does > >> not have strndup. NetBSD added this about 2 years ago. A port of this to > >> FreeBSD was very easy. > >> > >> There are 13 ports in the ports tree right now that patch in strndup via > >> a patch in the files/ dir, well actually 12 bring there own version of > >> strndup and one replaces it with a call to malloc/strncpy. > >> > >> Would it make sense to add this to our libc? A patch which does this is > >> available here at http://webmail.solomo.de/~flo/strndup.patch > >> > >> I don't know if there is such a thing as minimum number of ports to > >> require a function so that it can be added to the base system... > >> > >> Any feedback appreciated. > > > > I think whether or not to add it really depends on how popular it is :) > > We included strdup() because it is a very common extension. > > > > Your patch looks fine but perhaps it would be a good idea to explicitly > > mention that this is not a commonly implemented GNU extension > > (inheritedly, this could reduce portability). > > glibc has had this for a long time and the trend for this function > seems to be gaining ground. I think solaris is the last remaining > major holdout. > > str*() namespace belongs to the implementation (us). > > There are lots of places where I've seen strndup() implemented as > compatability shims. Everything from Asterisk to Varnish. I wouldn't > be suprised if there were ports that had this knowledge hard coded. > > FWIW, there are a bunch of other useful utility str*() and mem*() > functions that glibc has that we do not. strnvis! (from OpenBSD) > I've run into the lack of fmemopen() in the past. I found an > implementation from rwatson. -- /"\ Best regards, | mlaier@freebsd.org \ / Max Laier | ICQ #67774661 X http://pf4freebsd.love2party.net/ | mlaier@EFnet / \ ASCII Ribbon Campaign | Against HTML Mail and News
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200812042042.06181.max>