Hi,

I apologize if this is a clueless newbie question, but here goes:

I'm writing a new module, mod_foo.so, in C. (OK, I realize this is the
mod_perl list, but I couldn't find an appropriate "mod_C" forum or
anything in the archives and I don't think this question has anything to
do with C.)

Running: apache_1.3.20
Linux 2.4.2.2

This module builds on two libraries, libfoo.a (authored by me) and
libpcap.a. (libfoo.a contains calls to libpcap.a).

I've been reading O'Reilly's "Writing Apache Modules with Perl and C"
and getting advice from someone more knowledgeable than I about writing
modules for Apache. He's managed to get the code to work, but I have
not.

I've done lots of playing around (following the examples in the O'Reilly

book) trying to get stuff to work, but it all results in the same error.

Here's the short and sweet of what I've done (after a complete generic
install with APACI) that I think should work, but doesn't.

Added one line to httpd.conf:
LoadModule foo_module /usr/lib/apache/mod_foo.so

% cd /foo/path
% apxs -c -I../../include -L../../lib/linux -lfoo -lpcap -o mod_foo.so
mod_foo.c
% apxs -i mod_foo.so
% cd /usr/local/apache
% /usr/local/apache/configure --enable-module=so
--prefix=/usr/local/cache
% make
% make install
% /usr/local/apache/bin/apachectl start
Syntax error on line 205 of /usr/local/apache/conf/httpd.conf:
API module structure `foo_module' in file /usr/lib/apache/mod_foo.so is
garbled - perhaps this is not an Apache module DSO?
bin/apachectl start: httpd could not be started

There's nothing in the error log.

Any clue what I'm doing wrong or how to debug this?

My first thought was that libpcap.a and/or libfoo.a needed to be built
with -fPIC, but that didn't seem to help.

Thanks,

--Eric

P.S I'm relatively new to writing Apache modules, so please type slowly.

P.P.S This is for work I'm doing toward the next release of FEZhead, an
open source global load balancer. http://www.fezhead.org/.



Reply via email to