symbol ap_get_server_banner: referenced symbol not found

symbol ap_get_server_banner: referenced symbol not found

am 01.02.2010 16:38:21 von Shigeru Yanagibayashi

Hello,

I installed the following on my Solaris10 box.

perl-5.8.8.tar.gz
openssl-0.9.8l.tar.gz
httpd-2.0.63.tar.gz
mod_auth_cookie-0.1-apache2.tar.gz
mod_perl-2.0.4.tar.gz

perl:

% /usr/local/bin/perl -V
Summary of my perl5 (revision 5 version 8 subversion 8) configuration:
Platform:
osname=solaris, osvers=2.8, archname=sun4-solaris
uname='sunos dcwww01 5.8 generic_108528-18 sun4u sparc sunw,ultraax-i2 '
config_args='-des -Dcc=gcc -Dinstallusrbinperl
-Dldflags=-L/usr/local/lib -R/usr/local/lib
-Dotherlibdirs=/usr/local/lib/perl5/5.8.1'
hint=recommended, useposix=true, d_sigaction=define
usethreads=undef use5005threads=undef useithreads=undef
usemultiplicity=undef
useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
use64bitint=undef use64bitall=undef uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='gcc', ccflags ='-fno-strict-aliasing -pipe -I/usr/local/include
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
optimize='-O',
cppflags='-fno-strict-aliasing -pipe -I/usr/local/include'
ccversion='', gccversion='3.3.2', gccosandvers='solaris2.8'
intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=4321
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t',
lseeksize=8
alignbytes=8, prototype=define
Linker and Libraries:
ld='gcc', ldflags ='-L/usr/local/lib -R/usr/local/lib '
libpth=/usr/local/lib /usr/lib /usr/ccs/lib
libs=-lsocket -lnsl -lgdbm -ldb -ldl -lm -lc
perllibs=-lsocket -lnsl -ldl -lm -lc
libc=/lib/libc.so, so=so, useshrplib=false, libperl=libperl.a
gnulibc_version=''
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags=' '
cccdlflags='-fPIC', lddlflags='-G -L/usr/local/lib -R/usr/local/lib'


Characteristics of this binary (from libperl):
Compile-time options: PERL_MALLOC_WRAP USE_LARGE_FILES USE_PERLIO
Built under solaris
Compiled at Jan 30 2010 18:24:59
@INC:
/usr/local/lib/perl5/5.8.8/sun4-solaris
/usr/local/lib/perl5/5.8.8
/usr/local/lib/perl5/site_perl/5.8.8/sun4-solaris
/usr/local/lib/perl5/site_perl/5.8.8
/usr/local/lib/perl5/site_perl/5.8.1/sun4-solaris
/usr/local/lib/perl5/site_perl/5.8.1
/usr/local/lib/perl5/site_perl
/usr/local/lib/perl5/5.8.1/sun4-solaris
/usr/local/lib/perl5/5.8.1
.

mod_perl:

% LDFLAGS='-L/usr/local/lib -R/usr/local/lib' perl Makefile.PL
MP_USE_STATIC=1 MP_AP_PREFIX=../httpd-2.0.63
MP_AP_CONFIGURE="--prefix=/usr/local/apache --with-mpm=prefork --enable-ssl
--enable-rewrite --enable-proxy --disable-so --disable-proxy-connect
--disable-proxy-ftp --with-module=aaa:auth_cookie"

Make change in modperl_exports.c as follows:
-----
http://www.gossamer-threads.com/lists/modperl/modperl/97982? do=post_view_threaded#97982

I have installed httpd-2.2.9 and static mod_perl2.0.5-dev, i had the same
problem, well, i had many problems, but when this problem appeared, you
just have to comment the lines where appear these headers of functions that
are never used in the file modperl_exports.c

1164 #ifndef modperl_threads_started
1165 const void *modperl_hack_threads_started = (const void
*)modperl_threads_started;
1166 #endif
1167
1168 /*#ifndef modperl_thx_interp_get
1169 const void *modperl_hack_thx_interp_get = (const void
*)modperl_thx_interp_get;
1170 #endif
1171
1172 #ifndef modperl_thx_interp_set
1173 const void *modperl_hack_thx_interp_set = (const void
*)modperl_thx_interp_set;
1174 #endif*/
1175
1176 #ifndef modperl_tls_create
1177 const void *modperl_hack_tls_create = (const void *)modperl_tls_create;
1178 #endif

