diff options
-rw-r--r-- | winsup/cygserver/ChangeLog | 5 | ||||
-rw-r--r-- | winsup/cygserver/sysv_sem.cc | 9 |
2 files changed, 14 insertions, 0 deletions
diff --git a/winsup/cygserver/ChangeLog b/winsup/cygserver/ChangeLog index 225a1ebd0..157b093b2 100644 --- a/winsup/cygserver/ChangeLog +++ b/winsup/cygserver/ChangeLog @@ -1,3 +1,8 @@ +2004-10-18 Corinna Vinschen <corinna@vinschen.de> + + * sysv_sem.cc: Redefine offsetof to circumvent build problems with + gcc 3.4. + 2004-10-04 Corinna Vinschen <corinna@vinschen.de> * bsd_mutex.cc (_msleep): Simplify event creation. Revert change from diff --git a/winsup/cygserver/sysv_sem.cc b/winsup/cygserver/sysv_sem.cc index a4acf37f1..bcd0dc251 100644 --- a/winsup/cygserver/sysv_sem.cc +++ b/winsup/cygserver/sysv_sem.cc @@ -147,6 +147,15 @@ struct sem_undo { #define SEMAEM 16384 /* adjust on exit max value */ #endif +#ifdef __CYGWIN__ +/* gcc 3.4 defines a new offsetof which is different for C++. Since this + file is just a derived plain-C file, we need to revert to the plain-C + definition of offsetof. */ +#ifdef offsetof +#undef offsetof +#endif +#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER) +#endif /* __CYGWIN__ */ /* * Due to the way semaphore memory is allocated, we have to ensure that * SEMUSZ is properly aligned. |