>Number: 2856 >Category: mod_jserv >Synopsis: cannot build apache server including mod_jserv on Solaris >Confidential: no >Severity: critical >Priority: medium >Responsible: jserv >State: open >Class: sw-bug >Submitter-Id: apache >Arrival-Date: Fri Aug 14 13:40:00 PDT 1998 >Last-Modified: >Originator: [EMAIL PROTECTED] >Organization: apache >Release: 1.3.1 >Environment: Solaris 2.5.1/gcc SunOS cooke 5.5 Generic sun4m sparc SUNW,SPARCstation-20 >Description: I am attempting to add the mod_jserv module as explicitly defined in the INSTALL document and also off the web site. I am running on a Solaris 2.5.1 Sparc.
As instructed I added the following line at the end of the Configuration file: Module jserv_module mod_jserv.o I ran ./Configure with the following result: Using config file: Configuration Creating Makefile + configured for Solaris 250 platform + setting C compiler to gcc + adding selected modules + checking for system header files ^[[B + doing sanity check on compiler and options Creating Makefile in support Creating Makefile in main Creating Makefile in ap Creating Makefile in regex Creating Makefile in os/unix Creating Makefile in modules/standard I then performed the make to build the server: ===> os/unix gcc -c -I../../os/unix -I../../include -DSOLARIS2=250 os.c gcc -c -I../../os/unix -I../../include -DSOLARIS2=250 os-inline.c rm -f libos.a ar cr libos.a os.o os-inline.o ranlib libos.a <=== os/unix ===> ap gcc -c -I../os/unix -I../include -DSOLARIS2=250 ap_execve.c gcc -c -I../os/unix -I../include -DSOLARIS2=250 ap_cpystrn.c gcc -c -I../os/unix -I../include -DSOLARIS2=250 ap_signal.c gcc -c -I../os/unix -I../include -DSOLARIS2=250 ap_slack.c gcc -c -I../os/unix -I../include -DSOLARIS2=250 ap_snprintf.c rm -f libap.a ar cr libap.a ap_execve.o ap_cpystrn.o ap_signal.o ap_slack.o ap_snprintf.o ranlib libap.a <=== ap ===> main gcc -c -I../os/unix -I../include -DSOLARIS2=250 gen_test_char.c gcc -DSOLARIS2=250 -o gen_test_char gen_test_char.o -lsocket -lnsl ./gen_test_char >test_char.h gcc -c -I../os/unix -I../include -DSOLARIS2=250 alloc.c gcc -c -I../os/unix -I../include -DSOLARIS2=250 buff.c gcc -c -I../os/unix -I../include -DSOLARIS2=250 http_config.c gcc -c -I../os/unix -I../include -DSOLARIS2=250 http_core.c gcc -c -I../os/unix -I../include -DSOLARIS2=250 http_log.c gcc -c -I../os/unix -I../include -DSOLARIS2=250 http_main.c gcc -c -I../os/unix -I../include -DSOLARIS2=250 http_protocol.c gcc -c -I../os/unix -I../include -DSOLARIS2=250 http_request.c gcc -c -I../os/unix -I../include -DSOLARIS2=250 http_vhost.c gcc -c -I../os/unix -I../include -DSOLARIS2=250 util.c gcc -c -I../os/unix -I../include -DSOLARIS2=250 util_date.c gcc -c -I../os/unix -I../include -DSOLARIS2=250 util_script.c gcc -c -I../os/unix -I../include -DSOLARIS2=250 util_uri.c gcc -c -I../os/unix -I../include -DSOLARIS2=250 util_md5.c gcc -c -I../os/unix -I../include -DSOLARIS2=250 md5c.c gcc -c -I../os/unix -I../include -DSOLARIS2=250 rfc1413.c gcc -c -I../os/unix -I../include -DSOLARIS2=250 fnmatch.c rm -f libmain.a ar cr libmain.a alloc.o buff.o http_config.o http_core.o http_log.o http_main.o http_protocol.o http_request.o http_vhost.o util.o util_date.o util_script.o util_uri.o util_md5.o md5c.o rfc1413.o fnmatch.o ranlib libmain.a <=== main ===> modules ===> modules/standard gcc -c -I../../os/unix -I../../include -DSOLARIS2=250 mod_env.c gcc -c -I../../os/unix -I../../include -DSOLARIS2=250 mod_log_config.c gcc -c -I../../os/unix -I../../include -DSOLARIS2=250 mod_mime.c gcc -c -I../../os/unix -I../../include -DSOLARIS2=250 mod_negotiation.c gcc -c -I../../os/unix -I../../include -DSOLARIS2=250 mod_include.c gcc -c -I../../os/unix -I../../include -DSOLARIS2=250 mod_autoindex.c gcc -c -I../../os/unix -I../../include -DSOLARIS2=250 mod_dir.c gcc -c -I../../os/unix -I../../include -DSOLARIS2=250 mod_cgi.c gcc -c -I../../os/unix -I../../include -DSOLARIS2=250 mod_asis.c gcc -c -I../../os/unix -I../../include -DSOLARIS2=250 mod_imap.c gcc -c -I../../os/unix -I../../include -DSOLARIS2=250 mod_actions.c gcc -c -I../../os/unix -I../../include -DSOLARIS2=250 mod_userdir.c gcc -c -I../../os/unix -I../../include -DSOLARIS2=250 mod_alias.c gcc -c -I../../os/unix -I../../include -DSOLARIS2=250 mod_access.c gcc -c -I../../os/unix -I../../include -DSOLARIS2=250 mod_auth.c gcc -c -I../../os/unix -I../../include -DSOLARIS2=250 mod_setenvif.c rm -f libstandard.a ar cr libstandard.a mod_env.o mod_log_config.o mod_mime.o mod_negotiation.o mod_include.o mod_autoindex.o mod_dir.o mod_cgi.o mod_asis.o mod_imap.o mod_actions.o mod_userdir.o mod_alias.o mod_access.o mod_auth.o mod_setenvif.o ranlib libstandard.a <=== modules/standard <=== modules gcc -c -I./os/unix -I./include -DSOLARIS2=250 modules.c gcc -c -I./os/unix -I./include -DSOLARIS2=250 buildmark.c gcc -DSOLARIS2=250 \ -o httpd buildmark.o modules.o mod_jserv.o modules/standard/libstandard.a main/libmain.a ./os/unix/libos.a ap/libap.a -lsocket -lnsl gcc: mod_jserv.o: No such file or directory make: *** [target_static] Error 1 The build process is not picking up the dependancy for mod_jserv.o. If I modify the makfile so that the mod_jserv.o is built I get symbol reference errors on linking mod_jserv.o HELP PLEASE! If you know what the problem is I would appreciate enlightenment. I have included the Makefile generated by ./Configure. Thanks... Donald [EMAIL PROTECTED] --------------------------------------------------------------- makefile follows: ## ## Apache Makefile, automatically generated by Configure script. ## Hand-edited changes will be lost if the Configure script is re-run. ## Sources: - ./Makefile.config (via Configuration) ## - ./Makefile.tmpl ## MODULES= \ mod_jserv.o \ modules/standard/libstandard.a TARGET=httpd SUBDIRS=os/unix ap main modules SUBTARGET=target_static SHLIB_SUFFIX_LIST= ## ## Inherited Makefile options from Configure script ## (Begin of automatically generated section) ## SRCDIR=. EXTRA_CFLAGS= EXTRA_LDFLAGS= EXTRA_LIBS= EXTRA_INCLUDES= EXTRA_DEPS= CC=gcc OPTIM= CFLAGS1= -DSOLARIS2=250 OSDIR=$(SRCDIR)/os/unix INCDIR=$(SRCDIR)/include INCLUDES0=-I$(OSDIR) -I$(INCDIR) INCLUDES1= LDFLAGS1= MFLAGS_STATIC=--no-print-directory REGLIB= RANLIB=ranlib SHELL=/bin/sh LIBS1= -lsocket -lnsl ## ## (End of automatically generated section) ## CFLAGS=$(OPTIM) $(CFLAGS1) $(EXTRA_CFLAGS) LIBS=$(EXTRA_LIBS) $(LIBS1) INCLUDES=$(INCLUDES1) $(INCLUDES0) $(EXTRA_INCLUDES) LDFLAGS=$(LDFLAGS1) $(EXTRA_LDFLAGS) OBJS= \ modules.o \ $(MODULES) \ main/libmain.a \ $(OSDIR)/libos.a \ ap/libap.a .c.o: $(CC) -c $(INCLUDES) $(CFLAGS) $< all: Configuration $(TARGET) Configuration: Configuration.tmpl @echo "++ File 'Configuration' older than 'Configuration.tmpl'," @echo "++ or still doesn't exist. Please consider copying 'Configuration .tmpl'" @echo "++ to 'Configuration', editing and rerunning 'Configure'." @echo "++ If not, you will at least have to touch 'Configuration'." @false $(TARGET): $(EXTRA_DEPS) $(SUBTARGET) target_static: subdirs modules.o $(CC) -c $(INCLUDES) $(CFLAGS) buildmark.c $(CC) $(CFLAGS) $(LDFLAGS) $(LDFLAGS_SHLIB_EXPORT) \ -o $(TARGET) buildmark.o $(OBJS) $(REGLIB) $(LIBS) target_shared: libhttpd.ep $(CC) $(INCLUDES) $(CFLAGS) $(LDFLAGS) $(LDFLAGS_SHLIB_EXPORT) \ -o $(TARGET) -DSHARED_CORE_BOOTSTRAP main/http_main.c libhttpd.ep: libhttpd.so $(CC) $(INCLUDES) $(CFLAGS) $(LDFLAGS) $(LDFLAGS_SHLIB_EXPORT) \ -o libhttpd.ep -DSHARED_CORE_TIESTATIC main/http_main.c \ -L. -lhttpd $(LIBS) libhttpd.so: subdirs modules.o $(CC) -c $(INCLUDES) $(CFLAGS) buildmark.c $(LD_SHLIB) $(LDFLAGS_SHLIB) -o libhttpd.so buildmark.o $(OBJS) $(REGLIB ) @if [ ".$(SHLIB_SUFFIX_LIST)" != . ]; then \ rm -f libhttpd.so.*; \ for suffix in $(SHLIB_SUFFIX_LIST) ""; do \ [ ".$$suffix" = . ] && continue; \ echo "ln libhttpd.so libhttpd.so.$$suffix"; \ ln libhttpd.so libhttpd.so.$$suffix; \ done; \ fi subdirs: @for i in $(SUBDIRS); do \ echo "===> $(SDP)$$i"; \ ( cd $$i && $(MAKE) $(MFLAGS_STATIC) SDP='$(SDP)' CC='$(CC)' AUX _CFLAGS='$(CFLAGS)' RANLIB='$(RANLIB)') || exit 1; \ echo "<=== $(SDP)$$i"; \ done support: support-dir support-dir: @echo "===> $(SDP)support"; \ cd support; $(MAKE) $(MFLAGS_STATIC) SDP='$(SDP)' CC='$(CC)' AUX_CFLAGS= '$(CFLAGS)' RANLIB='$(RANLIB)'; \ echo "<=== $(SDP)support" clean: rm -f $(TARGET) libhttpd.* *.o @for i in $(SUBDIRS); do \ echo "===> $(SDP)$$i"; \ ( cd $$i && $(MAKE) $(MFLAGS_STATIC) SDP='$(SDP)' $@ ) || exit 1 ; \ echo "<=== $(SDP)$$i"; \ done distclean: -rm -f $(TARGET) *.o @for i in $(SUBDIRS); do \ echo "===> $(SDP)$$i"; \ ( cd $$i && $(MAKE) $(MFLAGS_STATIC) SDP='$(SDP)' $@ ) || exit 1 ; \ echo "<=== $(SDP)$$i"; \ done -rm -f include/ap_config_auto.h -rm -f modules.c -rm -f modules/Makefile -rm -f regex/Makefile -rm -f Makefile.config -rm -f Makefile install: @echo "++ Sorry, no installation procedure available at this level." @echo "++ Go to the parent directory for an 'install' target." # We really don't expect end users to use this rule. It works only with # gcc, and rebuilds Makefile.tmpl. You have to re-run Configure after # using it. depend: cp Makefile.tmpl Makefile.tmpl.bak \ && sed -ne '1,/^# DO NOT REMOVE/p' Makefile.tmpl > Makefile.new \ && gcc -MM $(INCLUDES) $(CFLAGS) *.c >> Makefile.new \ && sed -e '1,$$s: $(INCDIR)/: $$(INCDIR)/:g' \ -e '1,$$s: $(OSDIR)/: $$(OSDIR)/:g' Makefile.new \ > Makefile.tmpl \ && rm Makefile.new for i in $(SUBDIRS); do \ ( cd $$i && $(MAKE) CC='$(CC)' AUX_CFLAGS='$(CFLAGS)' RANLIB='$(RANL IB)' depend ) || exit 1; \ done #Dependencies $(OBJS): Makefile # DO NOT REMOVE buildmark.o: buildmark.c include/ap_config.h include/ap_config_auto.h \ os/unix/os.h include/ap_ctype.h include/hsregex.h include/httpd.h \ include/alloc.h include/buff.h include/ap.h include/util_uri.h modules.o: modules.c include/httpd.h include/ap_config.h \ include/ap_config_auto.h os/unix/os.h include/ap_ctype.h \ include/hsregex.h include/alloc.h include/buff.h include/ap.h \ include/util_uri.h include/http_config.h >How-To-Repeat: >Fix: >Audit-Trail: >Unformatted: [In order for any reply to be added to the PR database, ] [you need to include <[EMAIL PROTECTED]> in the Cc line ] [and leave the subject line UNCHANGED. This is not done] [automatically because of the potential for mail loops. ] [If you do not include this Cc, your reply may be ig- ] [nored unless you are responding to an explicit request ] [from a developer. ] [Reply only with text; DO NOT SEND ATTACHMENTS! ]