then try to do make again.

so I installed it and I have not had any problems.
-----

Then make & make install.

apache:

% /usr/local/apache/bin/httpd -V
Server version: Apache/2.0.63
Server built: Jan 30 2010 19:07:44
Server's Module Magic Number: 20020903:13
Server loaded: APR 0.9.17, APR-UTIL 0.9.15
Compiled using: APR 0.9.17, APR-UTIL 0.9.15
Architecture: 32-bit
Server compiled with....
-D APACHE_MPM_DIR="server/mpm/prefork"
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_FCNTL_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D HTTPD_ROOT="/usr/local/apache"
-D SUEXEC_BIN="/usr/local/apache/bin/suexec"
-D DEFAULT_PIDLOG="logs/httpd.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_LOCKFILE="logs/accept.lock"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="conf/mime.types"
-D SERVER_CONFIG_FILE="conf/httpd.conf"

% /usr/local/apache/bin/httpd -l
Compiled in modules:
core.c
mod_perl.c
mod_access.c
mod_auth.c
mod_include.c
mod_log_config.c
mod_env.c
mod_setenvif.c
mod_proxy.c
proxy_http.c
mod_ssl.c
prefork.c
http_core.c
mod_mime.c
mod_auth_cookie.c
mod_status.c
mod_autoindex.c
mod_asis.c
mod_cgi.c
mod_negotiation.c
mod_dir.c
mod_imap.c
mod_actions.c
mod_userdir.c
mod_alias.c
mod_rewrite.c

But apache can not start;

ld.so.1: /usr/local/apache/bin/httpd: fatal: relocation error: file
/usr/local/lib/perl5/site_perl/5.8.8/sun4-solaris/auto/Apach e2/ServerUtil/ServerUtil.so: symbol ap_get_server_banner: referenced symbol not found

I checked httpd;

% nm httpd|grep ap_get_server_
[10924] | 1890324| 24|FUNC |GLOB |0 |9 |ap_get_server_built
[10640] | 1920648| 352|FUNC |GLOB |0 |9 |ap_get_server_name
[6488] | 1921124| 380|FUNC |GLOB |0 |9 |ap_get_server_port
[10616] | 1938924| 64|FUNC |GLOB |0 |9 |ap_get_server_revision
[5500] | 1938988| 72|FUNC |GLOB |0 |9 |ap_get_server_version
[7123] | 3385828| 4|OBJT |GLOB |0 |16
|ap_hack_ap_get_server_built
[7494] | 3385184| 4|OBJT |GLOB |0 |16
|ap_hack_ap_get_server_name
[10522] | 3385188| 4|OBJT |GLOB |0 |16
|ap_hack_ap_get_server_port
[9882] | 3385816| 4|OBJT |GLOB |0 |16
|ap_hack_ap_get_server_revision
[10252] | 3385820| 4|OBJT |GLOB |0 |16
|ap_hack_ap_get_server_version

there is no ap_get_server_banner.

Does anyone know how to resolve this? Static is not good?

I made DSO version also and it works fine;

apache error_log;
ap_get_server_banner() not available until httpd/2.2.4 falling back to
ap_get_server_version() at
/usr/local/lib/perl5/5.8.8/sun4-solaris/XSLoader.pm line 94.
ap_get_server_description() not available until httpd/2.2.4 falling back to
ap_get_server_version() at
/usr/local/lib/perl5/5.8.8/sun4-solaris/XSLoader.pm line 94.
ap_get_server_banner() not available until httpd/2.2.4 falling back to
ap_get_server_version() at
/usr/local/lib/perl5/5.8.8/sun4-solaris/XSLoader.pm line 94.
ap_get_server_description() not available until httpd/2.2.4 falling back to
ap_get_server_version() at
/usr/local/lib/perl5/5.8.8/sun4-solaris/XSLoader.pm line 94.
[Sun Jan 31 14:37:05 2010] [notice] Apache configured -- resuming normal
operations


Thank you.