Tuesday, October 19, 2010

Woes of Apache 1.3 in the 21st Century and mod_auth_vas (fronm Quest)

First stubling block I hit is this:


$ /usr/local/apache/bin/apxs -q list
apxs:Error: Sorry, no DSO support for Apache available
apxs:Error: under your platform. Make sure the Apache
apxs:Error: module mod_so is compiled into your server
apxs:Error: binary `/usr/local/apache/bin/httpd'.

This is the first google result which seems to answer my question

 http://www.gjt.org/mlist/gnujsp/msg02831.html

and sure enough there are these lines in apache/src/Configuration file ...



################################################################
# Dynamic Shared Object (DSO) support
#
# There is experimental support for compiling the Apache core and
# the Apache modules into dynamic shared object (DSO) files for
# maximum runtime flexibility.
#
# The Configure script currently has only limited built-in
# knowledge on how to compile these DSO files because this is
# heavily platform-dependent. The current state of supported and
# explicitly unsupported platforms can be found in the file
# "htdocs/manual/dso.html", under "Supported Platforms".
#
# For other platforms where you want to use the DSO mechanism you
# first have to make sure it supports the pragmatic dlopen()
# system call and then you have to provide the appropriate
# compiler and linker flags below to create the DSO files on your
# particular platform.
#
# The placement of the Apache core into a DSO file is triggered
# by the SHARED_CORE rule below while support for building
# individual Apache Modules as DSO files and loading them under
# runtime without recompilation is triggered by `SharedModule'
# commands. To be able to use the latter one first enable the
# module mod_so (see corresponding `AddModule' command below).
# Then enable the DSO feature for particular modules individually
# by replacing their `AddModule' command with `SharedModule' and
# change the filename extension from `.o' to `.so'.
#
# Sometimes the DSO files need to be linked against other shared
# libraries to explicitly resolve symbols from them when the
# httpd program not already contains references to them. For
# instance when buidling mod_auth_db as a DSO you need to link
# the DSO against the libdb explicity because the Apache kernel
# has no references for this library. But the problem is that
# this "chaining" is not supported on all platforms. Although one
# usually can link a DSO against another DSO without linker
# complains the linkage is not really done on these platforms.
# So, when you receive "unresolved symbol" errors under runtime
# when using the LoadModule directive for a particular module try
# to enable the SHARED_CHAIN rule below.

#CFLAGS_SHLIB=
#LD_SHLIB=
#LDFLAGS_SHLIB=
#LDFLAGS_SHLIB_EXPORT=

Rule SHARED_CORE=default
Rule SHARED_CHAIN=default

No comments:

Post a Comment