[Buildroot] [PATCH 1/1] package/libnss: fix build on ARM big endian

Giulio Benetti giulio.benetti at benettiengineering.com
Sun Aug 8 12:30:03 UTC 2021


Hi Fabrice,

On 8/7/21 11:47 PM, Giulio Benetti wrote:
> Hi Fabrice,
> 
> On 8/7/21 11:32 PM, Fabrice Fontaine wrote:
>> Fix the follownig build failure on ARM big endian raised since bump to
>> version 3.68 in commit 0a73b9b962421ce7a72c88e5f5bbd8849f21b041:
>>
>> Linux2.6_aarch64_aarch64_be-linux-gnu-gcc_glibc_PTH_64_DBG.OBJ/Linux_SINGLE_SHLIB/sha256-armv8.o: In function `SHA256_Compress_Native':
>> sha256-armv8.c:(.text.SHA256_Compress_Native+0x0): multiple definition of `SHA256_Compress_Native'
>> Linux2.6_aarch64_aarch64_be-linux-gnu-gcc_glibc_PTH_64_DBG.OBJ/Linux_SINGLE_SHLIB/sha512.o:sha512.c:(.text.SHA256_Compress_Native+0x0): first defined here
>> Linux2.6_aarch64_aarch64_be-linux-gnu-gcc_glibc_PTH_64_DBG.OBJ/Linux_SINGLE_SHLIB/sha256-armv8.o: In function `SHA256_Update_Native':
>> sha256-armv8.c:(.text.SHA256_Update_Native+0x0): multiple definition of `SHA256_Update_Native'
>> Linux2.6_aarch64_aarch64_be-linux-gnu-gcc_glibc_PTH_64_DBG.OBJ/Linux_SINGLE_SHLIB/sha512.o:sha512.c:(.text.SHA256_Update_Native+0x0): first defined here
>>
>> Fixes:
>>    - http://autobuild.buildroot.org/results/237aba0c16a34fec1b0fe50fe08cace438eda1bf
>>
>> Signed-off-by: Fabrice Fontaine <fontaine.fabrice at gmail.com>
>> ---
>>    ...2.c-fix-SHA256-redefinition-on-ARM-b.patch | 47 +++++++++++++++++++
>>    1 file changed, 47 insertions(+)
>>    create mode 100644 package/libnss/0001-lib-freebl-sha512.c-fix-SHA256-redefinition-on-ARM-b.patch
>>
>> diff --git a/package/libnss/0001-lib-freebl-sha512.c-fix-SHA256-redefinition-on-ARM-b.patch b/package/libnss/0001-lib-freebl-sha512.c-fix-SHA256-redefinition-on-ARM-b.patch
>> new file mode 100644
>> index 0000000000..f925f20051
>> --- /dev/null
>> +++ b/package/libnss/0001-lib-freebl-sha512.c-fix-SHA256-redefinition-on-ARM-b.patch
>> @@ -0,0 +1,47 @@
>> +From 434d79c52db5b680accc531572319bd7094fa470 Mon Sep 17 00:00:00 2001
>> +From: Fabrice Fontaine <fontaine.fabrice at gmail.com>
>> +Date: Sat, 7 Aug 2021 23:19:01 +0200
>> +Subject: [PATCH] lib/freebl/sha512.c: fix SHA256 redefinition on ARM big
>> + endian
>> +
>> +For an unknown reason, SHA256_{Compress,Update}_Native are defined in
>> +lib/freebl/sha512.c if IS_LITTLE_ENDIAN is undefined since version 3.68
>> +and
>> +https://github.com/nss-dev/nss/commit/e1e00f21f2d73e0d5d27651ad5606efa5714abe4
>> +
>> +This raises the following build failure on ARM big endian:
>> +
>> +Linux2.6_aarch64_aarch64_be-linux-gnu-gcc_glibc_PTH_64_DBG.OBJ/Linux_SINGLE_SHLIB/sha256-armv8.o: In function `SHA256_Compress_Native':
>> +sha256-armv8.c:(.text.SHA256_Compress_Native+0x0): multiple definition of `SHA256_Compress_Native'
>> +Linux2.6_aarch64_aarch64_be-linux-gnu-gcc_glibc_PTH_64_DBG.OBJ/Linux_SINGLE_SHLIB/sha512.o:sha512.c:(.text.SHA256_Compress_Native+0x0): first defined here
>> +Linux2.6_aarch64_aarch64_be-linux-gnu-gcc_glibc_PTH_64_DBG.OBJ/Linux_SINGLE_SHLIB/sha256-armv8.o: In function `SHA256_Update_Native':
>> +sha256-armv8.c:(.text.SHA256_Update_Native+0x0): multiple definition of `SHA256_Update_Native'
>> +Linux2.6_aarch64_aarch64_be-linux-gnu-gcc_glibc_PTH_64_DBG.OBJ/Linux_SINGLE_SHLIB/sha512.o:sha512.c:(.text.SHA256_Update_Native+0x0): first defined here
>> +
>> +Revert this change as it seems completely unrelated to the commit title
>> +"Bug 1655493 - Support SHA2 HW acceleration using Intel SHA Extension"
> 
> I'm not completely sure about this, since I remember most of armv8
> accelerations only work for LITTLE_ENDIAN. But I can't login to the
> Mozilla Bugzilla because of two factor authentication I've never enabled
> and I've asked help to fix this days ago with no answer. Do you have
> access to it?
> 
> Can you please clarify if that acceleration is valid on BIG_ENDIAN too?
> It's not written anywhere, but more than one lib/freebl/ lib
> acceleration has been done only for LITTLE_ENDIAN. What worries me is
> the hash table at the top that *maybe* is only suitable for LITTLE_ENDIAN:
> https://hg.mozilla.org/projects/nss/file/tip/lib/freebl/sha256-armv8.c#l24
> 
> For example check this patch I've sent time ago:
> https://hg.mozilla.org/projects/nss/rev/fa0d958de0c3cf99a7ec66e819b128c7bc88ff9f
> and the related bug:
> https://bugzilla.mozilla.org/show_bug.cgi?id=1580126
> 
> That makes me believe that is only LITTLE_ENDIAN compatible also due to
> this:
> https://hg.mozilla.org/projects/nss/file/tip/lib/freebl/sha512.c#l167
> 
> BUT I can't reach anyone, and they don't sign off the commits, so no
> e-mail to CC. Maybe you can through Mozilla Bugzilla?

Finally I have access to Mozilla Bugzilla and i've filed the bug:
https://bugzilla.mozilla.org/show_bug.cgi?id=1724629

So I'd wait for their response and fix according to it.

Kind regards
-- 
Giulio Benetti
Benetti Engineering sas


More information about the buildroot mailing list