Mercurial > hg > nginx-ranges
diff auto/unix @ 635:e67b227c8dbb default tip
Merge with current.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Mon, 25 Apr 2011 04:07:55 +0400 |
parents | 7ea1bba9a4f6 |
children |
line wrap: on
line diff
--- a/auto/unix +++ b/auto/unix @@ -109,28 +109,52 @@ ngx_feature_test="char buf[1]; ssize_t n . auto/feature -ngx_feature="strerror_r()" -ngx_feature_name="NGX_HAVE_STRERROR_R" -ngx_feature_run=yes -ngx_feature_incs="#include <string.h>" +ngx_feature="sys_nerr" +ngx_feature_name="NGX_SYS_NERR" +ngx_feature_run=value +ngx_feature_incs='#include <stdio.h>' ngx_feature_path= ngx_feature_libs= -ngx_feature_test="char buf[1024]; long n; n = strerror_r(1, buf, 1024); - if (n < 0 || n > 1024) return 1;" +ngx_feature_test='printf("%d", sys_nerr);' . auto/feature -# GNU style strerror_r() returns not length, but pointer +if [ $ngx_found = no ]; then + + # Cygiwn defines _sys_nerr + ngx_feature="_sys_nerr" + ngx_feature_name="NGX_SYS_NERR" + ngx_feature_run=value + ngx_feature_incs='#include <errno.h> + #include <stdio.h>' + ngx_feature_path= + ngx_feature_libs= + ngx_feature_test='printf("%d", _sys_nerr);' + . auto/feature +fi + + +if [ $ngx_found = no ]; then -ngx_feature="gnu style strerror_r()" -ngx_feature_name="NGX_HAVE_GNU_STRERROR_R" -ngx_feature_run=yes -ngx_feature_incs="#include <string.h>" -ngx_feature_path= -ngx_feature_libs= -ngx_feature_test="char buf[1024]; long n; n = strerror_r(1, buf, 1024); - if (n >= 0 && n < 1024) return 1;" -. auto/feature + # Solaris has no sys_nerr + ngx_feature='maximum errno' + ngx_feature_name=NGX_SYS_NERR + ngx_feature_run=value + ngx_feature_incs='#include <errno.h> + #include <stdio.h>' + ngx_feature_path= + ngx_feature_libs= + ngx_feature_test='int n; + for (n = 1; n < 1000; n++) { + errno = 0; + strerror(n); + if (errno == EINVAL) { + printf("%d", n); + return 0; + } + }' + . auto/feature +fi ngx_feature="localtime_r()"