From mboxrd@z Thu Jan 1 00:00:00 1970 From: Giulio Benetti Date: Tue, 29 Oct 2019 12:55:01 +0100 Subject: [Buildroot] [PATCH v2] package/libnss: fix build failure with ARM without NEON extension In-Reply-To: <20191028165553.96089-1-giulio.benetti@benettiengineering.com> References: <5b8cea47-a99e-cdeb-2d0c-2a69f237f691@mind.be> <20191028165553.96089-1-giulio.benetti@benettiengineering.com> Message-ID: <33092f9b-2db4-4091-4e95-64ce52d26254@benettiengineering.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: buildroot@busybox.net On 10/28/19 5:55 PM, Giulio Benetti wrote: > At the moment libnss assumes that every ARM has NEON extension but it's > not that way. So add a patch to make it aware of it and use native > functions in place of NEON optimized ones. > > Fixes: > http://autobuild.buildroot.net/results/1342d305d1aeebef7af54a83afc094fda12421e2/ > > Signed-off-by: Giulio Benetti > --- > V1->V2: > * added Fixes to commit log > * fixed #ifdef statement in patch > --- > ...ix-build-if-arm-doesn-t-support-NEON.patch | 50 +++++++++++++++++++ > 1 file changed, 50 insertions(+) > create mode 100644 package/libnss/0003-Bug-1590676-Fix-build-if-arm-doesn-t-support-NEON.patch > > diff --git a/package/libnss/0003-Bug-1590676-Fix-build-if-arm-doesn-t-support-NEON.patch b/package/libnss/0003-Bug-1590676-Fix-build-if-arm-doesn-t-support-NEON.patch > new file mode 100644 > index 0000000000..1d7f63611e > --- /dev/null > +++ b/package/libnss/0003-Bug-1590676-Fix-build-if-arm-doesn-t-support-NEON.patch > @@ -0,0 +1,50 @@ > +From 76f35f9acd6c6b34318438bef30b0bdfdfd13f16 Mon Sep 17 00:00:00 2001 > +From: Giulio Benetti > +Date: Wed, 23 Oct 2019 11:47:03 +0200 > +Subject: [PATCH] Bug 1590676 - Fix build if arm doesn't support NEON > + > +At the moment NSS assumes that ARM supports NEON extension but this is > +not true and leads to build failure on ARM without NEON extension. > +Add check to assure USE_HW_AES is not defined if ARM without NEON > +extension is used. > + > +Signed-off-by: Giulio Benetti > +--- > + nss/lib/freebl/aes-armv8.c | 5 +++-- > + nss/lib/freebl/rijndael.c | 3 ++- > + 2 files changed, 5 insertions(+), 3 deletions(-) > + > +diff --git a/nss/lib/freebl/aes-armv8.c b/nss/lib/freebl/aes-armv8.c > +index 40d5e2d34..d1504e6fb 100644 > +--- a/nss/lib/freebl/aes-armv8.c > ++++ b/nss/lib/freebl/aes-armv8.c > +@@ -5,9 +5,10 @@ > + #include "secerr.h" > + #include "rijndael.h" > + > +-#if (defined(__clang__) || \ > ++#if ((defined(__clang__) || \ > + (defined(__GNUC__) && defined(__GNUC_MINOR__) && \ > +- (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 8)))) > ++ (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 8)))) && \ > ++ (defined(__ARM_NEON) || defined(__ARM_NEON__))) > + > + #ifndef __ARM_FEATURE_CRYPTO > + #error "Compiler option is invalid" > +diff --git a/nss/lib/freebl/rijndael.c b/nss/lib/freebl/rijndael.c > +index 26bd58ee0..23893f419 100644 > +--- a/nss/lib/freebl/rijndael.c > ++++ b/nss/lib/freebl/rijndael.c > +@@ -20,7 +20,8 @@ > + #include "gcm.h" > + #include "mpi.h" > + > +-#if !defined(IS_LITTLE_ENDIAN) && !defined(NSS_X86_OR_X64) > ++#if (!defined(IS_LITTLE_ENDIAN) && !defined(NSS_X86_OR_X64)) || \ > ++ (!defined(__ARM_NEON) && !defined(__ARM_NEON__)) This part is wrong, I've sent upstream corrected patch[1] and I'm going to send v3 patch for buildroot. [1]: https://bugzilla.mozilla.org/show_bug.cgi?id=1590676 > + // not test yet on big endian platform of arm > + #undef USE_HW_AES > + #endif > +-- > +2.20.1 > + > -- Giulio Benetti Benetti Engineering sas