nginx-0.7.44

Jérôme Loyet jerome at loyet.net
Tue Mar 24 10:58:34 MSK 2009


2009/3/23 Igor Sysoev <is at rambler-co.ru>:
> 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 ?

Hum ... it seems that yesterday I smoked some very good stuff. As I
tried many things I got confused myself ... I don't know why the hell
I found a bug there as it was working .... I'm very sorry to have you
spent some time on my problem which even didn't exist (except in my
smoked mind :p)

Thanks you
++ Jerome





More information about the nginx mailing list