[collectd] Problems under FreeBSD

Oleg King king2 at kaluga.ru
Fri Mar 28 19:05:46 CET 2008

Hello all! (and sorry for my english)

I have tried to build collectd undere FreeBSD and met some problems:

1. configure did not detected rrdtools and libstatgrab, so I have to
use --with-rrdtool=/usr/local --with-libstatgrab=/usr/local. Almost
all libs under FreeBSD (and, surely, rrdtool and libstatgrab) are
installed under /usr/local by default. May be, we need to change
some defaults for FreeBSD?

2. Even with additional parameter configure did not found libstatgrab
with following in config.log:
/usr/local/lib/libstatgrab.so: undefined reference to `devstat_selectdevs',
/usr/local/lib/libstatgrab.so: undefined reference to `devstat_getdevs'

This is because -ldevstat needed for libgrabstat (at least on my
FreeBSd 6.1 - 7.0 systems). So I solved this problem by adding
-ldevstat to LIBS, but i'm not sure that it is right way :)

3. configure was not found devstat library working because of probing
getdevs function while such function called devsat_getdevs at least
in FreeBSD 6.2-release and 7.0-release. after patching it was
detected by configure and was succesfully compiled.

All tests was made on this system:
FreeBSD profiler5.f7 7.0-RELEASE FreeBSD 7.0-RELEASE #0: Sun Feb 24 19:59:52 UTC 2008 root at logan.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC  i386

libraries was installed with portinstall:
portinstall rrdtool (rrdtool-1.2.26)
portinstall libstatgrab (libstatgrab-0.15)

Sources was obtained with git.

Dry clean patch follows (i merged both changes into one patch because
this is one problem with libdevstat):

diff -pur collectd/configure.in collectd.patched/configure.in
--- collectd/configure.in             2008-03-28 20:44:21.000000000 +0300
+++ collectd.patched/configure.in     2008-03-28 20:35:11.000000000 +0300
@@ -1048,6 +1048,7 @@ AC_ARG_WITH(libstatgrab, [AS_HELP_STRING
                LDFLAGS="$LDFLAGS -L$withval/lib"
                CPPFLAGS="$CPPFLAGS -I$withval/include"
+               LIBS="$LIBS -ldevstat"
@@ -1071,7 +1072,7 @@ then
 if test "x$with_libstatgrab" = "xyes"
-       AC_CHECK_LIB(devstat, getdevs, [with_libdevstat="yes"], [with_libdevstat="no"])
+       AC_CHECK_LIB(devstat, devstat_getdevs, [with_libdevstat="yes"], [with_libdevstat="no"])
 if test "x$with_libstatgrab" = "xyes"

That's all for now :)

С уважением,
 Oleg                          mailto:king2 at kaluga.ru

More information about the collectd mailing list