Thank you Nada O'Neal wrote: > Hi, this is a solution to a bug that was reported 2008-12-08 (quoted > below)... > > Compiling cfengine on Solaris 10, with Sun's compiler, you get: (among > other errors) > "do.c", line 2847: syntax error before or at: : > > This is caused by ?: on line 2487 on do.c: > snprintf(lock,CF_BUFSIZE-1,"%s_%d_%s_%d_%s_%s", name, ptr->cmp, ptr->ver > ?: "" ,ptr->action, ptr->defines ?: "", ptr->elsedef ?: ""); > > Gcc allows "x ?: y" instead of the strictly correct "x ? x : y". (More > info: http://gcc.gnu.org/onlinedocs/gcc-2.95.3/gcc_4.html#SEC70 ) > > We were able to compile by changing line 2847 in do.c to: > > snprintf(lock,CF_BUFSIZE-1,"%s_%d_%s_%d_%s_%s", name, ptr->cmp, ptr-ver > ? ptr->ver : "", ptr->action, ptr->defines ? ptr->defines : "", > ptr->elsedef ? ptr->elsedef : ""); > > We also found that cfengine required GNU flex in order to successfully > compile on Solaris 10 using the Sun compiler, else we got symbol > referencing errors for "yyless" and "yywrap". > > Also, good news, gcc 4.4.0 does compile on Solaris 10. It's not > officially released yet, but you can download the latest build if you're > feeling lucky. > > Hope that helps. > > - Nada O'Neal, Columbia University > > On Mon Dec 8 21:55:53 CET 2008 Chris wrote: >> Hello again...I running into some trouble compiling the latest >> cfengine-2 trunk from SVN this time under Solaris 10. It runs for a >> while and eventually builds libcfengine.la but then gets into trouble >> (see output below). >> >> I am using Sun's C compiler: >> >> $ cc -V >> cc: Sun C 5.8 Patch 121015-06 2007/10/03 >> >> I had the same error on Solaris 9 but it compiled successfully with gcc >> 3.3.2. Unfortunately gcc chokes very early on if I try to compile on >> Solaris 10. Any ideas? >> >> >> Thanks, >> >> Chris >> >>> source='do.c' object='do.o' libtool=no \ >>> DEPDIR=.deps depmode=none /bin/bash ../depcomp \ >>> cc -DHAVE_CONFIG_H -I. -I. -I. -I/common/include -I/common/include >>> -D_REENTRANT -D_REENTRANT -g -I/common/include -D_LARGEFILE_SOURCE >>> -D_FILE_OFFSET_BITS=64 -D_REENTRANT -g -I/common/include >>> -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -c do.c >>> "do.c", line 2847: syntax error before or at: : >>> "do.c", line 2935: cannot recover from previous errors >>> cc: acomp failed for do.c >>> *** Error code 2 >>> make: Fatal error: Command failed for target `do.o' >>> Current working directory /disk/managed/common/pkg/cfengine-2.2.9b1/src/src >>> *** Error code 1 >>> make: Fatal error: Command failed for target `all' >>> Current working directory /disk/managed/common/pkg/cfengine-2.2.9b1/src/src >>> *** Error code 1 >>> The following command caused the error: >>> failcom='exit 1'; \ >>> for f in x $MAKEFLAGS; do \ >>> case $f in \ >>> *=* | --[!k]*);; \ >>> *k*) failcom='fail=yes';; \ >>> esac; \ >>> done; \ >>> dot_seen=no; \ >>> target=`echo all-recursive | sed s/-recursive//`; \ >>> list='pub src contrib inputs '; for subdir in $list; do \ >>> echo "Making $target in $subdir"; \ >>> if test "$subdir" = "."; then \ >>> dot_seen=yes; \ >>> local_target="$target-am"; \ >>> else \ >>> local_target="$target"; \ >>> fi; \ >>> (cd $subdir && make $local_target) \ >>> || eval $failcom; \ >>> done; \ >>> if test "$dot_seen" = "no"; then \ >>> make "$target-am" || exit 1; \ >>> fi; test -z "$fail" >>> make: Fatal error: Command failed for target `all-recursive' > _______________________________________________ > Bug-cfengine mailing list > [email protected] > https://cfengine.org/mailman/listinfo/bug-cfengine
-- Mark Burgess ------------------------------------------------- Professor of Network and System Administration Oslo University College, Norway Personal Web: http://www.iu.hio.no/~mark Office Telf : +47 22453272 ------------------------------------------------- _______________________________________________ Bug-cfengine mailing list [email protected] https://cfengine.org/mailman/listinfo/bug-cfengine
