Solaris 9 / modssl-2.8.22-1.3.33 problems

Steve Parker <[email protected]>
Newsgroups gmane.comp.apache.mod-ssl.user
Message-ID <[email protected]>
Hi modssl-users,

I'm having trouble building mod-ssl with Apache on Solaris 9, and have 
run out of ideas.
I've been building Apache/mod-ssl happily for the past few years 
(although I claim no expertise in the matter), most recently having 
built this exact software combination on Solaris 7, which is running 
quite happily.
However, we feel the need to upgrade from the aging Solaris 7, but the 
build is not working.

Versions of things:
  OpenSSL 0.9.7e
  Mod-SSL 2.8.22-1.3.33
  Apache 1.3.33
  Solaris 9 SPARC (64-bit)
  gcc 3.4.2 (from www.sunfreeware.com)
  GNU ld 2.11.2 (again, from www.sunfreeware.com)
  flex 2.5.31

Summary:
It seems from http://forum.sun.com/thread.jspa?threadID=18986&tstart=15 
that this was a problem with 2.8.17,  fixed in 2.8.18 with a sed command 
on line 244 of apache-1.3.33/src/modules/ssl/Makefile:

242: ssl_expr_scan.c: ssl_expr_scan.l ssl_expr_parse.h
243:         flex -Pssl_expr_yy -s -B ssl_expr_scan.l
244:         sed -e '/$$Header:/d' <lex.ssl_expr_yy.c >ssl_expr_scan.c 
&& rm -f lex.ssl_expr_yy.c

This fix isn't working for me; the generated ssl_expr_scan.c errs at 
line 1900:
gcc -c  -I../../os/unix -I../../include   -DSOLARIS2=290 
-DMOD_SSL=208122 -DEAPI -DUSE_EXPAT -I../../lib/expat-lite `../../apaci` 
-fPIC -DSHARED_MODULE -DSSL_COMPAT -DSSL_ENGINE 
-I/apache/openssl-0.9.7e/include -DMOD_SSL_VERSION=\"2.8.22\" 
ssl_expr_scan.c && mv ssl_expr_scan.o ssl_expr_scan.lo
lex.ssl_expr_yy.c:1900: error: parse error before numeric constant

Line 1900 of ssl_expr_scan.c is:
YY_BUFFER_STATE ssl_expr_yy_scan_string (yyconst char * str )


Actions taken:
# cd openssl-0.9.7e
# ./Configure solaris64-sparcv9-gcc -fPIC
# make && make install
# cd ../mod-ssl-2.8.22-1.3.33
# ./configure --with-apache=../apache_1.3.33/ \
    --with-ssl=../openssl-0.9.7e/ \
    --enable-module=ssl --prefix=/usr/local/apache \
    --enable-shared=ssl --enable-suexec                  \
    --suexec-docroot=/usr/local/apache/htdocs        \
    --suexec-logfile=/usr/local/apache/logs/suexec_log                \
    --suexec-caller=apache    --suexec-uidmin=1000             \
    --suexec-gidmin=1000    --suexec-safepath="/bin:/usr/bin"     \
    --enable-module=most --enable-shared=max       \
    --enable-module=proxy --enable-shared=proxy
# cd ../apache-1.3.33
# make

