On Fri, 16 Feb 2007, Lars Ellenberg wrote: > / 2007-02-16 16:00:03 +0000 > \ David Lee: > > 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. > > iirc, this could be fixed by an extra space... > #define crm_err(fmt, args...) do_crm_log(LOG_ERR, fmt , ##args) > ^^^ > so the comma is not the last "token" but the last "word" before the ## > i may be wrong, though...
Hey, Lars, ... excellent! I had spotted that possibility on a GNU webpage yesterday. I had tried it and it seemed not work on the gcc version that I had. (The webpage hadn't mentioned version numbers, so I attributed the failure to my old version.) But when your email came through, I checked again, and realised that my earlier test had only applied that ' , ' trick to one set of macros, not to both parts of the nested pair. So I tried it again, and it seems to work. My test builds on a variety of gcc versions on a variety of Redhat (FC) and Solaris seem all OK. I've just applied a fix to the Hg 'dev' repository. Many thanks. -- : David Lee I.T. Service : : Senior Systems Programmer Computer Centre : : UNIX Team Leader Durham University : : South Road : : http://www.dur.ac.uk/t.d.lee/ Durham DH1 3LE : : Phone: +44 191 334 2752 U.K. : _______________________________________________________ Linux-HA-Dev: [email protected] http://lists.linux-ha.org/mailman/listinfo/linux-ha-dev Home Page: http://linux-ha.org/
