Hi Chris,
ChrisS schrieb:
I am trying to compile mod_jk current on Solaris 10 x86 (intel). After
spending a huge amount of time, I finally get it to compile and this is
the output I receive.
bash-3.00#./configure --with-apxs=/usr/apache/bin/apxs
checking build system type... i386-pc-solaris2.10
checking host system type... i386-pc-solaris2.10
checking target system type... i386-pc-solaris2.10
...
building connector for "apache-1.3"
checking for gcc... /usr/sfw/bin/gcc
Yu have gcc installed, and configure finds it as the first compiler it
is looking for. It will use gcc to detect, how the build system should
optimise itself to your environment.
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
...
configure: WARNING: Using CC from environment:
configure: WARNING: CC="/usr/sfw/bin/gcc"
configure: WARNING: instead of CC from apxs:
configure: WARNING: CC="cc"
configure: WARNING: If "make" throws an error of the form
configure: WARNING: "libtool: compile: unable to infer tagged
configuration"configure: WARNING: "libtool: compile: specify a tag
with `--tag'"
configure: WARNING: try running configure without setting CC,
configure: WARNING: or at least CC should start with "cc"
bash-3.00#
The apxs installed with your httpd tells us, that you httpd has been
compiled with a different toolchain. it wasn't produced with a gcc based
toolchain, but instead with Sun tools. I guess, the whole httpd is the
one coming with Solaris.
I have not been able to figure out the warnings on this as of yet and I
have tried setting various enviroment variables to combat it, all to no
avail.
This is the output from my gmake attempt:
bash-3.00#gmake
Making all in common
...
gmake[1]: Entering directory `/www/connectors/jk/native/apache-1.3'
/bin/sh ../libtool --mode=link /usr/sfw/bin/gcc -o mod_jk.la -module
-rpath /usr/apache/libexec mod_jk.lo ../common/jk_ajp12_worker.lo
../common/jk_connect.lo ../common/jk_msg_buff.lo ../common/jk_util.lo
../common/jk_ajp13.lo ../common/jk_pool.lo ../common/jk_worker.lo
../common/jk_ajp13_worker.lo ../common/jk_lb_worker.lo
../common/jk_sockbuf.lo ../common/jk_map.lo
../common/jk_uri_worker_map.lo ../common/jk_ajp14.lo
../common/jk_ajp14_worker.lo ../common/jk_md5.lo ../common/jk_shm.lo
../common/jk_ajp_common.lo ../common/jk_context.lo ../common/jk_url.lo
../common/jk_status.lo
/usr/sfw/bin/gcc -shared -Wl,-h -Wl,mod_jk.so.0 -o
.libs/mod_jk.so.0.0.0 .libs/mod_jk.o ../common/.libs/jk_ajp12_worker.o
../common/.libs/jk_connect.o ../common/.libs/jk_msg_buff.o
../common/.libs/jk_util.o ../common/.libs/jk_ajp13.o
../common/.libs/jk_pool.o ../common/.libs/jk_worker.o
../common/.libs/jk_ajp13_worker.o ../common/.libs/jk_lb_worker.o
../common/.libs/jk_sockbuf.o ../common/.libs/jk_map.o
../common/.libs/jk_uri_worker_map.o ../common/.libs/jk_ajp14.o
../common/.libs/jk_ajp14_worker.o ../common/.libs/jk_md5.o
../common/.libs/jk_shm.o ../common/.libs/jk_ajp_common.o
../common/.libs/jk_context.o ../common/.libs/jk_url.o
../common/.libs/jk_status.o -lc
gcc: .libs/mod_jk.o: No such file or directory
gcc: ../common/.libs/jk_ajp12_worker.o: No such file or directory
gcc: ../common/.libs/jk_connect.o: No such file or directory
...
gmake[1]: *** [mod_jk.la] Error 1
gmake[1]: Leaving directory `/www/connectors/jk/native/apache-1.3'
gmake: *** [all-recursive] Error 1
bash-3.00#
The module build system for mod_jk is based on the standard module build
system for Apache httpd. The philosophy is: the module asks httpd how it
got build and tries to use the same commands/flags in order to make the
module most likely binary compatible with the web server.
The facility to enable such a build system is apxs, which comes with
htpd, and which can be asked about the original build flags used for httpd.
Our mod_jk configure asks apxs about the right flags, but then you are
actually using a totally different toolchain (gcc based), than the one
used to build apache httpd (Sun Studio). That's a hard and unstable way
to go. You could try to write a gcc wraper named cc which tries to
tralsate all used cc flags to gcc ones, but that's more an experiment
than building production software.
So you should either: get the same toolchain, that was used to build
your Apache httpd and use that toolchain to build your module. In your
case: install Sun studio and take care, that configure does find
/usr/ccs/bin/cc and nor /usr/sfw/bin/gcc. It could well be, that it's
not enough to put /usr/ccs/bin in front f /zsr/sfw/bin in the PATH, but
that you would furthermore need to temporarily remove/rename gcc, s.t.
configure doesn't find it. Removing the whole /usr/sfw/bin from the PATH
might be to string, because e.g. you'll need gmake form that path.
Or: you switch over to the gcc (/usr/sfw/) toolchain completely, which
would mean starting with building Apache httpd with this toolchain (or
find some reliable build somewhere).
HTH
Rainer
---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]