On Sun, Nov 21, 2010 at 3:22 PM, Anurag Chourasiathose two functions aren't APIs (not expected to be called by
<anurag.chourasia@xxxxxxxxx> wrote:
> All,
> I hope you could help me with a mod_wsgi load error upon startup of apache.
> This is affecting one of our site Go Live and I would appreciate any help
> offered in this regard.
> The error upon startup of Apache is as follows
> root [zibal]% ./usr/local/apache2/bin/apachectl restart
> httpd: Syntax error on line 53 of /usr/local/apache2/conf/httpd.conf:
> Cannot load /usr/local/apache2/modules/mod_wsgi.so into server:
> rtld:0712-001 Symbol ap_cleanup_scoreboard was referenced from module
> /usr/local/apache2/modules/mod_wsgi.so(), but a runtime definition of the
> symbol was not found.
> rtld: 0712-001 Symbol ap_accept_lock_mech was referenced from module
> /usr/local/apache2/modules/mod_wsgi.so(), but a runtime definition of the
> symbol was not found.
modules), so maybe they aren't visible?
perhaps there are special instructions *somewhere* from someone who
has gotten mod_wsgi to work on AIX, as it is not supposed to work
patch httpd with this, rebuild completely, and see if that gets you
going; the two missing symbols should be exported with this patch
Index: include/mpm_common.h
===================================================================
--- include/mpm_common.h (revision 1034992)
+++ include/mpm_common.h (working copy)
@@ -298,7 +298,7 @@
* The system mutex implementation to use for the accept mutex.
*/
#ifdef AP_MPM_WANT_SET_ACCEPT_LOCK_MECH
-extern apr_lockmech_e ap_accept_lock_mech;
+AP_DECLARE_DATA extern apr_lockmech_e ap_accept_lock_mech;
extern const char ap_valid_accept_mutex_string[];
const char *ap_mpm_set_accept_lock_mech(cmd_parms *cmd, void *dummy,
const char *arg);
Index: include/scoreboard.h
===================================================================
--- include/scoreboard.h (revision 1034992)
+++ include/scoreboard.h (working copy)
@@ -178,7 +178,7 @@
apr_status_t ap_reopen_scoreboard(apr_pool_t *p, apr_shm_t **shm, int
detached);
void ap_init_scoreboard(void *shared_score);
AP_DECLARE(int) ap_calc_scoreboard_size(void);
-apr_status_t ap_cleanup_scoreboard(void *d);
+AP_DECLARE(apr_status_t) ap_cleanup_scoreboard(void *d);
AP_DECLARE(void) ap_create_sb_handle(ap_sb_handle_t **new_sbh, apr_pool_t *p,
int child_num, int thread_num);
--
>
> I am pasting the output of nm command on the apache executable and those
> symbols seem to exist.
> root [zibal]% nm ./usr/local/apache2/bin/httpd | grep ap_accept_lock_mech
> ap_accept_lock_mech D 536880332
> ap_accept_lock_mech d 536900392 4
> ap_accept_lock_mech:G879 - 0
> root [zibal]% nm ./usr/local/apache2/bin/httpd | grep ap_cleanup_scoreboard
> .ap_cleanup_scoreboard T 268613428 212
> ap_cleanup_scoreboard D 536890068
> ap_cleanup_scoreboard d 536890068 12
> ap_cleanup_scoreboard d 536899972 4
> ap_cleanup_scoreboard:F385 - 2976
>
> I am wondering if there is a way to statically link mod_wsgi into apache?
> Please guide.
> I built Apache 2.2.17 and Mod_Wsgi 3.3 using the source and the compiler was
> gcc-4.2.
>
> Here is the Apache Build Information
> =====================================
> root [zibal]% ./usr/local/apache2/bin/httpd -V
> Server version: Apache/2.2.17 (Unix)
> Server built: Nov 18 2010 05:04:25
> Server's Module Magic Number: 20051115:25
> Server loaded: APR 1.4.2, APR-Util 1.3.10
> Compiled using: APR 1.4.2, APR-Util 1.3.10
> Architecture: 32-bit
> Server MPM: Prefork
> threaded: no
> forked: yes (variable process count)
> 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_SYSVSEM_SERIALIZE
> -D APR_USE_PTHREAD_SERIALIZE
> -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
> -D APR_HAS_OTHER_CHILD
> -D AP_HAVE_RELIABLE_PIPED_LOGS
> -D DYNAMIC_MODULE_LIMIT=128
> -D HTTPD_ROOT="/usr/local/apache2"
> -D SUEXEC_BIN="/usr/local/apache2/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"
> Contents of config.nice file are as follows
> ++++++++++++++++++++++++
> #! /bin/sh
> #
> # Created by configure
> CC="gcc"; export CC
> "./configure" \
> "CC=gcc" \
> "$@"
> ++++++++++++++++++++++++
>
>
> Information about Apache Modules Loaded
> =======================================
> root [zibal]% ./usr/local/apache2/bin/httpd -l
> Compiled in modules:
> core.c
> mod_authn_file.c
> mod_authn_default.c
> mod_authz_host.c
> mod_authz_groupfile.c
> mod_authz_user.c
> mod_authz_default.c
> mod_auth_basic.c
> mod_include.c
> mod_filter.c
> mod_log_config.c
> mod_env.c
> mod_setenvif.c
> mod_version.c
> prefork.c
> http_core.c
> mod_mime.c
> mod_status.c
> mod_autoindex.c
> mod_asis.c
> mod_cgi.c
> mod_negotiation.c
> mod_dir.c
> mod_actions.c
> mod_userdir.c
> mod_alias.c
> mod_so.c
>
> In httpd.conf, i only have the following LoadModule Statement
> =============================================================
> LoadModule wsgi_module modules/mod_wsgi.so
> Information about Global Accept Mutex
> =====================================
> Valid accept mutexes for this platform and MPM are: default, fcntl,
> sysvsem, posixsem, pthread.
> Alo, here is my build session transcript while building mod_wsgi.....There
> was absolutely no error during build.
> root [zibal]% make
> /usr/local/apache2/bin/apxs -c -I/usr/local/include/python2.6
> -DNDEBUG mod_wsgi.c -L/usr/local/lib -L/usr/local/lib/python2.6/config
> -lpython2.6 -ldl -lm
> /usr/local/apache2/build/libtool --silent --mode=compile gcc -prefer-pic
> -U__STR__ -D_THREAD_SAFE -D_USE_IRS -D_LARGEFILE64_SOURCE -g -O2 -pthread
> -I/usr/local/apache2/include -I/usr/local/apache2/include
> -I/usr/local/apache2/include -I/usr/local/include
> -I/usr/local/include/python2.6 -DNDEBUG -c -o mod_wsgi.lo mod_wsgi.c &&
> touch mod_wsgi.slo
> /usr/local/apache2/build/libtool --silent --mode=link gcc -o mod_wsgi.la
> -rpath /usr/local/apache2/modules -module -avoid-version -Wl,-brtl
> mod_wsgi.lo -L/usr/local/lib -L/usr/local/lib/python2.6/config -lpython2.6
> -ldl -lm
> Target "all" is up to date.
> root [zibal]% make install
> /usr/local/apache2/bin/apxs -i -S
> LIBEXECDIR=/usr/local/apache2/modules -n 'mod_wsgi' mod_wsgi.la
> /usr/local/apache2/build/instdso.sh
> SH_LIBTOOL='/usr/local/apache2/build/libtool' mod_wsgi.la
> /usr/local/apache2/modules
> rm -f /usr/local/apache2/modules/mod_wsgi.so
> /usr/local/apache2/build/libtool --mode=install cp mod_wsgi.la
> /usr/local/apache2/modules/
> cp .libs/mod_wsgi.so /usr/local/apache2/modules/mod_wsgi.so
> cp .libs/mod_wsgi.lai /usr/local/apache2/modules/mod_wsgi.la
> cp .libs/mod_wsgi.a /usr/local/apache2/modules/mod_wsgi.a
> chmod 644 /usr/local/apache2/modules/mod_wsgi.a
> ranlib /usr/local/apache2/modules/mod_wsgi.a
> ----------------------------------------------------------------------
> Libraries have been installed in:
> /usr/local/apache2/modules
> If you ever happen to want to link against installed libraries
> in a given directory, LIBDIR, you must either use libtool, and
> specify the full pathname of the library, or use the `-LLIBDIR'
> flag during linking and do at least one of the following:
> - add LIBDIR to the `LIBPATH' environment variable
> during execution
> - use the
> `-Wl,-blibpath:LIBDIR:/opt/freeware/lib/gcc/powerpc-ibm-aix5.3.0.0/4.2.4:/opt/freeware/lib/gcc/powerpc-ibm-aix5.3.0.0/4.2.4/../../..:/usr/lib:/lib
> ' linker flag
> See any operating system documentation about shared libraries for
> more information, such as the ld(1) and ld.so(8) manual pages.
> ----------------------------------------------------------------------
> chmod 755 /usr/local/apache2/modules/mod_wsgi.so
> Please let me know if I should provide some additional information.
> Regards,
> Anurag
Born in Roswell... married an alien...
---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@xxxxxxxxxxxxxxxx
" from the digest: users-digest-unsubscribe@xxxxxxxxxxxxxxxx
For additional commands, e-mail: users-help@xxxxxxxxxxxxxxxx