Date: Thu, 23 Jan 2003 14:50:28 -0700 From: Ben Mesander <ben@timing.com> To: Warner Losh <imp@harmony.village.org> Cc: Daniel Eischen <eischen@pcnet1.pcnet.com>, ben@timing.com, freebsd-arch@FreeBSD.ORG Subject: Re: _REENTRANT in math.h & libm oddities. Message-ID: <15920.25508.766136.494182@piglet.timing.com> In-Reply-To: <200301232122.h0NLM31e003077@harmony.village.org> References: <Pine.GSO.4.10.10301231601440.12720-100000@pcnet1.pcnet.com> <200301232122.h0NLM31e003077@harmony.village.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Warner Losh writes: > In message <Pine.GSO.4.10.10301231601440.12720-100000@pcnet1.pcnet.com> Daniel Eischen writes: > : The gcc manpage is wrong. It should state _REENTRANT instead of > : _THREAD_SAFE. POSIX specifies that _REENTRANT be defined to get > : these functions. I know that we always provide implementations > : of most of these _r functions so it might not make sense to > : #ifdef them in the header files, but I don't know that always > : making them visible would be against the spec or cause namespace > : pollution. > > Then FreeBSD's source tree is basically wrong, since it uses > _THREAD_SAFE for this in many places. But most of them appear to be > just defining the macro for compiles and such. There's a little bit > in libc's stdio still, but that's the only significant place that uses > it in the tree. I'm not sure about out-of-tree software. Lots of things for various UNIX flavors seem to use _REENTRANT (see contrib & ports for examples). But even so, I disagree that the _r function definitions should only appear in math.h if _REENTRANT is defined. That is, I disagree unless the POSIX specification says otherwise; I've been surprised by it before. I was unaware that POSIX mentioned _REENTRANT. You can call _r functions even if you are not a threaded application. Other _r functions in libc, etc. can be called even if you are not threaded; I don't see why the gamma functions in the math library would be different. Regards, Ben To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?15920.25508.766136.494182>