[rrd-users] rrdtool 1.4.4 Win32 compile -- "getopt" conditional directives lost

jkane at mail.com jkane at mail.com
Tue Aug 3 18:53:52 CEST 2010



 

 Tobi,

First off, thanks for 1.4.4.  For A Win32 user, this has really made compile much easier with MSVC2008.  I'm not sure if anyone has tried the WIN32 compile yet here, but I have found some issues.

It looks like rrd_getopt.h, rrd_getopt1.c, and rrd_getopt.c have some changes that may have inadvertently (bug?) lost the WIN32 compiler directives for the get_opt_long and _get_opt_internal function calls.

MSVC2008 was giving compile errors on rrd_getopt1.c with the argv handling in the above functions in 1.4.4.   WIN32 versions of these function are much different in their argument definitions).

I went back to my last known win32 compile of rddtool (1.3.8) and noticed that many #ifdef WIN32 sections were not present in 1.4.4 versions of rrd_getopt.h, rrd_getopt1.c, and rrd_getopt.c.

As an example:

Definition of getopt_long from rrd_getopt1.c (rrd source version 1.3.8)

#ifdef WIN32
int getopt_long(int argc,
                char** argv,
                const char* options,
                const struct option* long_options,
                int* opt_index)
#else // WIN32
int getopt_long(
    argc,
    argv,
    options,
    long_options,
    opt_index)
    int argc;
    char     *const *argv;
    const char *options;
    const struct option *long_options;
    int      *opt_index;
#endif // WIN32
{
    return _getopt_internal(argc, argv, options, long_options, opt_index, 0);
}


Compare with definition of getopt_long from rrd_getopt1.c (rrd source version 1.4.4).
(this function will throw errors on WIN32 compile with regards to the argv casting)

int getopt_long(int argc,
                char* const* argv,
                const char* options,
                const struct option* long_options,
                int* opt_index)
{
    return _getopt_internal(argc, argv, options, long_options, opt_index, 0);
}


After doing some diffs and merging the missing Win32 conditional compile directives back in for these files, I got 1.4.4 to compile.  My work was hack and slash and I'm not yet familiar enough with your diff and repository tools to attempt a clean submission, but maybe  you can see this problem from your view/compare.









 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.oetiker.ch/pipermail/rrd-users/attachments/20100803/fb33f35b/attachment.htm 


More information about the rrd-users mailing list