> -----Original Message----- > From: [email protected] [mailto:rsyslog- > [email protected]] On Behalf Of Kenneth Marshall > Sent: Wednesday, December 02, 2009 4:35 PM > To: rsyslog-users > Subject: Re: [rsyslog] omfile does not compile on 32-bit platforms in > 5.3.5 > > On Wed, Dec 02, 2009 at 04:01:57PM +0100, Rainer Gerhards wrote: > > Well, gcc itself should provide the helper - at least this is how I > read the doc. But, well, it looks more appropriate to change the > variable definition for 32 bit systems. I'll add a --enable-32-bit- > atomics-where-possible configure switch. If someone could contribute an > automatic check for 32bit, that would be appreciated. > > > > I would like to retain 64 bits on platforms that support it, because > this is the cleanest solution. > > > > rainer > > > > If you just change the type used in the current check function > to "long long", it will work on 64-bit systems and fail on 32-bit > systems. Then if the existing function with the "long" definition > work, the system supports 32-bit atomics. Or am I missing something?
I missed something ;) Patch is now available in public git: http://git.adiscon.com/?p=rsyslog.git;a=commitdiff;h=113915eb9dfddf5a04f8116b 01b71e591e75f193 Thanks for the hint. Rainer > > Regards, > Ken > > > ----- Urspr??ngliche Nachricht ----- > > Von: "Kenneth Marshall" <[email protected]> > > An: "rsyslog-users" <[email protected]> > > Gesendet: 02.12.09 15:56 > > Betreff: Re: [rsyslog] omfile does not compile on 32-bit platforms in > 5.3.5 > > > > 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 > > _______________________________________________ > > 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

