On Wed, Dec 02, 2009 at 03:45:24PM +0100, Rainer Gerhards wrote: > Well, we could use a single 32 bit value without much problem, but the gcc > doc claims gcc will replace the call with a helper function (Using a mutex, > it can be implemented on any platform). > > rainer
Yes, it does put a call to a function __sync_fetch_and_add_8() stub which is why the link fails. It just seemed that it would be easier to use the 4 byte counter and have one method that would work across 32-bit and 64-bit systems, instead of needing to support the missing function which could be implemented using the same call with a 4 byte value. It would also simplify code maintenance. Regards, Ken > > ----- Urspr??ngliche Nachricht ----- > Von: "Kenneth Marshall" <[email protected]> > An: "[email protected]" <[email protected]> > Gesendet: 02.12.09 15:22 > Betreff: [rsyslog] omfile does not compile on 32-bit platforms in 5.3.5 > > Hi Rainier, > > The version of omfile.c does not compile/run on 32-bit > systems anymore. Here is the problem function: > > static uint64 clockFileAccess = 0; > /* and the "tick" function */ > static inline uint64 > getClockFileAccess(void) > { > return ATOMIC_INC_AND_FETCH(clockFileAccess); > } > > You cannot perform an atomic operation on an 8 byte value > on a 32-bit system. Would it be possible to use the atomic > operations on two 4 byte values to allow this code to work > on 32-bit systems as well? > > Regards, > Ken > _______________________________________________ > rsyslog mailing list > http://lists.adiscon.net/mailman/listinfo/rsyslog > http://www.rsyslog.com > _______________________________________________ > rsyslog mailing list > http://lists.adiscon.net/mailman/listinfo/rsyslog > http://www.rsyslog.com _______________________________________________ rsyslog mailing list http://lists.adiscon.net/mailman/listinfo/rsyslog http://www.rsyslog.com

