Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com X-Authentication-Warning: slinky.cs.nyu.edu: pechtcha owned process doing -bs Date: Wed, 7 May 2003 21:40:57 -0400 (EDT) From: Igor Pechtchanski Reply-To: cygwin AT cygwin DOT com To: Charles Wilson cc: Jason Tishler , Subject: Re: cygipc (and PostgreSQL) XP problem resolved! In-Reply-To: <3EB9A54B.8060500@ece.gatech.edu> Message-ID: Importance: Normal MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII On Wed, 7 May 2003, Charles Wilson wrote: > Jason Tishler wrote: > > > +#define NAMESPACE_PREFIX "Global\\" > > +#define FULL_NAMESPACE_PATH(name) \ > > + ((LOBYTE(LOWORD(GetVersion())) >= 5 && \ > > + HIBYTE(LOWORD(GetVersion())) >= 1) ? NAMESPACE_PREFIX name : name) \ > > + > > +#define CYGWIN_IPCNT_SEMCTL FULL_NAMESPACE_PATH(CYGWIN_IPCNT_SEMCTL_BASE) > > +#define CYGWIN_IPCNT_SEMSEM FULL_NAMESPACE_PATH(CYGWIN_IPCNT_SEMSEM_BASE) > > +#define CYGWIN_IPCNT_SEMSHM FULL_NAMESPACE_PATH(CYGWIN_IPCNT_SEMSHM_BASE) > > +#define CYGWIN_IPCNT_SEMMSG FULL_NAMESPACE_PATH(CYGWIN_IPCNT_SEMMSG_BASE) > > Wait, aren't #define macros resolved at compile time? This would then > define these names as "foo" or "Global\\foo" depending on which machine > the package was BUILT on. > > Worse, if the cygipc library itself were built on WinXP, but you build a > client app on W98 -- then your code thinks "foo" but the daemon things > "Global\\foo". Or vice versa. > > I think this needs to be a runtime function, not a compiletime macro. > --Chuck Umm, Chuck, GetVersion() is a run-time function... For example, the CYGWIN_IPCNT_SEMCTL macro will resolve to : ((LOBYTE(LOWORD(GetVersion())) >= 5 && HIBYTE(LOWORD(GetVersion())) >= 1) ? "Global\\" "MultiSemCtl2_" : "MultiSemCtl2_") which will be evaluated at run-time (the two strings between '?' and ':' will be concatenated at compile-time, though). Igor -- http://cs.nyu.edu/~pechtcha/ |\ _,,,---,,_ pechtcha AT cs DOT nyu DOT edu ZZZzz /,`.-'`' -. ;-;;,_ igor AT watson DOT ibm DOT com |,4- ) )-,_. ,\ ( `'-' Igor Pechtchanski '---''(_/--' `-'\_) fL a.k.a JaguaR-R-R-r-r-r-.-.-. Meow! Knowledge is an unending adventure at the edge of uncertainty. -- Leto II -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/