[csw-buildfarm] ClamAV 0.96 on Solaris9/10 - Intel
edwin at clamav.net
Wed Mar 31 12:31:24 CEST 2010
First of all I found the problem with the broken gcc4 on Solaris9 on the
buildfarm: you have a gcc4 built on Solaris8, and it has fix-includes
from Solaris8 headers!
$ cat >x.c
If I include <sys/types.h> it is missing upad128_t needed by signal.h:
$ /opt/csw/gcc4/bin/g++ -E x.c | grep upad128
However the type is there:
$ /opt/csw/gcc4/bin/g++ -E /usr/include/sys/types.h|grep upad128
Then I found that on Solaris9 (current9x) you are using the Solaris8
Using built-in specs.
So when you built GCC4 on Solaris8, it has run fix-includes on
sys/types.h, and it is using that instead of system's sys/types.h.
That works fine on Solaris8 (I assume), however is wrong for Solaris9
(which has a different sys/types.h header).
Although the gcc4 from Solaris8 is probably binary compatible with
Solaris9, using a header from Solaris8 on Solaris9 is certainly not
So you need to build GCC4 on Solaris9, so that it runs fix-includes on
the Solaris9 header.
Once you have a GCC4 built on Solaris9 you should be able to use that to
For reference here is the error you get with gcc4 on Solaris9
$ /opt/csw/gcc4/bin/g++ x.c
In file included from
/usr/include/ia32/sys/reg.h:300: error: 'upad128_t' does not name a type
/usr/include/ia32/sys/reg.h:301: error: 'upad128_t' does not name a type
/usr/include/ia32/sys/reg.h:331: error: 'upad128_t' does not name a type
BTW everything is fine when building on Solaris10/Intel (and everything
is fine on Solaris8,9,10/Sparc):
I tested this:
$ export PATH=/usr/bin:/usr/ccs/bin:/opt/csw/bin
$ export LD_LIBRARY_PATH=/opt/csw/gcc4/lib
$ ./configure CC=/opt/csw/gcc4/bin/gcc CXX=/opt/csw/gcc4/bin/g++
--disable-clamav --enable-llvm --enable-check
$ gmake -j2
$ gmake check -j2
All 6 tests passed
All 7 tests passed
(5 tests were not run)
More information about the buildfarm