[rrd-developers] [PATCH] rrdtool 1.0.50 build on Ubuntu Breezy Badger

Blair Zajac blair at orcaware.com
Mon Nov 28 08:29:56 MET 2005


Hello,

I'm still supporting rrdtool 1.0.50 on Ubuntu Breezy Badger with gcc 4.0.2 for 
my Orca data graphing package and needed the below patch to get it to compile. 
I'm sending this here for future reference in case anybody has trouble compiling 
it.  Without the patch, I received these compile errors.

     $ cc -c -I.. -I../src -I../gd1.3 -D_REENTRANT -D_GNU_SOURCE
     -DTHREADS_HAVE_PIDS -DDEBIAN -fno-strict-aliasing -pipe
     -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
     -DHAVE_CONFIG_H -O2 -DVERSION=\"1.000503\"
     -DXS_VERSION=\"1.000503\" -fPIC "-I/usr/lib/perl/5.8/CORE"
     -DPERLPATCHLEVEL=8 RRDs.c
     In file included from ../src/rrd_tool.h:25,
                      from RRDs.xs:13:
     ../src/config_aux.h:8:1: warning: "strchr" redefined
     In file included from /usr/include/string.h:417,
                      from /usr/lib/perl/5.8/CORE/perl.h:731,
                      from RRDs.xs:6:
     /usr/include/bits/string2.h:396:1: warning: this is the location
     of the previous definition
     In file included from ../src/rrd_tool.h:25,
                      from RRDs.xs:13:
     ../src/config_aux.h:80:2: error: #error "Can't compile without
     finite function"
     ../src/config_aux.h:84:2: error: #error "Can't compile without
     isinf function"


Here's the patch:

--- packages/rrdtool-1.0.50/perl-shared/RRDs.xs (revision 514)
+++ packages/rrdtool-1.0.50/perl-shared/RRDs.xs (revision 515)
@@ -10,8 +10,28 @@
  }
  #endif

+/*
+ * rrd_tool.h includes config.h, but at least on Ubuntu Breezy Badger
+ * 5.10 with gcc 4.0.2, the C preprocessor picks up Perl's config.h
+ * which is included from the Perl includes and never reads rrdtool's
+ * config.h.  Without including rrdtool's config.h, this module does
+ * not compile, so include it here with an explicit path.
+ *
+ * Because rrdtool's config.h redefines VERSION which is originally
+ * set via Perl's Makefile.PL and passed down to the C compiler's
+ * command line, save the original value and reset it after the
+ * includes.
+ */
+#define VERSION_SAVED VERSION
+#undef VERSION
+
+#include "../config.h"
  #include "../src/rrd_tool.h"

+#undef VERSION
+#define VERSION VERSION_SAVED
+#undef VERSION_SAVED
+
  /* perl 5.004 compatibility */
  #if PERLPATCHLEVEL < 5
  #define PL_sv_undef sv_undef


Regards,
Blair

-- 
Blair Zajac, Ph.D.
<blair at orcaware.com>
Subversion and Orca training and consulting
http://www.orcaware.com/svn/

--
Unsubscribe mailto:rrd-developers-request at list.ee.ethz.ch?subject=unsubscribe
Help        mailto:rrd-developers-request at list.ee.ethz.ch?subject=help
Archive     http://lists.ee.ethz.ch/rrd-developers
WebAdmin    http://lists.ee.ethz.ch/lsg2.cgi



More information about the rrd-developers mailing list