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]

Reply via email to