You are viewing a plain text version of this content. The canonical link for it is here.
Posted to bugs@httpd.apache.org by bu...@apache.org on 2003/04/26 19:42:21 UTC
DO NOT REPLY [Bug 19349] New: -
./configure file has hardcoded locations for zlib and others
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=19349>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND
INSERTED IN THE BUG DATABASE.
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=19349
./configure file has hardcoded locations for zlib and others
Summary: ./configure file has hardcoded locations for zlib and
others
Product: Apache httpd-2.0
Version: 2.0.45
Platform: Other
OS/Version: Linux
Status: NEW
Severity: Critical
Priority: Other
Component: Build
AssignedTo: bugs@httpd.apache.org
ReportedBy: towerofpower@operamail.com
I am trying to compile Apache 2.0.x on RedHat 7.2, with source locations
of /usr/local/zlib, /usr/local/ssl, ... rather than using the RedHat
distributed files.
Problem:
./configure --prefix=/usr/local/apache2 --enable-mods-shared=most --enable-
deflate --enable-ssl --with-z=/usr/local/zlib --with-ssl=/usr/local/ssl
<code output>
checking for zlib location... /usr
</code output>
What is happening:
If your system contains zlib.h in usr/include, ./configure will use /usr
(include) as the source dir of zlib, over specified --with-z=dir.
Solution:
rename /usr/include/zlib.h;
than (after more problems)
rename /usr/include/zutil.h;
---------------------------------
Apache compiled on a virgin system is not a problem.
But if you have RedHat, or a distro with distributed files: libcrypto.so
in /lib, zlib.h in /usr/include,... and try to compile apache with zlib(or
openssl, or some other modules); you will find out that code in ./configure has
locations with hardcoded search locations that are searched BEFORE --with-
ssl=dir or --with-z=dir... Wrong lib files are used, or worse of, the build
process errors out.
In zlib, the proper --with-z=dir, will be used first; but then, for some
reason, another code block(in ./configure) will use a hardcoded location and
change the zlib field.
Now before someone goes and tells me that "/usr" means /usr/local/zlib, I have
been on this for months, following the code and trying different run arounds.
Search the code for 'zlib.h', 'zutil.h', 'openssl version'...And you will
understand.
This is the proper output after the renaming of zutil.h and zlib.h in
usr/include. Without this:
adding "-I/usr/local/zlib/include" to INCLUDES
adding "-L/usr/local/zlib/lib" to LDFLAGS
never happens.
checking whether to enable mod_deflate... checking dependencies
adding "-I/usr/local/zlib/include" to INCLUDES
adding "-L/usr/local/zlib/lib" to LDFLAGS
setting LIBS to "-lz"
checking for zlib library... found
checking zutil.h usability... yes
checking zutil.h presence... yes
checking for zutil.h... yes
checking whether to enable mod_deflate... shared (most)
I believe this code section is the culprit.
# Check whether --with-z or --without-z was given.
if test "${with_z+set}" = set; then
withval="$with_z"
if test "x$withval" != "xyes" && test "x$withval" != "x"; then
ap_zlib_base="$withval"
fi
fi;
if test "x$ap_zlib_base" = "x"; then
echo "$as_me:$LINENO: checking for zlib location" >&5
echo $ECHO_N "checking for zlib location... $ECHO_C" >&6
if test "${ap_cv_zlib+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
for dir in /usr/local /usr ; do
if test -d $dir && test -f $dir/include/zlib.h; then
ap_cv_zlib=$dir
break
fi
done
fi
---------------------------------------------------------------------
To unsubscribe, e-mail: bugs-unsubscribe@httpd.apache.org
For additional commands, e-mail: bugs-help@httpd.apache.org