From 1143d00a160d919c3bd32481c565173bfd153402 Mon Sep 17 00:00:00 2001 From: Igor Sysoev Date: Sat, 23 Apr 2011 13:15:56 +0000 Subject: fix r3822 Solaris strerror() invalid error code behaviour depends on version: Solaris 10 returns "Unknown error" and sets errno to EINVAL, Solaris 9 returns "Unknown error" and leaves errno intact, Solaris 2 returns NULL. --- auto/unix | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'auto') diff --git a/auto/unix b/auto/unix index ee284e1d1..fadf7dd76 100755 --- a/auto/unix +++ b/auto/unix @@ -141,14 +141,19 @@ if [ $ngx_found = no ]; then ngx_feature_name=NGX_SYS_NERR ngx_feature_run=value ngx_feature_incs='#include + #include ' #include ' ngx_feature_path= ngx_feature_libs= ngx_feature_test='int n; + char *p; for (n = 1; n < 1000; n++) { errno = 0; - strerror(n); - if (errno == EINVAL) { + p = strerror(n); + if (errno == EINVAL + || p == NULL + || strncmp(p, "Unknown error", 13) == 0) + { printf("%d", n); return 0; } -- cgit