diff mbox series

[master+LTS] package/libopenssl: fix target architecture for MIPS64n32

Message ID 20200619065033.8982-1-patrickdepinguin@gmail.com
State Accepted
Headers show
Series [master+LTS] package/libopenssl: fix target architecture for MIPS64n32 | expand

Commit Message

Thomas De Schampheleire June 19, 2020, 6:50 a.m. UTC
From: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>

Commit 1ebb35ee5fb7bd5e6278a84ac2c18aa0a38056fb changed the libopenssl
target architecture to 'linux-generic64' for 64-bit archs based on
BR2_ARCH_IS_64. However, MIPS64n32 has BR2_ARCH_IS_64 set, but is a 32-bit
ABI. On such board, libopenssl needs to be configured with linux-generic32
to function properly.

One symptom of this problem is that ssh-keygen hangs on key generation,
waiting for more random bits. See [1] for the discussion with openssl
upstream.

Thanks to Ronny Meeus for investigating the issue and kudos to the openssl
community for their responsive and helpful interaction!

Reported-by: Ronny Meeus <ronny.meeus@nokia.com>
Signed-off-by: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>

[1] https://mta.openssl.org/pipermail/openssl-users/2020-June/012565.html
---
 package/libopenssl/Config.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Thomas Petazzoni June 20, 2020, 7:38 p.m. UTC | #1
On Fri, 19 Jun 2020 08:50:33 +0200
Thomas De Schampheleire <patrickdepinguin@gmail.com> wrote:

> From: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
> 
> Commit 1ebb35ee5fb7bd5e6278a84ac2c18aa0a38056fb changed the libopenssl
> target architecture to 'linux-generic64' for 64-bit archs based on
> BR2_ARCH_IS_64. However, MIPS64n32 has BR2_ARCH_IS_64 set, but is a 32-bit
> ABI. On such board, libopenssl needs to be configured with linux-generic32
> to function properly.
> 
> One symptom of this problem is that ssh-keygen hangs on key generation,
> waiting for more random bits. See [1] for the discussion with openssl
> upstream.
> 
> Thanks to Ronny Meeus for investigating the issue and kudos to the openssl
> community for their responsive and helpful interaction!
> 
> Reported-by: Ronny Meeus <ronny.meeus@nokia.com>
> Signed-off-by: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
> 
> [1] https://mta.openssl.org/pipermail/openssl-users/2020-June/012565.html
> ---
>  package/libopenssl/Config.in | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)

Thanks a lot for the investigation and fix! I've applied as-is as it is
the most immediate fix.

However, I am wondering if we shouldn't make BR2_MIPS_NABI32 *not*
select BR2_ARCH_IS_64. Indeed, for most packages (which are running
userspace code), mips64n32 *is* a 32-bit architecture.

We could make that even clearer by having a BR2_KERNEL_ARCH_IS_64, if
there's anything that needs to know at the kernel level the bitness.

But it overall feels incorrect for BR2_MIPS_NABI32 to select
BR2_ARCH_IS_64.

What do you think ?

Thomas
Peter Korsgaard July 15, 2020, 9:24 p.m. UTC | #2
>>>>> "Thomas" == Thomas De Schampheleire <patrickdepinguin@gmail.com> writes:

 > From: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
 > Commit 1ebb35ee5fb7bd5e6278a84ac2c18aa0a38056fb changed the libopenssl
 > target architecture to 'linux-generic64' for 64-bit archs based on
 > BR2_ARCH_IS_64. However, MIPS64n32 has BR2_ARCH_IS_64 set, but is a 32-bit
 > ABI. On such board, libopenssl needs to be configured with linux-generic32
 > to function properly.

 > One symptom of this problem is that ssh-keygen hangs on key generation,
 > waiting for more random bits. See [1] for the discussion with openssl
 > upstream.

 > Thanks to Ronny Meeus for investigating the issue and kudos to the openssl
 > community for their responsive and helpful interaction!

 > Reported-by: Ronny Meeus <ronny.meeus@nokia.com>
 > Signed-off-by: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>

 > [1] https://mta.openssl.org/pipermail/openssl-users/2020-June/012565.html

Committed to 2020.02.x and 2020.05.x, thanks.
diff mbox series

Patch

diff --git a/package/libopenssl/Config.in b/package/libopenssl/Config.in
index 881518d1cb..8909e36b9e 100644
--- a/package/libopenssl/Config.in
+++ b/package/libopenssl/Config.in
@@ -29,7 +29,7 @@  config BR2_PACKAGE_LIBOPENSSL_TARGET_ARCH
 	# no-asm is needed with generic architectures such as
 	# linux-generic{32,64}, see
 	# https://github.com/openssl/openssl/issues/9839
-	default "linux-generic64 no-asm"	if BR2_ARCH_IS_64
+	default "linux-generic64 no-asm"	if BR2_ARCH_IS_64 && !BR2_MIPS_NABI32
 	default "linux-generic32 no-asm"
 
 config BR2_PACKAGE_LIBOPENSSL_BIN