[Linux-ha-dev] gcc: an observation

Andrew Beekhof beekhof at gmail.com
Fri Feb 16 09:41:19 MST 2007


On 2/16/07, David Lee <t.d.lee at durham.ac.uk> wrote:
> This is really just an observation, not (necessarily) a request for
> fixing a problem.  (Although if someone could say "yes, that's trivially
> fixable by doing XYZ", that would be nice.)
>
> Some of our systems share an old gcc compiler, version 2.95.2, on which
> heartbeat has always built successfully until recently.  At some point in
> the last six months or so, something has changed to stop this.  The code
> in question is "include/crm/crm.h", around line 225:
>    #define crm_err(fmt, args...)     do_crm_log(LOG_ERR,     fmt, ##args)
>
> (and similar lines) which now expand incorrectly, leaving a trailing ","
> in that old version of gcc.
>
> On various other systems, I have tried v 3.4.5, 4.0.2, 4.1.1 and they are
> all OK.  (A web page I found at the GNU site concerning GNU/CPP talked
> about this problem, but didn't mention gcc version numbers.)
>
> So I'm assuming that our "include/crm/crm.h" is now using a feature only
> found in (presumably) v3.x and above.
>
> If someone can confirm this, and if we decide to leave it this way (which
> I suppose would be fair enough), then it might be nice if "configure"
> could do an early check on the version of gcc that it finds, and then
> stops if the version number is too early.

i'd vote to check for >=3.0 (or whatever version allows that #define to work)

its faster and avoids a lot of va_args messiness


More information about the Linux-HA-Dev mailing list