I'm compiling the module with g++ and installing with 'apxs -i'

Here's the Makefile:

######################################################################
#   the used tools
APXS=apxs
APACHECTL=apachectl

# Get all of apxs's internal values.
APXS_CC=`$(APXS) -q CC` APXS_TARGET=`$(APXS) -q TARGET` APXS_CFLAGS=`$(APXS) -q CFLAGS` APXS_SBINDIR=`$(APXS) -q SBINDIR` APXS_CFLAGS_SHLIB=`$(APXS) -q CFLAGS_SHLIB` APXS_INCLUDEDIR=`$(APXS) -q INCLUDEDIR` APXS_LD_SHLIB=`$(APXS) -q LD_SHLIB`
APXS_LIBEXECDIR=`$(APXS) -q LIBEXECDIR`
APXS_LDFLAGS_SHLIB=`$(APXS) -q LDFLAGS_SHLIB`
APXS_SYSCONFDIR=`$(APXS) -q SYSCONFDIR`
APXS_LIBS_SHLIB=`$(APXS) -q LIBS_SHLIB`


CFLAGS=-g -O2 -pthread -Wno-deprecated
DEFINES=-DLINUX=2 -D_REENTRANT -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -D_SVID_SOURCE -D_GNU_SOURCE -DAP_HAVE_DESIGNATED_INITIALIZER
INCLUDES=-I/root/httpd-2.0.47/srclib/apr/include -I/root/httpd-2.0.47/srclib/apr-util/include -I. -I/usr/local/apache/include
LIBS=-L/usr/local/lib -lxerces-c


#   the default target
all: mod_hello.so

# compile the shared object file. use g++ instead of letting apxs call
# ld so we end up with the right c++ stuff. We do this in two steps,
# compile and link.

# compile
mod_hello.o: mod_hello.cc mod_hello.h
   g++ -c -fPIC $(CFLAGS) $(DEFINES) $(INCLUDES) -Wall -o $@ $<

# link
mod_hello.so: mod_hello.o
g++ -fPIC -shared -o $@ $< $(APXS_LIBS_SHLIB) $(CFLAGS) $(DEFINES) $(INCLUDES) $(LIBS)


# install the shared object file into Apache
install: all
   $(APXS) -i -n 'hello' mod_hello.so

# display the apxs variables
check_apxs_vars:
   @echo APXS_CC $(APXS_CC);\
   echo APXS_TARGET $(APXS_TARGET);\
   echo APXS_CFLAGS $(APXS_CFLAGS);\
   echo APXS_SBINDIR $(APXS_SBINDIR);\
   echo APXS_CFLAGS_SHLIB $(APXS_CFLAGS_SHLIB);\
   echo APXS_INCLUDEDIR $(APXS_INCLUDEDIR);\
   echo APXS_LD_SHLIB $(APXS_LD_SHLIB);\
   echo APXS_LIBEXECDIR $(APXS_LIBEXECDIR);\
   echo APXS_LDFLAGS_SHLIB $(APXS_LDFLAGS_SHLIB);\
   echo APXS_SYSCONFDIR $(APXS_SYSCONFDIR);\
   echo APXS_LIBS_SHLIB $(APXS_LIBS_SHLIB)

#   cleanup
clean:
   -rm -f *.so *.o *~

#   install and activate shared object by reloading Apache to
#   force a reload of the shared object file
reload: install restart

#   the general Apache start/restart/stop
#   procedures
start:
   $(APACHECTL) start

restart: stop start

stop:
   $(APACHECTL) stop

tks
Hugo


Scott Cantor wrote:


How are you linking your module, and are there any other modules being
loaded that use C++ that are built with an older libstdc++? The latter will
cause the behavior you're seeing.

mod_php is a common culprit, since it uses C++.

-- Scott


--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]








--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to