Results:
[....]
gcc -c  -I../../os/unix -I../../include   -DSOLARIS2=290 
-DMOD_SSL=208122 -DEAPI -DUSE_EXPAT -I../../lib/expat-lite `../../apaci` 
-fPIC -DSHARED_MODULE -DSSL_COMPAT -DSSL_ENGINE 
-I/apache/openssl-0.9.7e/include -DMOD_SSL_VERSION=\"2.8.22\" 
ssl_scache_dbm.c && mv ssl_scache_dbm.o ssl_scache_dbm.lo
gcc -c  -I../../os/unix -I../../include   -DSOLARIS2=290 
-DMOD_SSL=208122 -DEAPI -DUSE_EXPAT -I../../lib/expat-lite `../../apaci` 
-fPIC -DSHARED_MODULE -DSSL_COMPAT -DSSL_ENGINE 
-I/apache/openssl-0.9.7e/include -DMOD_SSL_VERSION=\"2.8.22\" 
ssl_scache_shmht.c && mv ssl_scache_shmht.o ssl_scache_shmht.lo
gcc -c  -I../../os/unix -I../../include   -DSOLARIS2=290 
-DMOD_SSL=208122 -DEAPI -DUSE_EXPAT -I../../lib/expat-lite `../../apaci` 
-fPIC -DSHARED_MODULE -DSSL_COMPAT -DSSL_ENGINE 
-I/apache/openssl-0.9.7e/include -DMOD_SSL_VERSION=\"2.8.22\" 
ssl_scache_shmcb.c && mv ssl_scache_shmcb.o ssl_scache_shmcb.lo
gcc -c  -I../../os/unix -I../../include   -DSOLARIS2=290 
-DMOD_SSL=208122 -DEAPI -DUSE_EXPAT -I../../lib/expat-lite `../../apaci` 
-fPIC -DSHARED_MODULE -DSSL_COMPAT -DSSL_ENGINE 
-I/apache/openssl-0.9.7e/include -DMOD_SSL_VERSION=\"2.8.22\" ssl_expr.c 
&& mv ssl_expr.o ssl_expr.lo
flex -Pssl_expr_yy -s -B ssl_expr_scan.l
sed -e '/$Header:/d' <lex.ssl_expr_yy.c >ssl_expr_scan.c && rm -f 
lex.ssl_expr_yy.c
gcc -c  -I../../os/unix -I../../include   -DSOLARIS2=290 
-DMOD_SSL=208122 -DEAPI -DUSE_EXPAT -I../../lib/expat-lite `../../apaci` 
-fPIC -DSHARED_MODULE -DSSL_COMPAT -DSSL_ENGINE 
-I/apache/openssl-0.9.7e/include -DMOD_SSL_VERSION=\"2.8.22\" 
ssl_expr_scan.c && mv ssl_expr_scan.o ssl_expr_scan.lo
lex.ssl_expr_yy.c:1900: error: parse error before numeric constant
lex.ssl_expr_yy.c: In function `ssl_expr_yy_scan_string':
lex.ssl_expr_yy.c:1901: error: number of arguments doesn't match prototype
lex.ssl_expr_yy.c:293: error: prototype declaration
lex.ssl_expr_yy.c:1903: warning: passing arg 1 of `strlen' makes pointer 
from integer without a cast
lex.ssl_expr_yy.c:1903: warning: passing arg 1 of 
`ssl_expr_yy_scan_bytes' makes pointer from integer without a cast
make[4]: *** [ssl_expr_scan.lo] Error 1
make[3]: *** [all] Error 1
make[2]: *** [subdirs] Error 1
make[2]: Leaving directory `/apache/apache_1.3.33/src'
make[1]: *** [build-std] Error 2
make[1]: Leaving directory `/apache/apache_1.3.33'
make: *** [build] Error 2

Workaround tried:
ssl_expr_scan.c:
-YY_BUFFER_STATE ssl_expr_yy_scan_string (yyconst char * str )
+YY_BUFFER_STATE ssl_expr_yy_scan_string (yyconst char * str_state )

Makefile:
ssl_expr_scan.c: ssl_expr_scan.l ssl_expr_parse.h
        #flex -Pssl_expr_yy -s -B ssl_expr_scan.l
        #sed -e '/$$Header:/d' <lex.ssl_expr_yy.c >ssl_expr_scan.c && rm 
-f lex.ssl_expr_yy.c
        echo SKIPPING FLEX STUFF

This results in:
# make clean
# make
[...]
gcc -c  -I../../os/unix -I../../include   -DSOLARIS2=290 
-DMOD_SSL=208122 -DEAPI -DUSE_EXPAT -I../../lib/expat-lite `../../apaci` 
-fPIC -DSHARED_MODULE -DSSL_COMPAT -DSSL_ENGINE 
-I/apache/openssl-0.9.7e/include -DMOD_SSL_VERSION=\"2.8.22\" 
ssl_util_sdbm.c && mv ssl_util_sdbm.o ssl_util_sdbm.lo
gcc -c  -I../../os/unix -I../../include   -DSOLARIS2=290 
-DMOD_SSL=208122 -DEAPI -DUSE_EXPAT -I../../lib/expat-lite `../../apaci` 
-fPIC -DSHARED_MODULE -DSSL_COMPAT -DSSL_ENGINE 
-I/apache/openssl-0.9.7e/include -DMOD_SSL_VERSION=\"2.8.22\" 
ssl_util_table.c && mv ssl_util_table.o ssl_util_table.lo
rm -f libssl.so
ld -L/apache/openssl-0.9.7e -G  -o libssl.so mod_ssl.lo 
ssl_engine_config.lo ssl_engine_compat.lo ssl_engine_ds.lo 
ssl_engine_dh.lo ssl_engine_init.lo ssl_engine_kernel.lo 
ssl_engine_rand.lo ssl_engine_io.lo ssl_engine_log.lo 
ssl_engine_mutex.lo ssl_engine_pphrase.lo ssl_engine_vars.lo 
ssl_engine_ext.lo ssl_scache.lo ssl_scache_dbm.lo ssl_scache_shmht.lo 
ssl_scache_shmcb.lo ssl_expr.lo ssl_expr_scan.lo ssl_expr_parse.lo 
ssl_expr_eval.lo ssl_util.lo ssl_util_ssl.lo ssl_util_sdbm.lo 
ssl_util_table.lo  -lssl -lcrypto 
-L/usr/local/lib/gcc/sparc-sun-solaris2.9/3.4.2 -lgcc
ld: skipping incompatible /apache/openssl-0.9.7e/libssl.a when searching 
for -lssl
ld: cannot find -lssl
make[4]: *** [libssl.so] Error 1
make[3]: *** [all] Error 1
make[2]: *** [subdirs] Error 1
make[2]: Leaving directory `/apache/apache_1.3.33/src'
make[1]: *** [build-std] Error 2
make[1]: Leaving directory `/apache/apache_1.3.33'
make: *** [build] Error 2

Any ideas gratefully received; I'm beginning to doubt my sanity :-)

Steve

--
Steve Parker
[email protected]
______________________________________________________________________
Apache Interface to OpenSSL (mod_ssl)                   www.modssl.org
User Support Mailing List                      [email protected]
Automated List Manager                            [email protected]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.