From: Samuel Martin Date: Mon, 1 Dec 2014 22:04:55 +0000 (+0100) Subject: package/nginx: rename patch to new convention X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=ed961f1128b7495616d70681253070bfda9ebc9d;p=buildroot.git package/nginx: rename patch to new convention Signed-off-by: Samuel Martin Signed-off-by: Peter Korsgaard --- diff --git a/package/nginx/0001-auto-type-sizeof-rework-autotest-to-be-cross-compila.patch b/package/nginx/0001-auto-type-sizeof-rework-autotest-to-be-cross-compila.patch new file mode 100644 index 0000000000..5b9e913a03 --- /dev/null +++ b/package/nginx/0001-auto-type-sizeof-rework-autotest-to-be-cross-compila.patch @@ -0,0 +1,88 @@ +From 81289d1d1adaf5a767a4b4d1309c286468cfd37f Mon Sep 17 00:00:00 2001 +From: Samuel Martin +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 +--- + 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 + #include +@@ -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 + diff --git a/package/nginx/0002-auto-feature-add-mechanism-allowing-to-force-feature.patch b/package/nginx/0002-auto-feature-add-mechanism-allowing-to-force-feature.patch new file mode 100644 index 0000000000..7eb4a5da06 --- /dev/null +++ b/package/nginx/0002-auto-feature-add-mechanism-allowing-to-force-feature.patch @@ -0,0 +1,135 @@ +From ef72be22ad6d58e230f75553d80b470b80c3303a Mon Sep 17 00:00:00 2001 +From: Samuel Martin +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 +--- + 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 + diff --git a/package/nginx/0003-auto-set-ngx_feature_run_force_result-for-each-featu.patch b/package/nginx/0003-auto-set-ngx_feature_run_force_result-for-each-featu.patch new file mode 100644 index 0000000000..81578a3ee8 --- /dev/null +++ b/package/nginx/0003-auto-set-ngx_feature_run_force_result-for-each-featu.patch @@ -0,0 +1,209 @@ +From 7d1bc0364feab22299abeeb29ae2cfdcabd7e2c0 Mon Sep 17 00:00:00 2001 +From: Samuel Martin +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 +--- + 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 + #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 + #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 " + 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 + #include " + 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 + #include " + 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 + #include + #include +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 " + 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 + #include " + 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 + #include " + 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 " + 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 + #include " + 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 + #include ' + 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 + #include ' + 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 + #include + #include ' +@@ -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 " + 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 + #include + #include " +@@ -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 + #include " + 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 " + ngx_feature_path= + ngx_feature_libs= +-- +1.9.2 + diff --git a/package/nginx/0004-auto-lib-libxslt-conf-allow-to-override-ngx_feature_.patch b/package/nginx/0004-auto-lib-libxslt-conf-allow-to-override-ngx_feature_.patch new file mode 100644 index 0000000000..a125a7864a --- /dev/null +++ b/package/nginx/0004-auto-lib-libxslt-conf-allow-to-override-ngx_feature_.patch @@ -0,0 +1,42 @@ +From 5d281572d0afbf69d934737e1ee4c553670a46cc Mon Sep 17 00:00:00 2001 +From: Samuel Martin +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 +--- + 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 + #include + #include " +- 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 + diff --git a/package/nginx/0005-auto-unix-make-sys_nerr-guessing-cross-friendly.patch b/package/nginx/0005-auto-unix-make-sys_nerr-guessing-cross-friendly.patch new file mode 100644 index 0000000000..d02de681a5 --- /dev/null +++ b/package/nginx/0005-auto-unix-make-sys_nerr-guessing-cross-friendly.patch @@ -0,0 +1,134 @@ +From 8c19cea5e667f325ececdc1678bfddf063af0da2 Mon Sep 17 00:00:00 2001 +From: Samuel Martin +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 +--- + 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 ++ ++ ++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 ++#include ++ ++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 ++#include ++ ++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 + #include ' + 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 + diff --git a/package/nginx/nginx-0001-auto-type-sizeof-rework-autotest-to-be-cross-compila.patch b/package/nginx/nginx-0001-auto-type-sizeof-rework-autotest-to-be-cross-compila.patch deleted file mode 100644 index 5b9e913a03..0000000000 --- a/package/nginx/nginx-0001-auto-type-sizeof-rework-autotest-to-be-cross-compila.patch +++ /dev/null @@ -1,88 +0,0 @@ -From 81289d1d1adaf5a767a4b4d1309c286468cfd37f Mon Sep 17 00:00:00 2001 -From: Samuel Martin -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 ---- - 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 - #include -@@ -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 - diff --git a/package/nginx/nginx-0002-auto-feature-add-mechanism-allowing-to-force-feature.patch b/package/nginx/nginx-0002-auto-feature-add-mechanism-allowing-to-force-feature.patch deleted file mode 100644 index 7eb4a5da06..0000000000 --- a/package/nginx/nginx-0002-auto-feature-add-mechanism-allowing-to-force-feature.patch +++ /dev/null @@ -1,135 +0,0 @@ -From ef72be22ad6d58e230f75553d80b470b80c3303a Mon Sep 17 00:00:00 2001 -From: Samuel Martin -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 ---- - 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 - diff --git a/package/nginx/nginx-0003-auto-set-ngx_feature_run_force_result-for-each-featu.patch b/package/nginx/nginx-0003-auto-set-ngx_feature_run_force_result-for-each-featu.patch deleted file mode 100644 index 81578a3ee8..0000000000 --- a/package/nginx/nginx-0003-auto-set-ngx_feature_run_force_result-for-each-featu.patch +++ /dev/null @@ -1,209 +0,0 @@ -From 7d1bc0364feab22299abeeb29ae2cfdcabd7e2c0 Mon Sep 17 00:00:00 2001 -From: Samuel Martin -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 ---- - 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 - #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 - #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 " - 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 - #include " - 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 - #include " - 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 - #include - #include -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 " - 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 - #include " - 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 - #include " - 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 " - 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 - #include " - 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 - #include ' - 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 - #include ' - 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 - #include - #include ' -@@ -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 " - 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 - #include - #include " -@@ -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 - #include " - 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 " - ngx_feature_path= - ngx_feature_libs= --- -1.9.2 - diff --git a/package/nginx/nginx-0004-auto-lib-libxslt-conf-allow-to-override-ngx_feature_.patch b/package/nginx/nginx-0004-auto-lib-libxslt-conf-allow-to-override-ngx_feature_.patch deleted file mode 100644 index a125a7864a..0000000000 --- a/package/nginx/nginx-0004-auto-lib-libxslt-conf-allow-to-override-ngx_feature_.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 5d281572d0afbf69d934737e1ee4c553670a46cc Mon Sep 17 00:00:00 2001 -From: Samuel Martin -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 ---- - 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 - #include - #include " -- 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 - diff --git a/package/nginx/nginx-0005-auto-unix-make-sys_nerr-guessing-cross-friendly.patch b/package/nginx/nginx-0005-auto-unix-make-sys_nerr-guessing-cross-friendly.patch deleted file mode 100644 index d02de681a5..0000000000 --- a/package/nginx/nginx-0005-auto-unix-make-sys_nerr-guessing-cross-friendly.patch +++ /dev/null @@ -1,134 +0,0 @@ -From 8c19cea5e667f325ececdc1678bfddf063af0da2 Mon Sep 17 00:00:00 2001 -From: Samuel Martin -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 ---- - 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 -+ -+ -+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 -+#include -+ -+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 -+#include -+ -+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 - #include ' - 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 -