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]
