This is the mail archive of the
mailing list for the Cygwin project.
Re: cygipc (and PostgreSQL) XP problem resolved!
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.
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html