Hi Rainer, But in release mode, NDEBUG is intentionally defined in the config.h. This is what I recalled from looking at 3.16.1 and 3.17.5. So from the perspective of rsyslog, NDEBUG is defined and the opposite for the test-parse.c (because config.h is not included).
Scott On Fri, Jul 4, 2008 at 3:32 AM, Rainer Gerhards <[EMAIL PROTECTED]> wrote: > Hi Scott, > > thanks for the help, I'll further investigate. BUT: both the runtime AND > the tool are compiled in non-debug mode. So in this case, neither of > them should have the object cookie, thus the alignment should be the > same. But, as I said, I am grateful for any clue and will check if there > is some issue along these lines :) In any case, it seems to be > inconsistent and should be fixed :) > > Rainer > >> -----Original Message----- >> From: [EMAIL PROTECTED] [mailto:rsyslog- >> [EMAIL PROTECTED] On Behalf Of Scott Phuong >> Sent: Friday, July 04, 2008 12:29 PM >> To: rsyslog-users >> Subject: Re: [rsyslog] struct alignment problem - who can help? ;) >> >> Here is my analysis: >> In ctok_teken_t, there is a BEGINobjInstance. BEGINobjInstance is a >> #define and is defined to obj_t objData which is the same for both >> NDEBUG defined and not defined. But obj_t is a typedef of struct >> obj_s. In the structure definition for obj_s in obj-types.h are the >> following lines: >> #ifndef NDEBUG >> unsigned int iObjCooCKiE; >> #endif >> >> NDEBUG is defined in config.h which was included in the runtime for >> rsyslog but not for test-parse.c >> >> I didn't compile the code to test my theory. I just did a quick check. >> >> Hope that solved your problem. >> >> Scott >> >> >> I think this may be why the you are getting this structure >> misalignment? >> >> >> On Fri, Jul 4, 2008 at 2:24 AM, Rainer Gerhards >> <[EMAIL PROTECTED]> wrote: >> > Hi list, >> > >> > I am posting a question here in the hope that some of the > subscribers >> > may be able to lend me a helping hand. >> > >> > Recently, I have begun to add a testbench to rsyslog. The idea is >> that >> > over time the project should have canned tests which are easy to run >> on >> > each version (as part of make distcheck at latest), increasing the >> > overall code quality. >> > >> > "All" (so far two ;)) tests are located in the tests subdirectory. >> One >> > test fails if compiled in release mode, that is rscript-parse.c. I >> have >> > tracked down the failure cause and it is different struct member >> > alignment in the ctok_token_t structure. The alignment is different >> in >> > the rsyslog runtime and this test tool (I have compared the offsets >> > computed for pToken->tok and they are different). So far, so good. >> But I >> > do not find the cause of this misalignment. I checked the make >> output, >> > and as it looks both the runtime as well as the tool are compiled >> with >> > the same compiler options. Also, in debug mode it works OK, but in >> > release mode (--disable-debug) it fails. >> > >> > I am sure the problem is something quite simple, but I have run out >> of >> > ideas of what it may be (or, more probable, I simply overlook >> > something). >> > >> > Any help would be deeply appreciated. >> > >> > Thanks, >> > Rainer >> > _______________________________________________ >> > rsyslog mailing list >> > http://lists.adiscon.net/mailman/listinfo/rsyslog >> > >> _______________________________________________ >> rsyslog mailing list >> http://lists.adiscon.net/mailman/listinfo/rsyslog > _______________________________________________ > rsyslog mailing list > http://lists.adiscon.net/mailman/listinfo/rsyslog > _______________________________________________ rsyslog mailing list http://lists.adiscon.net/mailman/listinfo/rsyslog

