| 1 | --- ./auto/options 2017-01-24 19:32:19.000000000 +0530 |
| 2 | +++ ../options 2017-02-12 10:01:42.063174903 +0530 |
| 3 | @@ -34,6 +34,8 @@ |
| 4 | NGX_TEST_BUILD_SOLARIS_SENDFILEV=NO |
| 5 | |
| 6 | NGX_PLATFORM= |
| 7 | +NGX_CROSS=NO |
| 8 | +NGX_CROSSFILE= |
| 9 | NGX_WINE= |
| 10 | |
| 11 | EVENT_FOUND=NO |
| 12 | @@ -190,7 +192,9 @@ |
| 13 | --user=*) NGX_USER="$value" ;; |
| 14 | --group=*) NGX_GROUP="$value" ;; |
| 15 | |
| 16 | - --crossbuild=*) NGX_PLATFORM="$value" ;; |
| 17 | + --crossbuild=*) NGX_PLATFORM="$value" ; |
| 18 | + NGX_CROSS=YES ;; |
| 19 | + --crossfile=*) NGX_CROSSFILE="$value" ;; |
| 20 | |
| 21 | --build=*) NGX_BUILD="$value" ;; |
| 22 | --builddir=*) NGX_OBJS="$value" ;; |
| 23 | @@ -416,6 +420,10 @@ |
| 24 | --group=GROUP set non-privileged group for |
| 25 | worker processes |
| 26 | |
| 27 | + --crossbuild=PLAT:VER:ARCH crossbuild for specified |
| 28 | + NGX_PLATFORM |
| 29 | + --crossfile=NAME file name in auto/cross |
| 30 | + |
| 31 | --build=NAME set build name |
| 32 | --builddir=DIR set build directory |
| 33 | |
| 34 | --- ./auto/os/linux 2017-01-24 19:32:19.000000000 +0530 |
| 35 | +++ ../linux 2017-03-17 09:46:36.557329915 +0530 |
| 36 | @@ -18,7 +18,13 @@ |
| 37 | |
| 38 | # Linux kernel version |
| 39 | |
| 40 | -version=$((`uname -r \ |
| 41 | +if [ "$NGX_CROSS" = "YES" ]; then |
| 42 | + kern_version=`echo $NGX_PLATFORM | cut -d ':' -f 2` |
| 43 | +else |
| 44 | + kern_version=`uname -r` |
| 45 | +fi |
| 46 | + |
| 47 | +version=$((`echo $kern_version \ |
| 48 | | sed -n -e 's/^\([0-9][0-9]*\)\.\([0-9][0-9]*\)\.\([0-9][0-9]*\).*/ \ |
| 49 | \1*256*256+\2*256+\3/p' \ |
| 50 | -e 's/^\([0-9][0-9]*\)\.\([0-9][0-9]*\).*/\1*256*256+\2*256/p'`)) |
| 51 | --- ./auto/types/sizeof 2017-01-24 19:32:19.000000000 +0530 |
| 52 | +++ ../sizeof 2017-03-17 10:11:46.379342795 +0530 |
| 53 | @@ -40,7 +40,13 @@ |
| 54 | |
| 55 | |
| 56 | if [ -x $NGX_AUTOTEST ]; then |
| 57 | - ngx_size=`$NGX_AUTOTEST` |
| 58 | + if [ "$NGX_CROSS" = "YES" ]; then |
| 59 | + crossvar=`echo "sizeof_${ngx_type}_CROSS" | sed -e 's| |_|g' -e 's|\*|ptr|g'` |
| 60 | + . $NGX_CROSSFILE |
| 61 | + eval ngx_size=\"\${$crossvar}\" |
| 62 | + else |
| 63 | + ngx_size=`$NGX_AUTOTEST` |
| 64 | + fi |
| 65 | echo " $ngx_size bytes" |
| 66 | fi |
| 67 | |
| 68 | --- ./auto/feature 2017-01-24 19:32:19.000000000 +0530 |
| 69 | +++ ../feature 2017-02-12 10:18:38.010242484 +0530 |
| 70 | @@ -53,7 +53,7 @@ |
| 71 | |
| 72 | yes) |
| 73 | # /bin/sh is used to intercept "Killed" or "Abort trap" messages |
| 74 | - if /bin/sh -c $NGX_AUTOTEST >> $NGX_AUTOCONF_ERR 2>&1; then |
| 75 | + if [ "$NGX_CROSS" = "YES" ] || bash -c $NGX_AUTOTEST >> $NGX_AUTOCONF_ERR 2>&1 ; then |
| 76 | echo " found" |
| 77 | ngx_found=yes |
| 78 | |
| 79 | @@ -68,7 +68,24 @@ |
| 80 | |
| 81 | value) |
| 82 | # /bin/sh is used to intercept "Killed" or "Abort trap" messages |
| 83 | - if /bin/sh -c $NGX_AUTOTEST >> $NGX_AUTOCONF_ERR 2>&1; then |
| 84 | + if [ "$NGX_CROSS" = "YES" ]; then |
| 85 | + eval crossval=\"\${`echo "feature_${ngx_feature_name}_CROSS" | sed 's| |_|g'`}\" |
| 86 | + . $NGX_CROSSFILE |
| 87 | + if [ -n "$crossval" ]; then |
| 88 | + echo " found" |
| 89 | + ngx_found=yes |
| 90 | + |
| 91 | + cat << END >> $NGX_AUTO_CONFIG_H |
| 92 | + |
| 93 | +#ifndef $ngx_feature_name |
| 94 | +#define $ngx_feature_name `echo $crossval` |
| 95 | +#endif |
| 96 | + |
| 97 | +END |
| 98 | + else |
| 99 | + echo " found but is not working" |
| 100 | + fi |
| 101 | + elif /bin/sh -c $NGX_AUTOTEST >> $NGX_AUTOCONF_ERR 2>&1; then |
| 102 | echo " found" |
| 103 | ngx_found=yes |
| 104 | |
| 105 | --- ./auto/endianness 2017-01-31 20:31:10.000000000 +0530 |
| 106 | +++ ../endianness 2017-03-19 12:00:55.871579412 +0530 |
| 107 | @@ -31,7 +31,18 @@ |
| 108 | |
| 109 | eval "$ngx_test >> $NGX_AUTOCONF_ERR 2>&1" |
| 110 | |
| 111 | -if [ -x $NGX_AUTOTEST ]; then |
| 112 | +if [ "$NGX_CROSS" = "YES" ]; then |
| 113 | + . $NGX_CROSSFILE |
| 114 | + if [ "$endianness_CROSS" = "little" ]; then |
| 115 | + echo " little endian" |
| 116 | + have=NGX_HAVE_LITTLE_ENDIAN . auto/have |
| 117 | + else |
| 118 | + echo " big endian" |
| 119 | + fi |
| 120 | + |
| 121 | + rm -rf $NGX_AUTOTEST* |
| 122 | + |
| 123 | +elif [ -x $NGX_AUTOTEST ]; then |
| 124 | if $NGX_AUTOTEST >/dev/null 2>&1; then |
| 125 | echo " little endian" |
| 126 | have=NGX_HAVE_LITTLE_ENDIAN . auto/have |