nginx-0.7.44

Igor Sysoev is at rambler-co.ru
Mon Mar 23 23:04:46 MSK 2009


On Mon, Mar 23, 2009 at 06:51:50PM +0100, J?r?me Loyet wrote:

> >> >> > As your OpenSSL is set in non-standard place (I have just tested building
> >> >> > on Debian with standard /usr/include/openssl/md5.h), you should use
> >> >> > something like this:
> >> >> >
> >> >> > --with-cc-opt=-I/usr/local/openssl-0.9.6/include
> >> >>
> >> >> it's not working because of the #ifdef in md5.h:
> >> >>
> >> >> #if (NGX_HAVE_OPENSSL_MD5_H)
> >> >> #include <openssl/md5.h>
> >> >> #else
> >> >> #include <md5.h>
> >> >> #endif
> >> >>
> >> >> Has NGX_HAVE_OPENSSL_MD5_H is not defined, it looks for md5.h instead
> >> >> of openssl/md5.h. And if I use
> >> >> --with-cc-opt=-I/usr/local/openssl-0.9.6/include/openssl it won't work
> >> >> because the function name are from OpenSSL lib and not from BSD kernel
> >> >> (MD5_Init vs MD5Init).
> >> >>
> >> >> I have to make configure to set NGX_HAVE_OPENSSL_MD5_H ... do you have
> >> >> any clue ? I'm still searching
> >> >
> >> > -  --with-cc-opt=-I/usr/local/openssl-0.9.6/include/openssl
> >> > +  --with-cc-opt=-I/usr/local/openssl-0.9.6/include
> >>
> >> Here are configuration options:
> >> ./configure --with-http_addition_module --with-http_flv_module
> >> --with-http_gzip_static_module --with-http_realip_module
> >> --with-http_stub_status_module --with-http_sub_module
> >> --with-cc-opt=-I/usr/local/openssl-0.9.6/include
> >>
> >> And a part of the output:
> >> [...]
> >> checking for rsaref md5 library ... not found
> >> checking for rsaref md library ... not found
> >> checking for OpenSSL md5 crypto library ... not found
> >> [...]
> >> Configuration summary
> >>   + using system PCRE library
> >>   + OpenSSL library is not used
> >>   + md5 library is not found
> >>   + sha1 library is not used
> >>   + using system zlib library
> >
> > What is in objs/autoconf.err under the line:
> > checking for OpenSSL md5 crypto library
> > ?
> >
> >> as OpenSSL md5 crypto library is not found, NGX_HAVE_OPENSSL_MD5_H is
> >> not defined by configure. So ngx_md5.h will try to include <md5.h> and
> >> not <openssl/md5.h>
> >>
> >> #if (NGX_HAVE_OPENSSL_MD5_H)
> >> #include <openssl/md5.h>
> >> #else
> >> #include <md5.h>
> >> #endif
> >>
> >> And make stops at compilation time when including ngx_md5.h from
> >> ngx_http_file_cache.c
> >>
> >> How to tell to configure script to lookup in /usr/local/openssl-0.9.6
> >> for headers and lib from openssl ?
> >
> > This may be not include problem, but library's one.
> > Where is md5.h and libcrypto.so on your system:
> >
> > /usr/local/openssl-0.9.6/include/openssl/md5.h
> > /usr/local/openssl-0.9.6/lib/libcrypto.so
> >
> > ?
> 
> I found a small bug which caused my death on this :)
> 
> --- auto/feature.orig   Mon Mar 23 18:40:55 2009
> +++ auto/feature        Mon Mar 23 18:41:11 2009
> @@ -39,7 +39,7 @@
> 
> 
>  ngx_test="$CC $CC_TEST_FLAGS $CC_AUX_FLAGS $ngx_feature_inc_path \
> -          -o $NGX_AUTOTEST $NGX_AUTOTEST.c $NGX_LD_OPT $ngx_feature_libs"
> +          -o $NGX_AUTOTEST $NGX_AUTOTEST.c $NGX_CC_OPT $NGX_LD_OPT
> $ngx_feature_libs"
> 
>  ngx_feature_inc_path=
> 
> 
> In auto/feature the NGX_CC_OPT variable (from --with-cc-opt configure
> option) was not used. So I could set whatever I wanted through
> --with-cc-opt it would never be looked at.
> 
> now everything works fine. In my case I have to specify both
> with-cc-opt and with-cc-opt:
> --with-cc-opt=-I/usr/local/openssl-0.9.6/include
> --with-ld-opt=-L/usr/local/openssl-0.9.6/lib
> 
> Does this patch sound good to you igor ?

The $CC_TEST_FLAGS should have $NGX_CC_OPT.
What is in objs/autoconf.err ?


-- 
Igor Sysoev
http://sysoev.ru/en/





More information about the nginx mailing list