Opened 7 years ago

Closed 7 years ago

#335 closed defect (fixed)

Weird configuration summary for hash libs

Reported by: Owned by:
Priority: trivial Milestone:
Component: nginx-core Version: 1.3.x
Keywords: Cc:
uname -a:
nginx -V: 1.2.8 and 1.3.16


I'm building nginx from the source and I've just noticed a weirdness at the end of the ./configure run, both for 1.2.8 and 1.3.16, the summary doesn't seem to match the checks above:

checking for system md library ... not found
checking for system md5 library ... not found
checking for OpenSSL md5 crypto library ... found
checking for sha1 in system md library ... not found
checking for OpenSSL sha1 crypto library ... found
checking for zlib library ... found
creating objs/Makefile

Configuration summary
  + using system PCRE library
  + OpenSSL library is not used
  + md5: using system crypto library
  + sha1: using system crypto library
  + using system zlib library

There seems to be a contradiction between 'checking for system md5 library ... not found' and 'md5: using system crypto library' (same for SHA1).

I've traced it to the following configuration script: auto/lib/md5/conf, line 83:

        if [ $ngx_found = no ]; then

            # OpenSSL crypto library

            ngx_feature="OpenSSL md5 crypto library"
            ngx_feature_incs="#include <openssl/md5.h>"
            ngx_feature_test="MD5_CTX md5; MD5_Init(&md5)"
            . auto/feature

            ngx_md5_lib="system crypto"

            if [ $ngx_found = yes ]; then
                have=NGX_HAVE_OPENSSL_MD5_H . auto/have
                have=NGX_HAVE_MD5 . auto/have

The 'ngx_md5_lib' variable should probably be set to something else to reflect the use of the OpenSSL library. In auto/lib/conf, it is set to 'OpenSSL' when the OpenSSL library is used. I understand that OpenSSL as a library isn't used in my case, but maybe something more descriptive like 'system crypto (OpenSSL)' would feel better here.

The scripts for SHA1 are very similar.

Change History (1)

comment:1 by Maxim Dounin, 7 years ago

Resolution: fixed
Status: newclosed

The ngx_md5_lib variable is fine - it reflects use of system crypto library, i.e. -lcrypto. Overral configure output is made a bit better by [b0a616778038].

Note: See TracTickets for help on using tickets.