[collectd] Compiling collectd-4.6.2 / collectd-git-repo on Solaris 10 Update 6

Doug MacEachern doug.maceachern at hyperic.com
Wed May 13 17:55:23 CEST 2009


Hi Peter,

Can you give the recent 4.7.0 release a try?  I believe the recent  
solaris related changes were also merged to the  collectd-4.6 branch.

On May 10, 2009, at 3:30 AM, Peter Bray wrote:

>
> Greetings,
>
>  I have been trying to compile collectd-4.6.2 on Solaris 10 Update 6  
> (also known as Solaris 10 10/2008) on both SPARC and x86 (AMD64),  
> with both gcc-4.1.2 and Sun Studio 12. I received the following  
> #error from the compilation process:
>
> #error "Compiler or options invalid; UNIX 03 and POSIX.1-2001  
> applications   require the use of c99"
>
>  A full example is included at the end of this email. The Sun Studio  
> 12 compiler generates the same error but of course from /usr/include/ 
> sys/feature_tests.h (c.f. its GCC counterpart listed below)
>
>  In 4.6.2, this error occurs for src/libcollectdclient/client.c, src/ 
> bind.c, src/target_notification.c, src/target_replace.c, src/ 
> target_set.c, src/collectd-nagios.c, src/collectd-nagios.c, src/ 
> filter_chain.c, src/meta_data.c while in the current git-repo the  
> error only occurs in src/bind.c. Because one error is easier to fix  
> then many and with the pending release of a new version, I looked  
> into the git-repo build issue with src/bind.c.
>
>  Looking src/bind.c and the error I decided to comment out:
>
>  #define _XOPEN_SOURCE 600 /* glibc2 needs this for strptime */
>
>  The build (from git-repo) now works fine and the collectd seem  
> functional (full configuration and testing pending). Looking again  
> at 4.6.2 again, the list of files that don't compile and those  
> contain _XOPEN_SOURCE we have a nearly perfect correspondence:
>
> % find . -type f | xargs grep _XOPEN_SOURCE
> ./src/bind.c:#ifndef _XOPEN_SOURCE
> ./src/bind.c:# define _XOPEN_SOURCE 600
> ./src/target_notification.c:#ifdef _XOPEN_SOURCE
> ./src/target_notification.c:# undef _XOPEN_SOURCE
> ./src/target_notification.c:#define _XOPEN_SOURCE 500
> ./src/target_replace.c:#ifdef _XOPEN_SOURCE
> ./src/target_replace.c:# undef _XOPEN_SOURCE
> ./src/target_replace.c:#define _XOPEN_SOURCE 500
> ./src/target_set.c:#ifdef _XOPEN_SOURCE
> ./src/target_set.c:# undef _XOPEN_SOURCE
> ./src/target_set.c:#define _XOPEN_SOURCE 500
> ./src/filter_chain.c:#ifdef _XOPEN_SOURCE
> ./src/filter_chain.c:# undef _XOPEN_SOURCE
> ./src/filter_chain.c:#define _XOPEN_SOURCE 500
> ./src/meta_data.c:#ifdef _XOPEN_SOURCE
> ./src/meta_data.c:# undef _XOPEN_SOURCE
> ./src/meta_data.c:#define _XOPEN_SOURCE 500
>
>  I would suggest that _XPOEN_SOURCE definition in bind.c be made  
> conditional, but I not sure of the best approach to this issue. It  
> should be noted that this is the last .c file containing a reference  
> to _XOPEN_SOURCE, so maybe the solution used to remove the other  
> instances would be appropriate here.
>
>  I hope this helps others looking at collectd on Solaris.
>
> Regards,
> Peter Bray
> Sydney, Australia
>
> gmake[4]: Entering directory `/tmp/64-bit/collectd-4.6.2/src/ 
> libcollectdclient'
> /bin/bash ../../libtool --tag=CC   --mode=compile gcc - 
> DHAVE_CONFIG_H -I. -I../../src   -D_POSIX_PTHREAD_SEMANTICS -Wall - 
> Werror -g -O2 -c -o client.lo client.c
> gcc -DHAVE_CONFIG_H -I. -I../../src -D_POSIX_PTHREAD_SEMANTICS -Wall  
> -Werror -g -O2 -c client.c  -fPIC -DPIC -o .libs/client.o
> In file included from /usr/include/iso/stdlib_iso.h:30,
>                 from /usr/include/stdlib.h:18,
>                 from client.c:57:
> /pkgs/64-bit/release/gcc-4.1.2/lib/gcc/i386-pc-solaris2.10/4.1.2/ 
> include/sys/feature_tests.h:345:2: error: #error "Compiler or  
> options invalid; UNIX 03 and POSIX.1-2001 applications   require the  
> use of c99"
> gmake[4]: *** [client.lo] Error 1
>
>
>
>
>
> _______________________________________________
> collectd mailing list
> collectd at verplant.org
> http://mailman.verplant.org/listinfo/collectd




More information about the collectd mailing list