-pthread errors building cfengine on Solaris 10

[email protected] Fri, 12 Jun 2009 09:32:47 -0700 (PDT)
Newsgroups gmane.comp.sysutils.cfengine.bugs
Message-ID <[email protected]>
I'm trying to build cfengine-3.0.2b1 on Solaris 10 u7 (with the Entire Solaris Software Group Plus OEM Support installed)

Including:
gcc (GCC) 3.4.3 (csl-sol210-3_4-branch+sol_rpath)

I downloaded and installed Berkeley DB 4.7.25

running ./configure --with-ssl=/usr/sfw yields:
...
checking whether pthreads work with -pthread... yes
checking for joinable pthread attribute... PTHREAD_CREATE_JOINABLE
checking if more special flags are required for pthreads... -D_REENTRANT
...
checking for BerkeleyDB location in default... /usr/local/BerkeleyDB.4.7
checking Berkeley DB API... 4.7.25 OK
checking for db_create in -ldb... yes
checking for OpenSSL location... /usr/sfw
checking OpenSSL Version... OK
...
checking pthread.h usability... yes
checking pthread.h presence... yes
checking for pthread.h... yes
checking sched.h usability... yes
checking sched.h presence... yes
checking for sched.h... yes
checking for lchown... yes
checking for pthread_attr_setstacksize... yes
checking for pthread_sigmask... yes
...

It completes and then running make yields voluminous output that has many entries with errors like this:

...
gcc -DHAVE_CONFIG_H -I. -I../src -I/usr/local/BerkeleyDB.4.7/include -I/usr/sfw/include   -D_REENTRANT -pthread -D_REENTRANT -pthread -g -O2 -I/usr/local/BerkeleyDB.4.7/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -g -O2 -Wreturn-type -Wmissing-prototypes -Wuninitialized -D_REENTRANT -pthread -g -O2 -I/usr/local/BerkeleyDB.4.7/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -MT snprintf.o -MD -MP -MF .deps/snprintf.Tpo -c -o snprintf.o snprintf.c
gcc: unrecognized option `-pthread'
gcc: unrecognized option `-pthread'
gcc: unrecognized option `-pthread'
...
cf3-Reference.texinfo:13770: warning: @image file `package-behaviour.txt' (for text) unreadable: No such file or directory.
../src/../src/cf-agent -M > `echo ../src/cf-agent.8 | sed s/src/docs/`
../src/../src/cf-serverd -M > `echo ../src/cf-serverd.8 | sed s/src/docs/`
../src/../src/cf-execd -M > `echo ../src/cf-execd.8 | sed s/src/docs/`
../src/../src/cf-monitord -M > `echo ../src/cf-monitord.8 | sed s/src/docs/`
../src/../src/cf-report -M > `echo ../src/cf-report.8 | sed s/src/docs/`
../src/../src/cf-know -M > `echo ../src/cf-know.8 | sed s/src/docs/`
../src/../src/cf-runagent -M > `echo ../src/cf-runagent.8 | sed s/src/docs/`
../src/../src/cf-key -M > `echo ../src/cf-key.8 | sed s/src/docs/`
Making all in inputs
$ 


I searched around and found that Solaris sems to like -pthreads rather than -pthread so I modified this line in the configure script:
< 3940:        acx_pthread_flags="-pthread -pthreads pthread -mt $acx_pthread_flags"
> 3940:        acx_pthread_flags="-pthreads pthread -mt $acx_pthread_flags"



configure now yields:
checking whether pthreads work with -pthreads... yes
checking for joinable pthread attribute... PTHREAD_CREATE_JOINABLE
checking if more special flags are required for pthreads... -D_REENTRANT
...
checking for BerkeleyDB location in default... /usr/local/BerkeleyDB.4.7
checking Berkeley DB API... 4.7.25 OK
checking for db_create in -ldb... yes
checking for OpenSSL location... /usr/sfw
checking OpenSSL Version... OK
...
checking for main in -lpthread... yes
checking pthread.h usability... yes
checking pthread.h presence... yes
checking for pthread.h... yes
checking sched.h usability... yes
checking sched.h presence... yes
checking for sched.h... yes
checking for lchown... yes
checking for pthread_attr_setstacksize... yes
checking for pthread_sigmask... yes
...


Now make does not kick the -pthreads errors:
...
gcc -DHAVE_CONFIG_H -I. -I../src -I/usr/local/BerkeleyDB.4.7/include -I/usr/sfw/include   -D_REENTRANT -pthreads -D_REENTRANT -pthreads -g -O2 -I/usr/local/BerkeleyDB.4.7/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -g -O2 -Wreturn-type -Wmissing-prototypes -Wuninitialized -D_REENTRANT -pthreads -g -O2 -I/usr/local/BerkeleyDB.4.7/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -MT snprintf.o -MD -MP -MF .deps/snprintf.Tpo -c -o snprintf.o snprintf.c
...

but still outputs this warning at they end:
cf3-Reference.texinfo:13770: warning: @image file `package-behaviour.txt' (for text) unreadable: No such file or directory.





Am I doing a bad bad thing by adusting this line in configure?  I'm not overly familiar with gcc and configure script creation nor with pthread(s) so I'm uncertain of the ramnifications of messing with this stuff.

I don't know if I caught a bug or implemented a kludgy hack.  Any suggestions?