From: Martin Jansa <martin.jansa@gmail.com>
To: openembedded-devel@lists.openembedded.org
Subject: Re: [meta-webserver] nginx 1.7.4 cross-compiling patches
Date: Thu, 28 Aug 2014 11:29:44 +0200 [thread overview]
Message-ID: <20140828092944.GB16066@jama> (raw)
In-Reply-To: <20140828074208.GG13139@haswell>
[-- Attachment #1: Type: text/plain, Size: 11741 bytes --]
On Thu, Aug 28, 2014 at 12:42:08AM -0700, Khem Raj wrote:
> On 14-08-27 22:36:59, James Le Cuirot wrote:
> > Hello,
> >
> > I was trying to cross-compile nginx 1.7.4 on Gentoo and found your
> > nginx-cross.patch. It almost applied, despite being prepared against
> > 1.0.11. I recreated it and everything worked except that the
> > --with-endian option is not actually effective. I have attached
> > the new nginx-cross.patch as well as a --with-endian fix. Hope this
> > helps. As I don't use OpenEmbedded, I'll leave updating the nginx
> > package to you.
>
> thanks for the patch. I hope it will appear in patchwork and can be
> picked by someone doing package upgrade
It's not correctly picked by patchwork
http://patchwork.openembedded.org/patch/79247/
James: Please resend with git send-email as README suggests
http://www.openembedded.org/wiki/How_to_submit_a_patch_to_OpenEmbedded
>
> >
> > Regards,
> > James
>
> > diff -Naur nginx-1.7.4.orig/auto/feature nginx-1.7.4/auto/feature
> > --- nginx-1.7.4.orig/auto/feature 2014-08-25 22:50:58.969186351 +0100
> > +++ nginx-1.7.4/auto/feature 2014-08-25 22:52:04.518208640 +0100
> > @@ -49,12 +49,20 @@
> >
> > if [ -x $NGX_AUTOTEST ]; then
> >
> > + if [ ".$NGX_CROSS_COMPILE" = ".yes" ]; then
> > + NGX_AUTOTEST_EXEC="true"
> > + NGX_FOUND_MSG=" (not tested, cross compiling)"
> > + else
> > + NGX_AUTOTEST_EXEC="$NGX_AUTOTEST"
> > + NGX_FOUND_MSG=""
> > + fi
> > +
> > 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 /bin/sh -c $NGX_AUTOTEST_EXEC >> $NGX_AUTOCONF_ERR 2>&1; then
> > + echo " found$NGX_FOUND_MSG"
> > ngx_found=yes
> >
> > if test -n "$ngx_feature_name"; then
> > @@ -68,17 +76,27 @@
> >
> > 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 /bin/sh -c $NGX_AUTOTEST_EXEC >> $NGX_AUTOCONF_ERR 2>&1; then
> > + echo " found$NGX_FOUND_MSG"
> > ngx_found=yes
> >
> > - cat << END >> $NGX_AUTO_CONFIG_H
> > + if [ ".$NGX_CROSS_COMPILE" = ".yes" ]; then
> > + cat << END >> $NGX_AUTO_CONFIG_H
> >
> > #ifndef $ngx_feature_name
> > -#define $ngx_feature_name `$NGX_AUTOTEST`
> > +#define $ngx_feature_name $(eval "echo \$NGX_WITH_${ngx_feature_name}")
> > #endif
> >
> > END
> > + else
> > + cat << END >> $NGX_AUTO_CONFIG_H
> > +
> > +#ifndef $ngx_feature_name
> > +#define $ngx_feature_name `$NGX_AUTOTEST_EXEC`
> > +#endif
> > +
> > +END
> > + fi
> > else
> > echo " found but is not working"
> > fi
> > @@ -86,7 +104,7 @@
> >
> > bug)
> > # /bin/sh is used to intercept "Killed" or "Abort trap" messages
> > - if /bin/sh -c $NGX_AUTOTEST >> $NGX_AUTOCONF_ERR 2>&1; then
> > + if /bin/sh -c $NGX_AUTOTEST_EXEC >> $NGX_AUTOCONF_ERR 2>&1; then
> > echo " not found"
> >
> > else
> > diff -Naur nginx-1.7.4.orig/auto/options nginx-1.7.4/auto/options
> > --- nginx-1.7.4.orig/auto/options 2014-08-25 22:50:58.959186500 +0100
> > +++ nginx-1.7.4/auto/options 2014-08-25 22:52:04.518208640 +0100
> > @@ -316,6 +316,18 @@
> > --test-build-rtsig) NGX_TEST_BUILD_RTSIG=YES ;;
> > --test-build-solaris-sendfilev) NGX_TEST_BUILD_SOLARIS_SENDFILEV=YES ;;
> >
> > + # cross compile support
> > + --with-int=*) NGX_WITH_INT="$value" ;;
> > + --with-long=*) NGX_WITH_LONG="$value" ;;
> > + --with-long-long=*) NGX_WITH_LONG_LONG="$value" ;;
> > + --with-ptr-size=*) NGX_WITH_PTR_SIZE="$value" ;;
> > + --with-sig-atomic-t=*) NGX_WITH_SIG_ATOMIC_T="$value" ;;
> > + --with-size-t=*) NGX_WITH_SIZE_T="$value" ;;
> > + --with-off-t=*) NGX_WITH_OFF_T="$value" ;;
> > + --with-time-t=*) NGX_WITH_TIME_T="$value" ;;
> > + --with-sys-nerr=*) NGX_WITH_NGX_SYS_NERR="$value" ;;
> > + --with-endian=*) NGX_WITH_ENDIAN="$value" ;;
> > +
> > *)
> > echo "$0: error: invalid option \"$option\""
> > exit 1
> > @@ -472,6 +484,17 @@
> >
> > --with-debug enable debug logging
> >
> > + --with-int=VALUE force int size
> > + --with-long=VALUE force long size
> > + --with-long-long=VALUE force long long size
> > + --with-ptr-size=VALUE force pointer size
> > + --with-sig-atomic-t=VALUE force sig_atomic_t size
> > + --with-size-t=VALUE force size_t size
> > + --with-off-t=VALUE force off_t size
> > + --with-time-t=VALUE force time_t size
> > + --with-sys-nerr=VALUE force sys_nerr value
> > + --with-endian=VALUE force system endianess
> > +
> > END
> >
> > exit 1
> > @@ -493,6 +516,8 @@
> >
> > if [ ".$NGX_PLATFORM" = ".win32" ]; then
> > NGX_WINE=$WINE
> > +elif [ ! -z "$NGX_PLATFORM" ]; then
> > + NGX_CROSS_COMPILE="yes"
> > fi
> >
> >
> > diff -Naur nginx-1.7.4.orig/auto/types/sizeof nginx-1.7.4/auto/types/sizeof
> > --- nginx-1.7.4.orig/auto/types/sizeof 2014-08-25 22:50:58.961186470 +0100
> > +++ nginx-1.7.4/auto/types/sizeof 2014-08-25 22:54:10.785324255 +0100
> > @@ -12,9 +12,12 @@
> >
> > END
> >
> > -ngx_size=
> > +ngx_size=$(eval "echo \$NGX_WITH_${ngx_param}")
> >
> > -cat << END > $NGX_AUTOTEST.c
> > +if [ ".$ngx_size" != "." ]; then
> > + echo " $ngx_size bytes"
> > +else
> > + cat << END > $NGX_AUTOTEST.c
> >
> > #include <sys/types.h>
> > #include <sys/time.h>
> > @@ -33,19 +36,20 @@
> > END
> >
> >
> > -ngx_test="$CC $CC_TEST_FLAGS $CC_AUX_FLAGS \
> > - -o $NGX_AUTOTEST $NGX_AUTOTEST.c $NGX_LD_OPT $ngx_feature_libs"
> > + ngx_test="$CC $CC_TEST_FLAGS $CC_AUX_FLAGS \
> > + -o $NGX_AUTOTEST $NGX_AUTOTEST.c $NGX_LD_OPT $ngx_feature_libs"
> >
> > -eval "$ngx_test >> $NGX_AUTOCONF_ERR 2>&1"
> > + eval "$ngx_test >> $NGX_AUTOCONF_ERR 2>&1"
> >
> >
> > -if [ -x $NGX_AUTOTEST ]; then
> > - ngx_size=`$NGX_AUTOTEST`
> > - echo " $ngx_size bytes"
> > -fi
> > + if [ -x $NGX_AUTOTEST ]; then
> > + ngx_size=`$NGX_AUTOTEST`
> > + echo " $ngx_size bytes"
> > + fi
> >
> >
> > -rm -rf $NGX_AUTOTEST*
> > + rm -rf $NGX_AUTOTEST*
> > +fi
> >
> >
> > case $ngx_size in
> > diff -Naur nginx-1.7.4.orig/auto/unix nginx-1.7.4/auto/unix
> > --- nginx-1.7.4.orig/auto/unix 2014-08-25 22:50:58.954186575 +0100
> > +++ nginx-1.7.4/auto/unix 2014-08-25 22:52:04.520208607 +0100
> > @@ -460,13 +460,13 @@
> >
> > # C types
> >
> > -ngx_type="int"; . auto/types/sizeof
> > +ngx_type="int"; ngx_param="INT"; . auto/types/sizeof
> >
> > -ngx_type="long"; . auto/types/sizeof
> > +ngx_type="long"; ngx_param="LONG"; . auto/types/sizeof
> >
> > -ngx_type="long long"; . auto/types/sizeof
> > +ngx_type="long long"; ngx_param="LONG_LONG"; . auto/types/sizeof
> >
> > -ngx_type="void *"; . auto/types/sizeof; ngx_ptr_size=$ngx_size
> > +ngx_type="void *"; ngx_param="PTR_SIZE"; . auto/types/sizeof; ngx_ptr_size=$ngx_size
> > ngx_param=NGX_PTR_SIZE; ngx_value=$ngx_size; . auto/types/value
> >
> >
> > @@ -483,7 +483,7 @@
> >
> > ngx_type="uint64_t"; ngx_types="u_int64_t"; . auto/types/typedef
> >
> > -ngx_type="sig_atomic_t"; ngx_types="int"; . auto/types/typedef
> > +ngx_type="sig_atomic_t"; ngx_param="SIG_ATOMIC_T"; ngx_types="int"; . auto/types/typedef
> > . auto/types/sizeof
> > ngx_param=NGX_SIG_ATOMIC_T_SIZE; ngx_value=$ngx_size; . auto/types/value
> >
> > @@ -499,15 +499,15 @@
> >
> > . auto/endianness
> >
> > -ngx_type="size_t"; . auto/types/sizeof
> > +ngx_type="size_t"; ngx_param="SIZE_T"; . auto/types/sizeof
> > ngx_param=NGX_MAX_SIZE_T_VALUE; ngx_value=$ngx_max_value; . auto/types/value
> > ngx_param=NGX_SIZE_T_LEN; ngx_value=$ngx_max_len; . auto/types/value
> >
> > -ngx_type="off_t"; . auto/types/sizeof
> > +ngx_type="off_t"; ngx_param="OFF_T"; . auto/types/sizeof
> > ngx_param=NGX_MAX_OFF_T_VALUE; ngx_value=$ngx_max_value; . auto/types/value
> > ngx_param=NGX_OFF_T_LEN; ngx_value=$ngx_max_len; . auto/types/value
> >
> > -ngx_type="time_t"; . auto/types/sizeof
> > +ngx_type="time_t"; ngx_param="TIME_T"; . auto/types/sizeof
> > ngx_param=NGX_TIME_T_SIZE; ngx_value=$ngx_size; . auto/types/value
> > ngx_param=NGX_TIME_T_LEN; ngx_value=$ngx_max_len; . auto/types/value
> >
>
> > --- auto/endianness.orig 2014-08-26 23:43:47.590339891 +0100
> > +++ auto/endianness 2014-08-26 23:44:02.915106075 +0100
> > @@ -8,7 +8,13 @@
> > echo "checking for system byte ordering" >> $NGX_ERR
> >
> >
> > -cat << END > $NGX_AUTOTEST.c
> > +if [ ".$NGX_WITH_ENDIAN" = ".little" ]; then
> > + echo " little endian"
> > + have=NGX_HAVE_LITTLE_ENDIAN . auto/have
> > +elif [ ".$NGX_WITH_ENDIAN" = ".big" ]; then
> > + echo " big endian"
> > +else
> > + cat << END > $NGX_AUTOTEST.c
> >
> > int main() {
> > int i = 0x11223344;
> > @@ -21,25 +27,26 @@
> >
> > END
> >
> > -ngx_test="$CC $CC_TEST_FLAGS $CC_AUX_FLAGS \
> > - -o $NGX_AUTOTEST $NGX_AUTOTEST.c $NGX_LD_OPT $ngx_feature_libs"
> > + ngx_test="$CC $CC_TEST_FLAGS $CC_AUX_FLAGS \
> > + -o $NGX_AUTOTEST $NGX_AUTOTEST.c $NGX_LD_OPT $ngx_feature_libs"
> >
> > -eval "$ngx_test >> $NGX_AUTOCONF_ERR 2>&1"
> > + eval "$ngx_test >> $NGX_AUTOCONF_ERR 2>&1"
> >
> > -if [ -x $NGX_AUTOTEST ]; then
> > - if $NGX_AUTOTEST >/dev/null 2>&1; then
> > - echo " little endian"
> > - have=NGX_HAVE_LITTLE_ENDIAN . auto/have
> > - else
> > - echo " big endian"
> > - fi
> > + if [ -x $NGX_AUTOTEST ]; then
> > + if $NGX_AUTOTEST >/dev/null 2>&1; then
> > + echo " little endian"
> > + have=NGX_HAVE_LITTLE_ENDIAN . auto/have
> > + else
> > + echo " big endian"
> > + fi
> >
> > - rm -rf $NGX_AUTOTEST*
> > + rm -rf $NGX_AUTOTEST*
> >
> > -else
> > - rm -rf $NGX_AUTOTEST*
> > + else
> > + rm -rf $NGX_AUTOTEST*
> >
> > - echo
> > - echo "$0: error: cannot detect system byte ordering"
> > - exit 1
> > + echo
> > + echo "$0: error: cannot detect system byte ordering"
> > + exit 1
> > + fi
> > fi
>
> > --
> > _______________________________________________
> > Openembedded-devel mailing list
> > Openembedded-devel@lists.openembedded.org
> > http://lists.openembedded.org/mailman/listinfo/openembedded-devel
>
> --
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-devel
--
Martin 'JaMa' Jansa jabber: Martin.Jansa@gmail.com
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 188 bytes --]
next prev parent reply other threads:[~2014-08-28 9:29 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-08-27 21:36 [meta-webserver] nginx 1.7.4 cross-compiling patches James Le Cuirot
2014-08-28 7:42 ` Khem Raj
2014-08-28 9:29 ` Martin Jansa [this message]
2014-08-28 9:38 ` James Le Cuirot
2014-08-28 14:27 ` Martin Jansa
2014-08-28 14:49 ` James Le Cuirot
2014-09-01 8:42 ` Paul Eggleton
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140828092944.GB16066@jama \
--to=martin.jansa@gmail.com \
--cc=openembedded-devel@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.