Subject: mod_ssl: SSLMutex lock 'sem' and SSLSessionCache storage 'shm:' not available on Solaris8

From: "Bert Courtin" <[email-masked]>
Date: Fri, 08 Feb 2002 15:24:46 +0100

Hi,

I'm trying to compile the following

apache_1.3.23 & mm-1.1.3 &  openssl-0.9.6c & mod_ssl-2.8.6-1.3.23

and get SSLMutex lock 'sem' and SSLSessionCache storage 'shm:' available
on Solaris8/SPARC (sparc-sun-solaris2.8) - without any success:-(

The apache build reports always (I now've tried a few tens combinations
of configure options) httpd -L:
--------------------------------
SSLMutex (mod_ssl.c)
        SSL lock for handling internal mutual exclusions (`none',
`file:/path/to/file')
        Allowed in *.conf only outside <Directory>, <Files> or
<Location>
SSLSessionCache (mod_ssl.c)
        SSL Session Cache storage (`none', `dbm:/path/to/file')
        Allowed in *.conf only outside <Directory>, <Files> or
<Location>
--------------------------------

Here's what I did: (I've added the output of these commands to this
mail, see below):
-------------------------------------------------------------------------------------

apache_1.3.23 # ./configure --prefix=/${TARGET_DIR}/${APACHE}/${PROJEKT}

mm-1.1.3 # ./configure --prefix=/${TARGET_DIR}/${MM} --disable-shared
--with-sem=IPCSEM

openssl-0.9.6c # ./config --prefix=/${TARGET_DIR}/${OPENSSL} -fPIC
shared

mod_ssl-2.8.6-1.3.23 # ./configure --with-apache=../apache_1.3.23 \
    --with-ssl=../openssl-0.9.6c \
    --with-mm=../mm-1.1.3  \
    --prefix=/opt/apache_1.3.23 \
    --disable-rule=SSL_COMPAT

What's wrong with that respectively where may be the problem - or is
there a bug with these releases on my platform?

Thank you & kind regards,

Bert Courtin

-------------------------------------------------------------------

Preconfiguring Apache:
-------
root@wowebref01 apache_1.3.23 # ./configure
--prefix=/${TARGET_DIR}/${APACHE}/${PROJEKT}
Configuring for Apache, Version 1.3.23
 + using installation path layout: Apache (config.layout)
Creating Makefile
Creating Configuration.apaci in src
Creating Makefile in src
 + configured for Solaris 280 platform
 + setting C pre-processor to gcc -E
 + checking for system header files
 + adding selected modules
 + using builtin Expat
 + checking sizeof various data types
 + doing sanity check on compiler and options
Creating Makefile in src/support
Creating Makefile in src/os/unix
Creating Makefile in src/ap
Creating Makefile in src/main
Creating Makefile in src/lib/expat-lite
Creating Makefile in src/modules/standard

Configuring mm-1.1.3:
---------------------
root@wowebref01 mm-1.1.3 # ./configure
--prefix=/${TARGET_DIR}/${MM}         --disable-shared
--with-sem=IPCSEM | tee -a conf.out
Configuring MM (Shared Memory Library), Version 1.1.3 (01-Jul-2000)
Copyright (c) 1999-2000 Ralf S. Engelschall, All Rights Reserved.
Platform: sparc-sun-solaris2.8
loading cache ./config.cache

Build Tools:
checking for gcc... (cached) gcc
checking whether the C compiler (gcc  ) works... yes
checking whether the C compiler (gcc  ) is a cross-compiler... no
checking whether we are using GNU C... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking how to run the C preprocessor... (cached) gcc -E
checking for compilation debug mode... disabled
checking whether make sets ${MAKE}... (cached) yes
checking for ranlib... ranlib
checking for object suffix... o
checking for executable suffix... no
checking for gcc option to produce PIC... -fPIC
checking if gcc PIC flag -fPIC works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.lo... yes
checking if gcc supports -fno-rtti -fno-exceptions ... yes
checking if gcc static flag -static works... -static
checking whether ln -s works... yes
checking for ld used by GCC... /usr/local/bin/ld
checking if the linker (/usr/local/bin/ld) is GNU ld... yes
checking whether the linker (/usr/local/bin/ld) supports shared
libraries... yes
checking for BSD-compatible nm... /usr/ccs/bin/nm -p
checking command to parse /usr/ccs/bin/nm -p output... ok
checking how to hardcode library paths into programs... immediate
checking for /usr/local/bin/ld option to reload object files... -r
checking dynamic linker characteristics... solaris2.8 ld.so
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... no
checking whether to build static libraries... yes
checking for objdir... .libs
creating libtool

Platform Environment:
checking for stdio.h... (cached) yes
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking for errno.h... (cached) yes
checking for limits.h... (cached) yes
checking for unistd.h... (cached) yes
checking for fcntl.h... (cached) yes
checking for sys/stat.h... (cached) yes
checking for sys/types.h... (cached) yes
decision on mandatory system headers... all fine
checking for memory.h... (cached) yes
checking for memcpy... (cached) yes
checking for memset... (cached) yes
checking for bcopy... (cached) yes
checking for _POSIX_PATH_MAX in limits.h... (cached) yes
checking for PATH_MAX in limits.h... (cached) yes
checking for MAXPATHLEN in sys/param.h... (cached) yes
checking for _POSIX_CHILD_MAX in limits.h... (cached) yes
checking for CHILD_MAX in limits.h... (cached) yes

Virtual Memory Page Size:
checking for unistd.h... (cached) yes
checking for kernel/OS.h... (cached) no
checking for getpagesize... (cached) yes
checking for sysconf... (cached) yes
checking for _SC_PAGESIZE in unistd.h... (cached) yes
checking for B_PAGE_SIZE in kernel/OS.h... (cached) no
decision on memory page size determination... POSIX.1
sysconf(_SC_PAGESIZE)

Shared Memory Implementation:
checking for sys/mman.h... (cached) yes
checking for MAP_ANON in sys/mman.h... (cached) yes
checking for mmap... (cached) yes
checking for munmap... (cached) yes
checking for shm_open... (cached) no
checking for shm_unlink... (cached) no
checking for /dev/zero... (cached) yes
checking for sys/ipc.h... (cached) yes
checking for sys/shm.h... (cached) yes
checking for sys/file.h... (cached) yes
checking for shmget... (cached) yes
checking for shmat... (cached) yes
checking for shmdt... (cached) yes
checking for shmctl... (cached) yes
checking for kernel/OS.h... (cached) no
checking for create_area... (cached) no
decision on shared memory allocation method... 4.4BSD-style mmap() via
MAP_ANON
checking for shared memory maximum segment size... 64MB (soft limit)

Mutual Exclusion Implementation:
checking for sys/ipc.h... (cached) yes
checking for sys/sem.h... (cached) yes
checking for sys/file.h... (cached) yes
checking for semget... (cached) yes
checking for semctl... (cached) yes
checking for LOCK_EX in sys/file.h... (cached) no
checking for F_SETLK in fcntl.h... (cached) yes
checking for IPC_PRIVATE in sys/ipc.h... (cached) yes
checking for SEM_UNDO in sys/sem.h... (cached) yes
checking for kernel/OS.h... (cached) no
checking for create_sem... (cached) no
checking whether union semun is defined in sys/sem.h... no
decision on mutex implementation method... SysV IPC semget()

Output Substitution:
creating ./config.status
creating Makefile
creating mm-config
creating mm_conf.h
mm_conf.h is unchanged

Now please type `make' to compile. Good luck.

configuring mod_ssl:
--------------------
root@wowebref01 mod_ssl-2.8.6-1.3.23 # ./configure
--with-apache=../apache_1.3.23 --with-ssl=../openssl-0.9.6c
--with-mm=../mm-1.1.3  --prefix=/opt/apache_1.3.23
--disable-rule=SSL_COMPAT | tee -a conf.out
Configuring mod_ssl/2.8.6 for Apache/1.3.23
 + Apache location: ../apache_1.3.23 (Version 1.3.23)
 + OpenSSL location: ../openssl-0.9.6c
 + MM location: ../mm-1.1.3
 + Auxiliary patch tool: ./etc/patch/patch (local)
 + Applying packages to Apache source tree:
   o Extended API (EAPI)
   o Distribution Documents
   o SSL Module Source
   o SSL Support
   o SSL Configuration Additions
   o SSL Module Documentation
   o Addons
Done: source extension and patches successfully applied.

Configuring for Apache, Version 1.3.23
 + using installation path layout: Apache (config.layout)
Creating Makefile
Creating Configuration.apaci in src
Creating Makefile in src
 + configured for Solaris 280 platform
 + setting C pre-processor to gcc -E
 + checking for system header files
 + adding selected modules
    o ssl_module uses ConfigStart/End
      + SSL interface: mod_ssl/2.8.6
      + SSL interface build type: OBJ
      + SSL interface compatibility: disabled
      + SSL interface experimental code: disabled
      + SSL interface conservative code: disabled
      + SSL interface vendor extensions: disabled
      + SSL interface plugin: Vendor DBM (libc)
      + SSL library path: /opt/installstuff/sources/openssl-0.9.6c
      + SSL library version: OpenSSL 0.9.6c 21 dec 2001
      + SSL library type: source tree only (stand-alone)
 + enabling Extended API (EAPI)
   using MM library: ../../mm-1.1.3 (source-tree only)
 + using builtin Expat
 + checking sizeof various data types
 + doing sanity check on compiler and options
Creating Makefile in src/support
Creating Makefile in src/os/unix
Creating Makefile in src/ap
Creating Makefile in src/main
Creating Makefile in src/lib/expat-lite
Creating Makefile in src/modules/standard
Creating Makefile in src/modules/ssl

Now proceed with the following commands:
 $ cd ../apache_1.3.23
 $ make
 $ make certificate
 $ make install

--
T-Online International AG
DCM
Waldstrasse 3
64331 Weiterstadt
Tel.: +49 (0)6151 680 7512

______________________________________________________________________
Apache Interface to OpenSSL (mod_ssl)                   www.modssl.org
User Support Mailing List                      [email-masked]
Automated List Manager                            [email-masked]