>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! ]