From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-13.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 298EFC432BE for ; Tue, 31 Aug 2021 11:58:00 +0000 (UTC) Received: from smtp1.osuosl.org (smtp1.osuosl.org [140.211.166.138]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 59B4C60698 for ; Tue, 31 Aug 2021 11:57:59 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 59B4C60698 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=tkos.co.il Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=busybox.net Received: from localhost (localhost [127.0.0.1]) by smtp1.osuosl.org (Postfix) with ESMTP id 1891E81AEA; Tue, 31 Aug 2021 11:57:59 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp1.osuosl.org ([127.0.0.1]) by localhost (smtp1.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id lWguXeYBfHkM; Tue, 31 Aug 2021 11:57:55 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by smtp1.osuosl.org (Postfix) with ESMTP id 46B7081BC5; Tue, 31 Aug 2021 11:57:54 +0000 (UTC) Received: from smtp3.osuosl.org (smtp3.osuosl.org [140.211.166.136]) by ash.osuosl.org (Postfix) with ESMTP id D85F41BF39C for ; Tue, 31 Aug 2021 11:57:52 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp3.osuosl.org (Postfix) with ESMTP id C1EC260BD2 for ; Tue, 31 Aug 2021 11:57:52 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp3.osuosl.org ([127.0.0.1]) by localhost (smtp3.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ZAcaGT04eGJ2 for ; Tue, 31 Aug 2021 11:57:47 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.8.0 Received: from mx.tkos.co.il (guitar.tcltek.co.il [192.115.133.116]) by smtp3.osuosl.org (Postfix) with ESMTPS id 76CC660BB9 for ; Tue, 31 Aug 2021 11:57:47 +0000 (UTC) Received: from tarshish (unknown [10.0.8.2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx.tkos.co.il (Postfix) with ESMTPS id 66BC0440E2F; Tue, 31 Aug 2021 14:57:31 +0300 (IDT) References: <20210830205357.4104461-1-nhed+buildroot@starry.com> User-agent: mu4e 1.6.3; emacs 27.1 From: Baruch Siach To: Nevo Hed Date: Tue, 31 Aug 2021 14:55:41 +0300 In-reply-to: Message-ID: <87bl5drfm1.fsf@tarshish> MIME-Version: 1.0 Subject: Re: [Buildroot] [PATCH 1/1] package/nginx: override endianness X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Samuel Martin , buildroot@buildroot.org Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: buildroot-bounces@busybox.net Sender: "buildroot" On Tue, Aug 31 2021, Nevo Hed wrote: > This is my first contribution attempt in buildroot. > > Just noticed a couple of typos (missing words actually) in the top > commit message. Should I wait for other feedback or work on > replacement patch asap (won't be in office for at least 5 from now). You can do either. In case you send v2 patch, make sure to mark this one as superseded in the Buildroot patchwork: http://patchwork.ozlabs.org/project/buildroot/list/ baruch > On Mon, Aug 30, 2021, 4:54 PM Nevo Hed wrote: > > Though several patches exist in buildroot's nginx package dir they do > not seem to address endianness. > > The test program generated my the script compiles but fails to run (as > it is built for another architecture) but the script does not > distinguish between the failure to run the program and an indication > of certain endianness. As such the fallback of big-endian is used. > This setting then causes http2 headers (anything not in the satic > dictionary) to come out as undecipherble trash. > > This commit includes a patch to the configure script to allow a > `--force-endianness=big|little` flag as as setting that flag in > buildroot's package makefile. > > Signed-off-by: Nevo Hed > --- > ...-of-endianness-for-cross-compilation.patch | 115 ++++++++++++++++++ > package/nginx/nginx.mk | 1 + > 2 files changed, 116 insertions(+) > create mode 100644 package/nginx/0010-Allow-forcing-of-endianness-for-cross-compilation.patch > > diff --git a/package/nginx/0010-Allow-forcing-of-endianness-for-cross-compilation.patch > b/package/nginx/0010-Allow-forcing-of-endianness-for-cross-compilation.patch > new file mode 100644 > index 0000000000..137ff6ea5d > --- /dev/null > +++ b/package/nginx/0010-Allow-forcing-of-endianness-for-cross-compilation.patch > @@ -0,0 +1,115 @@ > +From b1a6b13d8ac2cade71bae508c7d20fbee6807e4e Mon Sep 17 00:00:00 2001 > +From: Nevo Hed > +Date: Mon, 30 Aug 2021 13:28:13 -0400 > +Subject: [PATCH] Allow forcing of endianness for cross-compilation > + > +Signed-off-by: Nevo Hed > +--- > + auto/endianness | 61 ++++++++++++++++++++++++++++++++----------------- > + auto/options | 6 +++++ > + 2 files changed, 46 insertions(+), 21 deletions(-) > + > +diff --git a/auto/endianness b/auto/endianness > +index 1b552b6b..4b2a3cd7 100644 > +--- a/auto/endianness > ++++ b/auto/endianness > +@@ -26,25 +26,44 @@ int main(void) { > + > + END > + > +-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" > +- > +-if [ -x $NGX_AUTOTEST ]; then > +- if $NGX_AUTOTEST >/dev/null 2>&1; then > +- echo " little endian" > ++case "${NGX_FORCE_ENDIANNESS}" in > ++ little) > ++ echo " little endian (forced)" > + have=NGX_HAVE_LITTLE_ENDIAN . auto/have > +- else > +- echo " big endian" > +- fi > +- > +- rm -rf $NGX_AUTOTEST* > +- > +-else > +- rm -rf $NGX_AUTOTEST* > +- > +- echo > +- echo "$0: error: cannot detect system byte ordering" > +- exit 1 > +-fi > ++ ;; > ++ > ++ big) > ++ echo " big endian (forced)" > ++ ;; > ++ > ++ "") > ++ 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" > ++ > ++ 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* > ++ > ++ else > ++ rm -rf $NGX_AUTOTEST* > ++ > ++ echo > ++ echo "$0: error: cannot detect system byte ordering" > ++ exit 1 > ++ fi > ++ ;; > ++ > ++ *) > ++ echo > ++ echo "$0: error: invalid \"--force-endianness=${NGX_FORCE_ENDIANNESS}\"" > ++ exit 1 > ++ ;; > ++esac > +diff --git a/auto/options b/auto/options > +index 80be906e..85a06456 100644 > +--- a/auto/options > ++++ b/auto/options > +@@ -17,6 +17,8 @@ NGX_USER= > + NGX_GROUP= > + NGX_BUILD= > + > ++NGX_FORCE_ENDIANNESS= > ++ > + CC=${CC:-cc} > + CPP= > + NGX_OBJS=objs > +@@ -196,6 +198,8 @@ do > + --user=*) NGX_USER="$value" ;; > + --group=*) NGX_GROUP="$value" ;; > + > ++ --force-endianness=*) NGX_FORCE_ENDIANNESS="$value" ;; > ++ > + --crossbuild=*) NGX_PLATFORM="$value" ;; > + > + --build=*) NGX_BUILD="$value" ;; > +@@ -432,6 +436,8 @@ cat << END > + --build=NAME set build name > + --builddir=DIR set build directory > + > ++ --force-endianness=| force endianness > ++ > + --with-select_module enable select module > + --without-select_module disable select module > + --with-poll_module enable poll module > +-- > +2.31.1 > + > diff --git a/package/nginx/nginx.mk b/package/nginx/nginx.mk > index 1f996cc613..31b6e276b7 100644 > --- a/package/nginx/nginx.mk > +++ b/package/nginx/nginx.mk > @@ -49,6 +49,7 @@ NGINX_CONF_ENV += \ > > # prefix: nginx root configuration location > NGINX_CONF_OPTS += \ > + --force-endianness=$(call qstrip,$(call LOWERCASE,$(BR2_ENDIAN))) \ > --prefix=/usr \ > --conf-path=/etc/nginx/nginx.conf \ > --sbin-path=/usr/sbin/nginx \ > -- > 2.31.1 > > _______________________________________________ > buildroot mailing list > buildroot@busybox.net > http://lists.busybox.net/mailman/listinfo/buildroot -- ~. .~ Tk Open Systems =}------------------------------------------------ooO--U--Ooo------------{= - baruch@tkos.co.il - tel: +972.52.368.4656, http://www.tkos.co.il - _______________________________________________ buildroot mailing list buildroot@busybox.net http://lists.busybox.net/mailman/listinfo/buildroot