Solaris 9 fails to compile Validator.xs and deal with Validator.h. The local solution in these cases are
to replace instances of u_int8_t with uint8_t, u_int16_t with uint16_t, etc. For example:
gcc -c -I/home/wmaton/src/dnssec-tools-1.4.1/validator/include -g -O2 -D_REENTRANT -Usolaris2 -Dsolaris2=solaris2 -Usolaris2 -Dsolaris2=solaris2 -I/usr/local/ssl/include -I. -I/usr/local/include/validator -O -DVERSION=\"1.30\" -DXS_VERSION=\"1.30\" -fPIC "-I/usr/local/lib/perl5/5.8.8/sun4-solaris/CORE" Validator.c
In file included from Validator.xs:31:
/home/wmaton/src/dnssec-tools-1.4.1/validator/include/validator/validator.h:210: error: parse error before "val_status_t"
/home/wmaton/src/dnssec-tools-1.4.1/validator/include/validator/validator.h:210: warning: data definition has no type or storage class
etc.
The error output is a bit of a red herring, but fixes occurrences of u_int and friends fixes that. (I suspect this is a Linux-ism that we're dealing with here.)
I believe this is fixed in 1.4.2.rc1. Please test and let me know if I'm wrong!