[rrd-developers] make 1.3 trunk build on OS/X

D. Walsh info at daleenterprise.com
Sat Sep 1 08:50:33 CEST 2007

Hash: SHA1

On Sep 1, 2007, at 01:07:56, Ian Holsman wrote:

> Hi Tobi + friends,
> I just pulled the latest trunk onto my macbook pro (Darwin Aeaea.local
> 8.10.3 Darwin Kernel Version 8.10.3: Wed Jun 27 23:29:36 PDT 2007;
> root:xnu-792.23.3~1/RELEASE_I386 i386 i386)
> and I ran into several issues with the code.
> 1. compile issue in rrd_getopt
> Index: src/rrd_getopt.c
> ===================================================================
> --- src/rrd_getopt.c    (revision 1194)
> +++ src/rrd_getopt.c    (working copy)
> @@ -190,7 +190,7 @@
>     of the value of `ordering'.  In the case of RETURN_IN_ORDER, only
>     `--' can cause `getopt' to return -1 with `optind' != ARGC.  */
> -static const enum {
> +static /*const*/ enum {
>  } ordering;

This should not be required.

> 2. the madvise call wasn't being properly detected. it should have put
> #undef _POSIX_C_SOURCE
> in rrd_config.h, as madvise and mincore are only defined if the
> following is true
> #ifndef _POSIX_C_SOURCE
> int     madvise(void *, size_t, int);
> int     mincore(const void *, size_t, char *);
> int     minherit(void *, size_t, int);
> #endif

I suspect that a dependancy you already configured/installed defines  
POSIX_C_SOURCE cause in an un-altered build my header has "/* #undef  

I do a few other things in the environment to get the optimum build  
and build everything in 10.4.0 as universal (dual architecture) with  
a little "-D" magic to compensate for the endian and a couple of  
other defined value differences.

> I couldn't get it to build properly until I put the #includes in
> rrd_open.c directly

I didn't have to do this but the trunk might contain a faulty update.

I also build as a framework to resolve linking issues because of the  
runtime paths and the "-twolevel_namespace" issues, it should really  
be using the non-pic objects and "-flat_namespace -undefined  
dynamic_lookup" as well as "-bind_at_load" linker flags due to the  
compound library dependancies but not essential if you're never going  
to link anything (third party code) against the libraries.

> 3. fdatasync is not defined

This is a recent CVS introduction and was more than likely just an  
omission mistake, you can add it to the header file and it will be  

> regards
> Ian

- -- Dale

Version: GnuPG v1.4.2.2 (Darwin)


More information about the rrd-developers mailing list