Re: Unixware Patch (Was: Re: Beta2 Tag'd and Bundled ...)
Bruce Momjian <pgman@candle.pha.pa.us>
From: Bruce Momjian <pgman@candle.pha.pa.us>
To: Larry Rosenman <ler@lerctr.org>
Cc: "Marc G. Fournier" <scrappy@hub.org>, Peter Eisentraut <peter_e@gmx.net>, Tom Lane <tgl@sss.pgh.pa.us>, "Marc G. Fournier" <scrappy@postgresql.org>, pgsql-hackers@postgresql.org
Date: 2003-08-30T04:17:41Z
Lists: pgsql-hackers
Larry Rosenman wrote: > > > --On Saturday, August 30, 2003 01:09:54 -0300 "Marc G. Fournier" > <scrappy@hub.org> wrote: > > > > > > 'K, but why the change to NEEDS_REENTRANT_FUNC_NAMES in the first place? > > > > The thing that has me most confused here is that the end result is the > > same with or without the patch, from what I can tell ... the right side of > > the && will always resolve to TRUE, before or after the patch ... no? > I want to conditionalize ONLY getpwuid_r, and not strerror_r and > gethostbyname_r. > > So, I changed the NEED_REENTRANT_FUNC_NAMES to no, or undefined in the > template, and need a configure check to set HAVE_GETPWUID_R, so we will > use getpwuid_r in the ENABLE_THREADS case. > > UnixWare does NOT have strerror_r nor does it have gethostbyname_r, and the > libc versions are reentrant in libc, for those 2. We need to use > getpwuid_r for > threaded apps. > > Does this clarify things? Yes, and that is the complex part because _some_ non-*_r functions are thread-safe, and some are not. I have to determine if we have other such platforms before I figure out how to fix it in the cleanest way. In most platforms that are like this, I think, they have all the *_r functions even if all of them are not required. -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 359-1001 + If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania 19073