So I'm using the Solaris 10 05/08 release on AMD64.
Compiler is GCC 4.02, though this has failed with GCC 3.45 also.
# gcc -v
Reading specs from /opt/csw/gcc4/lib/gcc/i386-pc-solaris2.8/4.0.2/specs
Target: i386-pc-solaris2.8
Configured with: ../sources/gcc-4.0.2/configure --prefix=/opt/csw/gcc4 --with-local-prefix=/opt/csw --with-gnu-as --with-as=/opt/csw/bin/gas --without-gnu-ld --with-ld=/usr/ccs/bin/ld --enable-threads=posix --enable-shared --enable-multilib --enable-nls --with-included-gettext --with-libiconv-prefix=/opt/csw --with-x --enable-java-awt=xlib --with-system-zlib --enable-languages=c,c++,f95,java,objc,ada
Thread model: posix
gcc version 4.0.2
This was installed from the blastwave.org stable packages.
The output of ./configure is athttp://www.cs.rpi.edu/~kempfj2/rsyslog-fail.txt and I've inlined what happens when I try to compile:
# gmake
gmake all-recursive
gmake[1]: Entering directory `/root/software/rsyslog-3.16.2'
Making all in .
gmake[2]: Entering directory `/root/software/rsyslog-3.16.2'
/bin/bash ./libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -pthread -g -O2 -W -Wall -Wformat-security -Wshadow -Wcast-align -Wpointer-arith -Wmissing-format-attribute -g -MT lmnet_la-net.lo -MD -MP -MF .deps/lmnet_la-net.Tpo -c -o lmnet_la-net.lo `test -f 'net.c' || echo './'`net.c
mkdir .libs
gcc -DHAVE_CONFIG_H -I. -pthread -g -O2 -W -Wall -Wformat-security -Wshadow -Wcast-align -Wpointer-arith -Wmissing-format-attribute -g -MT lmnet_la-net.lo -MD -MP -MF .deps/lmnet_la-net.Tpo -c net.c -fPIC -DPIC -o .libs/lmnet_la-net.o
gcc: unrecognized option '-pthread'
In file included from action.h:30,
from syslogd.h:28,
from net.c:50:
queue.h:151: error: conflicting types for 'queue_t'
/usr/include/sys/stream.h:123: error: previous declaration of 'queue_t' was here
net.c: In function 'MaskIP6':
net.c:93: error: 'struct in6_addr' has no member named 's6_addr32'
net.c:94: error: 'struct in6_addr' has no member named 's6_addr32'
net.c:95: error: 'struct in6_addr' has no member named 's6_addr32'
net.c: In function 'AddAllowedSender':
net.c:296: error: 'struct in6_addr' has no member named 's6_addr32'
net.c: In function 'MaskCmp':
net.c:507: error: 'struct in6_addr' has no member named 's6_addr32'
net.c:508: error: 'struct in6_addr' has no member named 's6_addr32'
net.c:509: error: 'struct in6_addr' has no member named 's6_addr32'
net.c:519: error: 'struct in6_addr' has no member named 's6_addr32'
net.c:519: error: 'u_int32_t' undeclared (first use in this function)
net.c:519: error: (Each undeclared identifier is reported only once
net.c:519: error: for each function it appears in.)
net.c:519: error: syntax error before 'htonl'
net.c:517: warning: unused variable 'net'
gmake[2]: *** [lmnet_la-net.lo] Error 1
gmake[2]: Leaving directory `/root/software/rsyslog-3.16.2'
gmake[1]: *** [all-recursive] Error 1
gmake[1]: Leaving directory `/root/software/rsyslog-3.16.2'
gmake: *** [all] Error 2
So far there are three issues. The first is that the option for pthreads on !linux is -pthreads, not -pthread. The second is that queue_t is getting clobbered. The third is, well, Solaris doesn't include the s6_addr32 declarations that both Linux and FreeBSD do.
The pthreads flag problem is easy enough to fix in configure.ac. I'm not too sure how to proceed about the latter two, as well as whatever other issues will arise after they're fixed.
What's the next step in fixing this?


