--- /dev/null
+From 81289d1d1adaf5a767a4b4d1309c286468cfd37f Mon Sep 17 00:00:00 2001
+From: Samuel Martin <s.martin49@gmail.com>
+Date: Thu, 24 Apr 2014 23:27:32 +0200
+Subject: [PATCH 1/5] auto/type/sizeof: rework autotest to be cross-compilation
+ friendly
+
+Rework the sizeof test to do the checks at compile time instead of at
+runtime. This way, it does not break when cross-compiling for a
+different CPU architecture.
+
+Signed-off-by: Samuel Martin <s.martin49@gmail.com>
+---
+ auto/types/sizeof | 42 ++++++++++++++++++++++++++++--------------
+ 1 file changed, 28 insertions(+), 14 deletions(-)
+
+diff --git a/auto/types/sizeof b/auto/types/sizeof
+index 9215a54..c2c3ede 100644
+--- a/auto/types/sizeof
++++ b/auto/types/sizeof
+@@ -14,7 +14,7 @@ END
+
+ ngx_size=
+
+-cat << END > $NGX_AUTOTEST.c
++cat << _EOF > $NGX_AUTOTEST.c
+
+ #include <sys/types.h>
+ #include <sys/time.h>
+@@ -25,29 +25,43 @@ $NGX_INCLUDE_UNISTD_H
+ $NGX_INCLUDE_INTTYPES_H
+ $NGX_INCLUDE_AUTO_CONFIG_H
+
+-int main() {
+- printf("%d", (int) sizeof($ngx_type));
++#if !defined( PASTE)
++#define PASTE2( x, y) x##y
++#define PASTE( x, y) PASTE2( x, y)
++#endif /* PASTE */
++
++#define SAY_IF_SIZEOF( typename, type, size) \\
++ static char PASTE( PASTE( PASTE( sizeof_, typename), _is_), size) \\
++ [(sizeof(type) == (size)) ? 1 : -1]
++
++SAY_IF_SIZEOF(TEST_TYPENAME, TEST_TYPE, TEST_SIZE);
++
++int main(void)
++{
+ return 0;
+ }
+
+-END
+-
++_EOF
+
+-ngx_test="$CC $CC_TEST_FLAGS $CC_AUX_FLAGS \
+- -o $NGX_AUTOTEST $NGX_AUTOTEST.c $NGX_LD_OPT $ngx_feature_libs"
++_ngx_typename=`echo "$ngx_type" | sed 's/ /_/g;s/\*/p/'`
++ngx_size="-1"
++ngx_size=`for i in 1 2 4 8 16 ; do \
++ $CC $CC_TEST_FLAGS $CC_AUX_FLAGS \
++ -DTEST_TYPENAME="$_ngx_typename" -DTEST_TYPE="$ngx_type" -DTEST_SIZE="$i" \
++ $NGX_AUTOTEST.c -o $NGX_AUTOTEST \
++ $NGX_LD_OPT $ngx_feature_libs >/dev/null 2>&1 || continue ;\
++ echo $i ; break ; done`
+
+-eval "$ngx_test >> $NGX_AUTOCONF_ERR 2>&1"
++rm -rf $NGX_AUTOTEST*
+
++if test -z $ngx_size ; then
++ ngx_size=-1
++fi
+
+-if [ -x $NGX_AUTOTEST ]; then
+- ngx_size=`$NGX_AUTOTEST`
++if [ $ngx_size -gt 0 ]; then
+ echo " $ngx_size bytes"
+ fi
+
+-
+-rm -rf $NGX_AUTOTEST*
+-
+-
+ case $ngx_size in
+ 4)
+ if [ "$ngx_type"="long" ]; then
+--
+1.9.2
+
--- /dev/null
+From ef72be22ad6d58e230f75553d80b470b80c3303a Mon Sep 17 00:00:00 2001
+From: Samuel Martin <s.martin49@gmail.com>
+Date: Sun, 4 May 2014 00:40:49 +0200
+Subject: [PATCH 2/5] auto/feature: add mechanism allowing to force feature run
+ test result
+
+Whenever a feature needs to run a test, the ngx_feature_run_force_result
+variable can be set to the desired test result, and thus skip the test.
+
+Therefore, the generated config.h file will honor these presets.
+
+This mechanism aims to make easier cross-compilation support.
+
+Signed-off-by: Samuel Martin <s.martin49@gmail.com>
+---
+ auto/feature | 80 ++++++++++++++++++++++++++++++++++++++++++++----------------
+ 1 file changed, 59 insertions(+), 21 deletions(-)
+
+diff --git a/auto/feature b/auto/feature
+index 1145f28..a194b85 100644
+--- a/auto/feature
++++ b/auto/feature
+@@ -52,50 +52,88 @@ if [ -x $NGX_AUTOTEST ]; then
+ case "$ngx_feature_run" in
+
+ yes)
+- # /bin/sh is used to intercept "Killed" or "Abort trap" messages
+- if /bin/sh -c $NGX_AUTOTEST >> $NGX_AUTOCONF_ERR 2>&1; then
+- echo " found"
++ if test -n "$ngx_feature_run_force_result" ; then
++ echo " not tested (maybe cross-compiling)"
++ if test -n "$ngx_feature_name" ; then
++ if test "$ngx_feature_run_force_result" = "yes" ; then
++ have=$ngx_have_feature . auto/have
++ fi
++ fi
+ ngx_found=yes
++ else
+
+- if test -n "$ngx_feature_name"; then
+- have=$ngx_have_feature . auto/have
++ # /bin/sh is used to intercept "Killed" or "Abort trap" messages
++ if /bin/sh -c $NGX_AUTOTEST >> $NGX_AUTOCONF_ERR 2>&1; then
++ echo " found"
++ ngx_found=yes
++
++ if test -n "$ngx_feature_name"; then
++ have=$ngx_have_feature . auto/have
++ fi
++
++ else
++ echo " found but is not working"
+ fi
+
+- else
+- echo " found but is not working"
+ fi
+ ;;
+
+ value)
+- # /bin/sh is used to intercept "Killed" or "Abort trap" messages
+- if /bin/sh -c $NGX_AUTOTEST >> $NGX_AUTOCONF_ERR 2>&1; then
+- echo " found"
++ if test -n "$ngx_feature_run_force_result" ; then
++ echo " not tested (maybe cross-compiling)"
++ cat << END >> $NGX_AUTO_CONFIG_H
++
++#ifndef $ngx_feature_name
++#define $ngx_feature_name $ngx_feature_run_force_result
++#endif
++
++END
+ ngx_found=yes
++ else
+
+- cat << END >> $NGX_AUTO_CONFIG_H
++ # /bin/sh is used to intercept "Killed" or "Abort trap" messages
++ if /bin/sh -c $NGX_AUTOTEST >> $NGX_AUTOCONF_ERR 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"
++ else
++ echo " found but is not working"
++ fi
++
+ fi
+ ;;
+
+ bug)
+- # /bin/sh is used to intercept "Killed" or "Abort trap" messages
+- if /bin/sh -c $NGX_AUTOTEST >> $NGX_AUTOCONF_ERR 2>&1; then
+- echo " not found"
+-
+- else
+- echo " found"
++ if test -n "$ngx_feature_run_force_result" ; then
++ echo " not tested (maybe cross-compiling)"
++ if test -n "$ngx_feature_name"; then
++ if test "$ngx_feature_run_force_result" = "yes" ; then
++ have=$ngx_have_feature . auto/have
++ fi
++ fi
+ ngx_found=yes
++ else
+
+- if test -n "$ngx_feature_name"; then
+- have=$ngx_have_feature . auto/have
++ # /bin/sh is used to intercept "Killed" or "Abort trap" messages
++ if /bin/sh -c $NGX_AUTOTEST >> $NGX_AUTOCONF_ERR 2>&1; then
++ echo " not found"
++
++ else
++ echo " found"
++ ngx_found=yes
++
++ if test -n "$ngx_feature_name"; then
++ have=$ngx_have_feature . auto/have
++ fi
+ fi
++
+ fi
+ ;;
+
+--
+1.9.2
+
--- /dev/null
+From 7d1bc0364feab22299abeeb29ae2cfdcabd7e2c0 Mon Sep 17 00:00:00 2001
+From: Samuel Martin <s.martin49@gmail.com>
+Date: Thu, 29 May 2014 18:52:10 +0200
+Subject: [PATCH 3/5] auto/*: set ngx_feature_run_force_result for each feature
+ requiring run test
+
+Each feature requiring a run test has a matching preset variable (called
+ngx_force_*) used to set ngx_feature_run_force_result.
+
+These ngx_force_* variables are passed through the environment at configure
+time.
+
+Signed-off-by: Samuel Martin <s.martin49@gmail.com>
+---
+ auto/cc/conf | 3 +++
+ auto/cc/name | 1 +
+ auto/lib/libatomic/conf | 1 +
+ auto/os/darwin | 3 +++
+ auto/os/linux | 4 ++++
+ auto/unix | 8 ++++++++
+ 6 files changed, 20 insertions(+)
+
+diff --git a/auto/cc/conf b/auto/cc/conf
+index edc6d74..a61ade4 100644
+--- a/auto/cc/conf
++++ b/auto/cc/conf
+@@ -159,6 +159,7 @@ if [ "$NGX_PLATFORM" != win32 ]; then
+ ngx_feature="gcc builtin atomic operations"
+ ngx_feature_name=NGX_HAVE_GCC_ATOMIC
+ ngx_feature_run=yes
++ ngx_feature_run_force_result="$ngx_force_gcc_have_atomic"
+ ngx_feature_incs=
+ ngx_feature_path=
+ ngx_feature_libs=
+@@ -179,6 +180,7 @@ if [ "$NGX_PLATFORM" != win32 ]; then
+ ngx_feature="C99 variadic macros"
+ ngx_feature_name="NGX_HAVE_C99_VARIADIC_MACROS"
+ ngx_feature_run=yes
++ ngx_feature_run_force_result="$ngx_force_c99_have_variadic_macros"
+ ngx_feature_incs="#include <stdio.h>
+ #define var(dummy, ...) sprintf(__VA_ARGS__)"
+ ngx_feature_path=
+@@ -193,6 +195,7 @@ if [ "$NGX_PLATFORM" != win32 ]; then
+ ngx_feature="gcc variadic macros"
+ ngx_feature_name="NGX_HAVE_GCC_VARIADIC_MACROS"
+ ngx_feature_run=yes
++ ngx_feature_run_force_result="$ngx_force_gcc_have_variadic_macros"
+ ngx_feature_incs="#include <stdio.h>
+ #define var(dummy, args...) sprintf(args)"
+ ngx_feature_path=
+diff --git a/auto/cc/name b/auto/cc/name
+index 51a7ed9..d237d47 100644
+--- a/auto/cc/name
++++ b/auto/cc/name
+@@ -8,6 +8,7 @@ if [ "$NGX_PLATFORM" != win32 ]; then
+ ngx_feature="C compiler"
+ ngx_feature_name=
+ ngx_feature_run=yes
++ ngx_feature_run_force_result="$ngx_force_c_compiler"
+ ngx_feature_incs=
+ ngx_feature_path=
+ ngx_feature_libs=
+diff --git a/auto/lib/libatomic/conf b/auto/lib/libatomic/conf
+index d1e484a..3724916 100644
+--- a/auto/lib/libatomic/conf
++++ b/auto/lib/libatomic/conf
+@@ -15,6 +15,7 @@ else
+ ngx_feature="atomic_ops library"
+ ngx_feature_name=NGX_HAVE_LIBATOMIC
+ ngx_feature_run=yes
++ ngx_feature_run_force_result="$ngx_force_have_libatomic"
+ ngx_feature_incs="#define AO_REQUIRE_CAS
+ #include <atomic_ops.h>"
+ ngx_feature_path=
+diff --git a/auto/os/darwin b/auto/os/darwin
+index b97518a..30f323c 100644
+--- a/auto/os/darwin
++++ b/auto/os/darwin
+@@ -27,6 +27,7 @@ NGX_KQUEUE_CHECKED=YES
+ ngx_feature="kqueue's EVFILT_TIMER"
+ ngx_feature_name="NGX_HAVE_TIMER_EVENT"
+ ngx_feature_run=yes
++ngx_feature_run_force_result="$ngx_force_have_timer_event"
+ ngx_feature_incs="#include <sys/event.h>
+ #include <sys/time.h>"
+ ngx_feature_path=
+@@ -57,6 +58,7 @@ ngx_feature_test="int kq;
+ ngx_feature="Darwin 64-bit kqueue millisecond timeout bug"
+ ngx_feature_name=NGX_DARWIN_KEVENT_BUG
+ ngx_feature_run=bug
++ngx_feature_run_force_result="$ngx_force_kevent_bug"
+ ngx_feature_incs="#include <sys/event.h>
+ #include <sys/time.h>"
+ ngx_feature_path=
+@@ -87,6 +89,7 @@ CC_AUX_FLAGS="$CC_AUX_FLAGS"
+ ngx_feature="sendfile()"
+ ngx_feature_name="NGX_HAVE_SENDFILE"
+ ngx_feature_run=yes
++ngx_feature_run_force_result="$ngx_force_have_sendfile"
+ ngx_feature_incs="#include <sys/types.h>
+ #include <sys/socket.h>
+ #include <sys/uio.h>
+diff --git a/auto/os/linux b/auto/os/linux
+index 19bf832..16848b2 100644
+--- a/auto/os/linux
++++ b/auto/os/linux
+@@ -49,6 +49,7 @@ fi
+ ngx_feature="epoll"
+ ngx_feature_name="NGX_HAVE_EPOLL"
+ ngx_feature_run=yes
++ngx_feature_run_force_result="$ngx_force_have_epoll"
+ ngx_feature_incs="#include <sys/epoll.h>"
+ ngx_feature_path=
+ ngx_feature_libs=
+@@ -106,6 +107,7 @@ CC_AUX_FLAGS="$cc_aux_flags -D_GNU_SOURCE"
+ ngx_feature="sendfile()"
+ ngx_feature_name="NGX_HAVE_SENDFILE"
+ ngx_feature_run=yes
++ngx_feature_run_force_result="$ngx_force_have_sendfile"
+ ngx_feature_incs="#include <sys/sendfile.h>
+ #include <errno.h>"
+ ngx_feature_path=
+@@ -127,6 +129,7 @@ CC_AUX_FLAGS="$cc_aux_flags -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64"
+ ngx_feature="sendfile64()"
+ ngx_feature_name="NGX_HAVE_SENDFILE64"
+ ngx_feature_run=yes
++ngx_feature_run_force_result="$ngx_force_have_sendfile64"
+ ngx_feature_incs="#include <sys/sendfile.h>
+ #include <errno.h>"
+ ngx_feature_path=
+@@ -145,6 +148,7 @@ ngx_include="sys/prctl.h"; . auto/include
+ ngx_feature="prctl(PR_SET_DUMPABLE)"
+ ngx_feature_name="NGX_HAVE_PR_SET_DUMPABLE"
+ ngx_feature_run=yes
++ngx_feature_run_force_result="$ngx_force_have_pr_set_dumpable"
+ ngx_feature_incs="#include <sys/prctl.h>"
+ ngx_feature_path=
+ ngx_feature_libs=
+diff --git a/auto/unix b/auto/unix
+index 10fd3d2..b7cc9cb 100755
+--- a/auto/unix
++++ b/auto/unix
+@@ -99,6 +99,7 @@ if test -z "$NGX_KQUEUE_CHECKED"; then
+ ngx_feature="kqueue's EVFILT_TIMER"
+ ngx_feature_name="NGX_HAVE_TIMER_EVENT"
+ ngx_feature_run=yes
++ ngx_feature_run_force_result="$ngx_force_have_timer_event"
+ ngx_feature_incs="#include <sys/event.h>
+ #include <sys/time.h>"
+ ngx_feature_path=
+@@ -544,6 +545,7 @@ ngx_feature_test="char buf[1]; ssize_t n; n = pwrite(1, buf, 1, 0);
+ ngx_feature="sys_nerr"
+ ngx_feature_name="NGX_SYS_NERR"
+ ngx_feature_run=value
++ngx_feature_run_force_result="$ngx_force_sys_nerr"
+ ngx_feature_incs='#include <errno.h>
+ #include <stdio.h>'
+ ngx_feature_path=
+@@ -558,6 +560,7 @@ if [ $ngx_found = no ]; then
+ ngx_feature="_sys_nerr"
+ ngx_feature_name="NGX_SYS_NERR"
+ ngx_feature_run=value
++ ngx_feature_run_force_result="$ngx_force_sys_nerr"
+ ngx_feature_incs='#include <errno.h>
+ #include <stdio.h>'
+ ngx_feature_path=
+@@ -573,6 +576,7 @@ if [ $ngx_found = no ]; then
+ ngx_feature='maximum errno'
+ ngx_feature_name=NGX_SYS_NERR
+ ngx_feature_run=value
++ ngx_feature_run_force_result="$ngx_force_sys_nerr"
+ ngx_feature_incs='#include <errno.h>
+ #include <string.h>
+ #include <stdio.h>'
+@@ -631,6 +635,7 @@ ngx_feature_test="void *p; p = memalign(4096, 4096);
+ ngx_feature="mmap(MAP_ANON|MAP_SHARED)"
+ ngx_feature_name="NGX_HAVE_MAP_ANON"
+ ngx_feature_run=yes
++ngx_feature_run_force_result="$ngx_force_have_map_anon"
+ ngx_feature_incs="#include <sys/mman.h>"
+ ngx_feature_path=
+ ngx_feature_libs=
+@@ -644,6 +649,7 @@ ngx_feature_test="void *p;
+ ngx_feature='mmap("/dev/zero", MAP_SHARED)'
+ ngx_feature_name="NGX_HAVE_MAP_DEVZERO"
+ ngx_feature_run=yes
++ngx_feature_run_force_result="$ngx_force_have_map_devzero"
+ ngx_feature_incs="#include <sys/mman.h>
+ #include <sys/stat.h>
+ #include <fcntl.h>"
+@@ -659,6 +665,7 @@ ngx_feature_test='void *p; int fd;
+ ngx_feature="System V shared memory"
+ ngx_feature_name="NGX_HAVE_SYSVSHM"
+ ngx_feature_run=yes
++ngx_feature_run_force_result="$ngx_force_have_sysvshm"
+ ngx_feature_incs="#include <sys/ipc.h>
+ #include <sys/shm.h>"
+ ngx_feature_path=
+@@ -673,6 +680,7 @@ ngx_feature_test="int id;
+ ngx_feature="POSIX semaphores"
+ ngx_feature_name="NGX_HAVE_POSIX_SEM"
+ ngx_feature_run=yes
++ngx_feature_run_force_result="$ngx_force_have_posix_sem"
+ ngx_feature_incs="#include <semaphore.h>"
+ ngx_feature_path=
+ ngx_feature_libs=
+--
+1.9.2
+
--- /dev/null
+From 5d281572d0afbf69d934737e1ee4c553670a46cc Mon Sep 17 00:00:00 2001
+From: Samuel Martin <s.martin49@gmail.com>
+Date: Thu, 29 May 2014 19:22:27 +0200
+Subject: [PATCH 4/5] auto/lib/libxslt/conf: allow to override ngx_feature_path
+ and ngx_feature_libs
+
+Because libxml2 headers are not in /usr/include by default, hardcoding the
+include directory to /usr/include/libxml2 does not play well when
+cross-compiling, or if libxml2 has been installed somewhere else.
+
+This patch allows to define/override the libxslt include directory, and
+the libxslt libs flags.
+
+Being able to override the include location is especially useful when
+cross-compiling to prevent gcc from complaining about unsafe include
+location for cross-compilation (-Wpoision-system-directories).
+
+So far, this warning is only triggered by libxslt.
+
+Signed-off-by: Samuel Martin <s.martin49@gmail.com>
+---
+ auto/lib/libxslt/conf | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/auto/lib/libxslt/conf b/auto/lib/libxslt/conf
+index bc19d83..386f1a0 100644
+--- a/auto/lib/libxslt/conf
++++ b/auto/lib/libxslt/conf
+@@ -12,8 +12,8 @@
+ #include <libxslt/xsltInternals.h>
+ #include <libxslt/transform.h>
+ #include <libxslt/xsltutils.h>"
+- ngx_feature_path="/usr/include/libxml2"
+- ngx_feature_libs="-lxml2 -lxslt"
++ ngx_feature_path="${ngx_feature_path_libxslt:=/usr/include/libxml2}"
++ ngx_feature_libs="${ngx_feature_libs_libxslt:=-lxml2 -lxslt}"
+ ngx_feature_test="xmlParserCtxtPtr ctxt = NULL;
+ xsltStylesheetPtr sheet = NULL;
+ xmlDocPtr doc;
+--
+1.9.2
+
--- /dev/null
+From 8c19cea5e667f325ececdc1678bfddf063af0da2 Mon Sep 17 00:00:00 2001
+From: Samuel Martin <s.martin49@gmail.com>
+Date: Sun, 1 Jun 2014 16:05:04 +0200
+Subject: [PATCH 5/5] auto/unix: make sys_nerr guessing cross-friendly
+
+This patch replaces the default sys_nerr runtest with a test done at
+buildtime.
+
+The idea behind this buildtime test is finding the value of the ERR_MAX
+macro if defined, or the EHWPOISON (which is currently the last errno)
+otherwise.
+
+Signed-off-by: Samuel Martin <s.martin49@gmail.com>
+---
+ auto/os/sys_nerr | 77 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ auto/unix | 10 ++++++++
+ 2 files changed, 87 insertions(+)
+ create mode 100644 auto/os/sys_nerr
+
+diff --git a/auto/os/sys_nerr b/auto/os/sys_nerr
+new file mode 100644
+index 0000000..25e7c22
+--- /dev/null
++++ b/auto/os/sys_nerr
+@@ -0,0 +1,78 @@
++
++# Copyright (C) Samuel Martin <s.martin49@gmail.com>
++
++
++echo $ngx_n "checking for sys_nerr value...$ngx_c"
++
++# sys_nerr guessing is done using a (very) poor (but working)
++# heuristics, by checking for the value of ERR_MAX if defined, or
++# EHWPOISON otherwise.
++
++cat << END >> $NGX_AUTOCONF_ERR
++
++----------------------------------------
++checking for sys_nerr value
++
++END
++
++ngx_sys_nerr=
++
++cat << _EOF > $NGX_AUTOTEST.c
++
++#include <stdio.h>
++#include <errno.h>
++
++static char sys_nerr_test[ERR_MAX];
++int main(void)
++{
++ return 0;
++}
++
++_EOF
++
++if $CC $CC_TEST_FLAGS $CC_AUX_FLAGS \
++ $NGX_AUTOTEST.c -o $NGX_AUTOTEST \
++ $NGX_LD_OPT $ngx_feature_libs >/dev/null 2>&1 ; then
++ _ngx_max_err_macro=ERR_MAX
++else
++ # the +2 has been empirically found!
++ _ngx_max_err_macro="EHWPOISON + 2"
++fi
++
++cat << _EOF > $NGX_AUTOTEST.c
++
++#include <stdio.h>
++#include <errno.h>
++
++static char sys_nerr_test[(TEST_ERR_MAX == $_ngx_max_err_macro) ? 1 : -1];
++int main(void)
++{
++ return 0;
++}
++
++_EOF
++
++
++ngx_sys_nerr=`for i in $(seq 0 2000) ; do \
++ $CC $CC_TEST_FLAGS $CC_AUX_FLAGS \
++ -DTEST_ERR_MAX="$i" \
++ $NGX_AUTOTEST.c -o $NGX_AUTOTEST \
++ $NGX_LD_OPT $ngx_feature_libs >/dev/null 2>&1 || continue ;\
++ echo $i ; break ; done`
++
++rm -rf $NGX_AUTOTEST*
++
++if test -z $ngx_sys_nerr ; then
++ ngx_size=0
++ ngx_sys_nerr=0
++fi
++
++cat << END >> $NGX_AUTO_CONFIG_H
++
++#ifndef $ngx_feature_name
++#define $ngx_feature_name $ngx_sys_nerr
++#endif
++
++END
++
++echo " $ngx_sys_nerr"
+diff --git a/auto/unix b/auto/unix
+index b7cc9cb..1a49ba3 100755
+--- a/auto/unix
++++ b/auto/unix
+@@ -550,6 +550,10 @@ ngx_feature_incs='#include <errno.h>
+ #include <stdio.h>'
+ ngx_feature_path=
+ ngx_feature_libs=
++
++if false ; then
++# Disabled because only valid for native build.
++
+ ngx_feature_test='printf("%d", sys_nerr);'
+ . auto/feature
+
+@@ -598,6 +602,12 @@ if [ $ngx_found = no ]; then
+ . auto/feature
+ fi
+
++else
++ # Cross-compilation support
++ . auto/os/sys_nerr
++
++fi
++
+
+ ngx_feature="localtime_r()"
+ ngx_feature_name="NGX_HAVE_LOCALTIME_R"
+--
+1.9.2
+
+++ /dev/null
-From 81289d1d1adaf5a767a4b4d1309c286468cfd37f Mon Sep 17 00:00:00 2001
-From: Samuel Martin <s.martin49@gmail.com>
-Date: Thu, 24 Apr 2014 23:27:32 +0200
-Subject: [PATCH 1/5] auto/type/sizeof: rework autotest to be cross-compilation
- friendly
-
-Rework the sizeof test to do the checks at compile time instead of at
-runtime. This way, it does not break when cross-compiling for a
-different CPU architecture.
-
-Signed-off-by: Samuel Martin <s.martin49@gmail.com>
----
- auto/types/sizeof | 42 ++++++++++++++++++++++++++++--------------
- 1 file changed, 28 insertions(+), 14 deletions(-)
-
-diff --git a/auto/types/sizeof b/auto/types/sizeof
-index 9215a54..c2c3ede 100644
---- a/auto/types/sizeof
-+++ b/auto/types/sizeof
-@@ -14,7 +14,7 @@ END
-
- ngx_size=
-
--cat << END > $NGX_AUTOTEST.c
-+cat << _EOF > $NGX_AUTOTEST.c
-
- #include <sys/types.h>
- #include <sys/time.h>
-@@ -25,29 +25,43 @@ $NGX_INCLUDE_UNISTD_H
- $NGX_INCLUDE_INTTYPES_H
- $NGX_INCLUDE_AUTO_CONFIG_H
-
--int main() {
-- printf("%d", (int) sizeof($ngx_type));
-+#if !defined( PASTE)
-+#define PASTE2( x, y) x##y
-+#define PASTE( x, y) PASTE2( x, y)
-+#endif /* PASTE */
-+
-+#define SAY_IF_SIZEOF( typename, type, size) \\
-+ static char PASTE( PASTE( PASTE( sizeof_, typename), _is_), size) \\
-+ [(sizeof(type) == (size)) ? 1 : -1]
-+
-+SAY_IF_SIZEOF(TEST_TYPENAME, TEST_TYPE, TEST_SIZE);
-+
-+int main(void)
-+{
- return 0;
- }
-
--END
--
-+_EOF
-
--ngx_test="$CC $CC_TEST_FLAGS $CC_AUX_FLAGS \
-- -o $NGX_AUTOTEST $NGX_AUTOTEST.c $NGX_LD_OPT $ngx_feature_libs"
-+_ngx_typename=`echo "$ngx_type" | sed 's/ /_/g;s/\*/p/'`
-+ngx_size="-1"
-+ngx_size=`for i in 1 2 4 8 16 ; do \
-+ $CC $CC_TEST_FLAGS $CC_AUX_FLAGS \
-+ -DTEST_TYPENAME="$_ngx_typename" -DTEST_TYPE="$ngx_type" -DTEST_SIZE="$i" \
-+ $NGX_AUTOTEST.c -o $NGX_AUTOTEST \
-+ $NGX_LD_OPT $ngx_feature_libs >/dev/null 2>&1 || continue ;\
-+ echo $i ; break ; done`
-
--eval "$ngx_test >> $NGX_AUTOCONF_ERR 2>&1"
-+rm -rf $NGX_AUTOTEST*
-
-+if test -z $ngx_size ; then
-+ ngx_size=-1
-+fi
-
--if [ -x $NGX_AUTOTEST ]; then
-- ngx_size=`$NGX_AUTOTEST`
-+if [ $ngx_size -gt 0 ]; then
- echo " $ngx_size bytes"
- fi
-
--
--rm -rf $NGX_AUTOTEST*
--
--
- case $ngx_size in
- 4)
- if [ "$ngx_type"="long" ]; then
---
-1.9.2
-
+++ /dev/null
-From ef72be22ad6d58e230f75553d80b470b80c3303a Mon Sep 17 00:00:00 2001
-From: Samuel Martin <s.martin49@gmail.com>
-Date: Sun, 4 May 2014 00:40:49 +0200
-Subject: [PATCH 2/5] auto/feature: add mechanism allowing to force feature run
- test result
-
-Whenever a feature needs to run a test, the ngx_feature_run_force_result
-variable can be set to the desired test result, and thus skip the test.
-
-Therefore, the generated config.h file will honor these presets.
-
-This mechanism aims to make easier cross-compilation support.
-
-Signed-off-by: Samuel Martin <s.martin49@gmail.com>
----
- auto/feature | 80 ++++++++++++++++++++++++++++++++++++++++++++----------------
- 1 file changed, 59 insertions(+), 21 deletions(-)
-
-diff --git a/auto/feature b/auto/feature
-index 1145f28..a194b85 100644
---- a/auto/feature
-+++ b/auto/feature
-@@ -52,50 +52,88 @@ if [ -x $NGX_AUTOTEST ]; then
- case "$ngx_feature_run" in
-
- yes)
-- # /bin/sh is used to intercept "Killed" or "Abort trap" messages
-- if /bin/sh -c $NGX_AUTOTEST >> $NGX_AUTOCONF_ERR 2>&1; then
-- echo " found"
-+ if test -n "$ngx_feature_run_force_result" ; then
-+ echo " not tested (maybe cross-compiling)"
-+ if test -n "$ngx_feature_name" ; then
-+ if test "$ngx_feature_run_force_result" = "yes" ; then
-+ have=$ngx_have_feature . auto/have
-+ fi
-+ fi
- ngx_found=yes
-+ else
-
-- if test -n "$ngx_feature_name"; then
-- have=$ngx_have_feature . auto/have
-+ # /bin/sh is used to intercept "Killed" or "Abort trap" messages
-+ if /bin/sh -c $NGX_AUTOTEST >> $NGX_AUTOCONF_ERR 2>&1; then
-+ echo " found"
-+ ngx_found=yes
-+
-+ if test -n "$ngx_feature_name"; then
-+ have=$ngx_have_feature . auto/have
-+ fi
-+
-+ else
-+ echo " found but is not working"
- fi
-
-- else
-- echo " found but is not working"
- fi
- ;;
-
- value)
-- # /bin/sh is used to intercept "Killed" or "Abort trap" messages
-- if /bin/sh -c $NGX_AUTOTEST >> $NGX_AUTOCONF_ERR 2>&1; then
-- echo " found"
-+ if test -n "$ngx_feature_run_force_result" ; then
-+ echo " not tested (maybe cross-compiling)"
-+ cat << END >> $NGX_AUTO_CONFIG_H
-+
-+#ifndef $ngx_feature_name
-+#define $ngx_feature_name $ngx_feature_run_force_result
-+#endif
-+
-+END
- ngx_found=yes
-+ else
-
-- cat << END >> $NGX_AUTO_CONFIG_H
-+ # /bin/sh is used to intercept "Killed" or "Abort trap" messages
-+ if /bin/sh -c $NGX_AUTOTEST >> $NGX_AUTOCONF_ERR 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"
-+ else
-+ echo " found but is not working"
-+ fi
-+
- fi
- ;;
-
- bug)
-- # /bin/sh is used to intercept "Killed" or "Abort trap" messages
-- if /bin/sh -c $NGX_AUTOTEST >> $NGX_AUTOCONF_ERR 2>&1; then
-- echo " not found"
--
-- else
-- echo " found"
-+ if test -n "$ngx_feature_run_force_result" ; then
-+ echo " not tested (maybe cross-compiling)"
-+ if test -n "$ngx_feature_name"; then
-+ if test "$ngx_feature_run_force_result" = "yes" ; then
-+ have=$ngx_have_feature . auto/have
-+ fi
-+ fi
- ngx_found=yes
-+ else
-
-- if test -n "$ngx_feature_name"; then
-- have=$ngx_have_feature . auto/have
-+ # /bin/sh is used to intercept "Killed" or "Abort trap" messages
-+ if /bin/sh -c $NGX_AUTOTEST >> $NGX_AUTOCONF_ERR 2>&1; then
-+ echo " not found"
-+
-+ else
-+ echo " found"
-+ ngx_found=yes
-+
-+ if test -n "$ngx_feature_name"; then
-+ have=$ngx_have_feature . auto/have
-+ fi
- fi
-+
- fi
- ;;
-
---
-1.9.2
-
+++ /dev/null
-From 7d1bc0364feab22299abeeb29ae2cfdcabd7e2c0 Mon Sep 17 00:00:00 2001
-From: Samuel Martin <s.martin49@gmail.com>
-Date: Thu, 29 May 2014 18:52:10 +0200
-Subject: [PATCH 3/5] auto/*: set ngx_feature_run_force_result for each feature
- requiring run test
-
-Each feature requiring a run test has a matching preset variable (called
-ngx_force_*) used to set ngx_feature_run_force_result.
-
-These ngx_force_* variables are passed through the environment at configure
-time.
-
-Signed-off-by: Samuel Martin <s.martin49@gmail.com>
----
- auto/cc/conf | 3 +++
- auto/cc/name | 1 +
- auto/lib/libatomic/conf | 1 +
- auto/os/darwin | 3 +++
- auto/os/linux | 4 ++++
- auto/unix | 8 ++++++++
- 6 files changed, 20 insertions(+)
-
-diff --git a/auto/cc/conf b/auto/cc/conf
-index edc6d74..a61ade4 100644
---- a/auto/cc/conf
-+++ b/auto/cc/conf
-@@ -159,6 +159,7 @@ if [ "$NGX_PLATFORM" != win32 ]; then
- ngx_feature="gcc builtin atomic operations"
- ngx_feature_name=NGX_HAVE_GCC_ATOMIC
- ngx_feature_run=yes
-+ ngx_feature_run_force_result="$ngx_force_gcc_have_atomic"
- ngx_feature_incs=
- ngx_feature_path=
- ngx_feature_libs=
-@@ -179,6 +180,7 @@ if [ "$NGX_PLATFORM" != win32 ]; then
- ngx_feature="C99 variadic macros"
- ngx_feature_name="NGX_HAVE_C99_VARIADIC_MACROS"
- ngx_feature_run=yes
-+ ngx_feature_run_force_result="$ngx_force_c99_have_variadic_macros"
- ngx_feature_incs="#include <stdio.h>
- #define var(dummy, ...) sprintf(__VA_ARGS__)"
- ngx_feature_path=
-@@ -193,6 +195,7 @@ if [ "$NGX_PLATFORM" != win32 ]; then
- ngx_feature="gcc variadic macros"
- ngx_feature_name="NGX_HAVE_GCC_VARIADIC_MACROS"
- ngx_feature_run=yes
-+ ngx_feature_run_force_result="$ngx_force_gcc_have_variadic_macros"
- ngx_feature_incs="#include <stdio.h>
- #define var(dummy, args...) sprintf(args)"
- ngx_feature_path=
-diff --git a/auto/cc/name b/auto/cc/name
-index 51a7ed9..d237d47 100644
---- a/auto/cc/name
-+++ b/auto/cc/name
-@@ -8,6 +8,7 @@ if [ "$NGX_PLATFORM" != win32 ]; then
- ngx_feature="C compiler"
- ngx_feature_name=
- ngx_feature_run=yes
-+ ngx_feature_run_force_result="$ngx_force_c_compiler"
- ngx_feature_incs=
- ngx_feature_path=
- ngx_feature_libs=
-diff --git a/auto/lib/libatomic/conf b/auto/lib/libatomic/conf
-index d1e484a..3724916 100644
---- a/auto/lib/libatomic/conf
-+++ b/auto/lib/libatomic/conf
-@@ -15,6 +15,7 @@ else
- ngx_feature="atomic_ops library"
- ngx_feature_name=NGX_HAVE_LIBATOMIC
- ngx_feature_run=yes
-+ ngx_feature_run_force_result="$ngx_force_have_libatomic"
- ngx_feature_incs="#define AO_REQUIRE_CAS
- #include <atomic_ops.h>"
- ngx_feature_path=
-diff --git a/auto/os/darwin b/auto/os/darwin
-index b97518a..30f323c 100644
---- a/auto/os/darwin
-+++ b/auto/os/darwin
-@@ -27,6 +27,7 @@ NGX_KQUEUE_CHECKED=YES
- ngx_feature="kqueue's EVFILT_TIMER"
- ngx_feature_name="NGX_HAVE_TIMER_EVENT"
- ngx_feature_run=yes
-+ngx_feature_run_force_result="$ngx_force_have_timer_event"
- ngx_feature_incs="#include <sys/event.h>
- #include <sys/time.h>"
- ngx_feature_path=
-@@ -57,6 +58,7 @@ ngx_feature_test="int kq;
- ngx_feature="Darwin 64-bit kqueue millisecond timeout bug"
- ngx_feature_name=NGX_DARWIN_KEVENT_BUG
- ngx_feature_run=bug
-+ngx_feature_run_force_result="$ngx_force_kevent_bug"
- ngx_feature_incs="#include <sys/event.h>
- #include <sys/time.h>"
- ngx_feature_path=
-@@ -87,6 +89,7 @@ CC_AUX_FLAGS="$CC_AUX_FLAGS"
- ngx_feature="sendfile()"
- ngx_feature_name="NGX_HAVE_SENDFILE"
- ngx_feature_run=yes
-+ngx_feature_run_force_result="$ngx_force_have_sendfile"
- ngx_feature_incs="#include <sys/types.h>
- #include <sys/socket.h>
- #include <sys/uio.h>
-diff --git a/auto/os/linux b/auto/os/linux
-index 19bf832..16848b2 100644
---- a/auto/os/linux
-+++ b/auto/os/linux
-@@ -49,6 +49,7 @@ fi
- ngx_feature="epoll"
- ngx_feature_name="NGX_HAVE_EPOLL"
- ngx_feature_run=yes
-+ngx_feature_run_force_result="$ngx_force_have_epoll"
- ngx_feature_incs="#include <sys/epoll.h>"
- ngx_feature_path=
- ngx_feature_libs=
-@@ -106,6 +107,7 @@ CC_AUX_FLAGS="$cc_aux_flags -D_GNU_SOURCE"
- ngx_feature="sendfile()"
- ngx_feature_name="NGX_HAVE_SENDFILE"
- ngx_feature_run=yes
-+ngx_feature_run_force_result="$ngx_force_have_sendfile"
- ngx_feature_incs="#include <sys/sendfile.h>
- #include <errno.h>"
- ngx_feature_path=
-@@ -127,6 +129,7 @@ CC_AUX_FLAGS="$cc_aux_flags -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64"
- ngx_feature="sendfile64()"
- ngx_feature_name="NGX_HAVE_SENDFILE64"
- ngx_feature_run=yes
-+ngx_feature_run_force_result="$ngx_force_have_sendfile64"
- ngx_feature_incs="#include <sys/sendfile.h>
- #include <errno.h>"
- ngx_feature_path=
-@@ -145,6 +148,7 @@ ngx_include="sys/prctl.h"; . auto/include
- ngx_feature="prctl(PR_SET_DUMPABLE)"
- ngx_feature_name="NGX_HAVE_PR_SET_DUMPABLE"
- ngx_feature_run=yes
-+ngx_feature_run_force_result="$ngx_force_have_pr_set_dumpable"
- ngx_feature_incs="#include <sys/prctl.h>"
- ngx_feature_path=
- ngx_feature_libs=
-diff --git a/auto/unix b/auto/unix
-index 10fd3d2..b7cc9cb 100755
---- a/auto/unix
-+++ b/auto/unix
-@@ -99,6 +99,7 @@ if test -z "$NGX_KQUEUE_CHECKED"; then
- ngx_feature="kqueue's EVFILT_TIMER"
- ngx_feature_name="NGX_HAVE_TIMER_EVENT"
- ngx_feature_run=yes
-+ ngx_feature_run_force_result="$ngx_force_have_timer_event"
- ngx_feature_incs="#include <sys/event.h>
- #include <sys/time.h>"
- ngx_feature_path=
-@@ -544,6 +545,7 @@ ngx_feature_test="char buf[1]; ssize_t n; n = pwrite(1, buf, 1, 0);
- ngx_feature="sys_nerr"
- ngx_feature_name="NGX_SYS_NERR"
- ngx_feature_run=value
-+ngx_feature_run_force_result="$ngx_force_sys_nerr"
- ngx_feature_incs='#include <errno.h>
- #include <stdio.h>'
- ngx_feature_path=
-@@ -558,6 +560,7 @@ if [ $ngx_found = no ]; then
- ngx_feature="_sys_nerr"
- ngx_feature_name="NGX_SYS_NERR"
- ngx_feature_run=value
-+ ngx_feature_run_force_result="$ngx_force_sys_nerr"
- ngx_feature_incs='#include <errno.h>
- #include <stdio.h>'
- ngx_feature_path=
-@@ -573,6 +576,7 @@ if [ $ngx_found = no ]; then
- ngx_feature='maximum errno'
- ngx_feature_name=NGX_SYS_NERR
- ngx_feature_run=value
-+ ngx_feature_run_force_result="$ngx_force_sys_nerr"
- ngx_feature_incs='#include <errno.h>
- #include <string.h>
- #include <stdio.h>'
-@@ -631,6 +635,7 @@ ngx_feature_test="void *p; p = memalign(4096, 4096);
- ngx_feature="mmap(MAP_ANON|MAP_SHARED)"
- ngx_feature_name="NGX_HAVE_MAP_ANON"
- ngx_feature_run=yes
-+ngx_feature_run_force_result="$ngx_force_have_map_anon"
- ngx_feature_incs="#include <sys/mman.h>"
- ngx_feature_path=
- ngx_feature_libs=
-@@ -644,6 +649,7 @@ ngx_feature_test="void *p;
- ngx_feature='mmap("/dev/zero", MAP_SHARED)'
- ngx_feature_name="NGX_HAVE_MAP_DEVZERO"
- ngx_feature_run=yes
-+ngx_feature_run_force_result="$ngx_force_have_map_devzero"
- ngx_feature_incs="#include <sys/mman.h>
- #include <sys/stat.h>
- #include <fcntl.h>"
-@@ -659,6 +665,7 @@ ngx_feature_test='void *p; int fd;
- ngx_feature="System V shared memory"
- ngx_feature_name="NGX_HAVE_SYSVSHM"
- ngx_feature_run=yes
-+ngx_feature_run_force_result="$ngx_force_have_sysvshm"
- ngx_feature_incs="#include <sys/ipc.h>
- #include <sys/shm.h>"
- ngx_feature_path=
-@@ -673,6 +680,7 @@ ngx_feature_test="int id;
- ngx_feature="POSIX semaphores"
- ngx_feature_name="NGX_HAVE_POSIX_SEM"
- ngx_feature_run=yes
-+ngx_feature_run_force_result="$ngx_force_have_posix_sem"
- ngx_feature_incs="#include <semaphore.h>"
- ngx_feature_path=
- ngx_feature_libs=
---
-1.9.2
-
+++ /dev/null
-From 5d281572d0afbf69d934737e1ee4c553670a46cc Mon Sep 17 00:00:00 2001
-From: Samuel Martin <s.martin49@gmail.com>
-Date: Thu, 29 May 2014 19:22:27 +0200
-Subject: [PATCH 4/5] auto/lib/libxslt/conf: allow to override ngx_feature_path
- and ngx_feature_libs
-
-Because libxml2 headers are not in /usr/include by default, hardcoding the
-include directory to /usr/include/libxml2 does not play well when
-cross-compiling, or if libxml2 has been installed somewhere else.
-
-This patch allows to define/override the libxslt include directory, and
-the libxslt libs flags.
-
-Being able to override the include location is especially useful when
-cross-compiling to prevent gcc from complaining about unsafe include
-location for cross-compilation (-Wpoision-system-directories).
-
-So far, this warning is only triggered by libxslt.
-
-Signed-off-by: Samuel Martin <s.martin49@gmail.com>
----
- auto/lib/libxslt/conf | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/auto/lib/libxslt/conf b/auto/lib/libxslt/conf
-index bc19d83..386f1a0 100644
---- a/auto/lib/libxslt/conf
-+++ b/auto/lib/libxslt/conf
-@@ -12,8 +12,8 @@
- #include <libxslt/xsltInternals.h>
- #include <libxslt/transform.h>
- #include <libxslt/xsltutils.h>"
-- ngx_feature_path="/usr/include/libxml2"
-- ngx_feature_libs="-lxml2 -lxslt"
-+ ngx_feature_path="${ngx_feature_path_libxslt:=/usr/include/libxml2}"
-+ ngx_feature_libs="${ngx_feature_libs_libxslt:=-lxml2 -lxslt}"
- ngx_feature_test="xmlParserCtxtPtr ctxt = NULL;
- xsltStylesheetPtr sheet = NULL;
- xmlDocPtr doc;
---
-1.9.2
-
+++ /dev/null
-From 8c19cea5e667f325ececdc1678bfddf063af0da2 Mon Sep 17 00:00:00 2001
-From: Samuel Martin <s.martin49@gmail.com>
-Date: Sun, 1 Jun 2014 16:05:04 +0200
-Subject: [PATCH 5/5] auto/unix: make sys_nerr guessing cross-friendly
-
-This patch replaces the default sys_nerr runtest with a test done at
-buildtime.
-
-The idea behind this buildtime test is finding the value of the ERR_MAX
-macro if defined, or the EHWPOISON (which is currently the last errno)
-otherwise.
-
-Signed-off-by: Samuel Martin <s.martin49@gmail.com>
----
- auto/os/sys_nerr | 77 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- auto/unix | 10 ++++++++
- 2 files changed, 87 insertions(+)
- create mode 100644 auto/os/sys_nerr
-
-diff --git a/auto/os/sys_nerr b/auto/os/sys_nerr
-new file mode 100644
-index 0000000..25e7c22
---- /dev/null
-+++ b/auto/os/sys_nerr
-@@ -0,0 +1,78 @@
-+
-+# Copyright (C) Samuel Martin <s.martin49@gmail.com>
-+
-+
-+echo $ngx_n "checking for sys_nerr value...$ngx_c"
-+
-+# sys_nerr guessing is done using a (very) poor (but working)
-+# heuristics, by checking for the value of ERR_MAX if defined, or
-+# EHWPOISON otherwise.
-+
-+cat << END >> $NGX_AUTOCONF_ERR
-+
-+----------------------------------------
-+checking for sys_nerr value
-+
-+END
-+
-+ngx_sys_nerr=
-+
-+cat << _EOF > $NGX_AUTOTEST.c
-+
-+#include <stdio.h>
-+#include <errno.h>
-+
-+static char sys_nerr_test[ERR_MAX];
-+int main(void)
-+{
-+ return 0;
-+}
-+
-+_EOF
-+
-+if $CC $CC_TEST_FLAGS $CC_AUX_FLAGS \
-+ $NGX_AUTOTEST.c -o $NGX_AUTOTEST \
-+ $NGX_LD_OPT $ngx_feature_libs >/dev/null 2>&1 ; then
-+ _ngx_max_err_macro=ERR_MAX
-+else
-+ # the +2 has been empirically found!
-+ _ngx_max_err_macro="EHWPOISON + 2"
-+fi
-+
-+cat << _EOF > $NGX_AUTOTEST.c
-+
-+#include <stdio.h>
-+#include <errno.h>
-+
-+static char sys_nerr_test[(TEST_ERR_MAX == $_ngx_max_err_macro) ? 1 : -1];
-+int main(void)
-+{
-+ return 0;
-+}
-+
-+_EOF
-+
-+
-+ngx_sys_nerr=`for i in $(seq 0 2000) ; do \
-+ $CC $CC_TEST_FLAGS $CC_AUX_FLAGS \
-+ -DTEST_ERR_MAX="$i" \
-+ $NGX_AUTOTEST.c -o $NGX_AUTOTEST \
-+ $NGX_LD_OPT $ngx_feature_libs >/dev/null 2>&1 || continue ;\
-+ echo $i ; break ; done`
-+
-+rm -rf $NGX_AUTOTEST*
-+
-+if test -z $ngx_sys_nerr ; then
-+ ngx_size=0
-+ ngx_sys_nerr=0
-+fi
-+
-+cat << END >> $NGX_AUTO_CONFIG_H
-+
-+#ifndef $ngx_feature_name
-+#define $ngx_feature_name $ngx_sys_nerr
-+#endif
-+
-+END
-+
-+echo " $ngx_sys_nerr"
-diff --git a/auto/unix b/auto/unix
-index b7cc9cb..1a49ba3 100755
---- a/auto/unix
-+++ b/auto/unix
-@@ -550,6 +550,10 @@ ngx_feature_incs='#include <errno.h>
- #include <stdio.h>'
- ngx_feature_path=
- ngx_feature_libs=
-+
-+if false ; then
-+# Disabled because only valid for native build.
-+
- ngx_feature_test='printf("%d", sys_nerr);'
- . auto/feature
-
-@@ -598,6 +602,12 @@ if [ $ngx_found = no ]; then
- . auto/feature
- fi
-
-+else
-+ # Cross-compilation support
-+ . auto/os/sys_nerr
-+
-+fi
-+
-
- ngx_feature="localtime_r()"
- ngx_feature_name="NGX_HAVE_LOCALTIME_R"
---
-1.9.2
-