use copied strerror() messages and autoconfigured sys_nerr value
diff --git a/auto/feature b/auto/feature
index 1bd3345..0f9becc 100644
--- a/auto/feature
+++ b/auto/feature
@@ -65,6 +65,24 @@
fi
;;
+ value)
+ # /bin/sh is used to intercept "Killed" or "Abort trap" messages
+ if /bin/sh -c $NGX_AUTOTEST >/dev/null 2>&1; then
+ echo " found"
+ ngx_found=yes
+
+ cat << END >> $NGX_AUTO_CONFIG_H
+
+#ifndef $ngx_feature_name
+#define $ngx_feature_name `$NGX_AUTOTEST`
+#endif
+
+END
+ else
+ echo " found but is not working"
+ fi
+ ;;
+
bug)
# /bin/sh is used to intercept "Killed" or "Abort trap" messages
if /bin/sh -c $NGX_AUTOTEST >/dev/null 2>&1; then
diff --git a/auto/unix b/auto/unix
index 728b116..0160661 100755
--- a/auto/unix
+++ b/auto/unix
@@ -109,37 +109,13 @@
. 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;"
-. auto/feature
-
-
-# GNU style strerror_r() returns not length, but pointer
-
-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
-
-
-ngx_feature="sys_errlist[]"
-ngx_feature_name="NGX_HAVE_SYS_ERRLIST"
-ngx_feature_run=yes
-ngx_feature_incs="#include <stdio.h>"
-ngx_feature_path=
-ngx_feature_libs=
-ngx_feature_test="int n = sys_nerr; const char *p = sys_errlist[1];"
+ngx_feature_test='printf("%d", sys_nerr);'
. auto/feature