package/libopenssl does not support riscv32
riscv32 is (surprise!) a 32-bit architecture. But it has been Y2038-safe from its inception. As such, there are no legacy binaries that may use the 32-bit time syscalls, and thus they are not available on riscv32. Code that directly calls to the syscalls without using the C libraries wrappers thus need to handle this case by themselves. That's what upstream tried to do with:5b5e2985f3
We initially carried that patch with2bb26c1a1d
(package/libopenssl: fix build on riscv32). However, as Arnd Bergmann puts it [0]: The patch looks wrong to me: __NR_io_pgetevents_time64 must be used whenever time_t is 64-bit wide on a 32-bit architecture, while __NR_io_getevents/__NR_io_pgetevents must be used when time_t is the same width as 'long'. Checking whether __NR_io_getevents is defined is wrong for all architectures other than riscv And Arnd agrees that patch should be reverted [1] [2] (there are further comments in that stream, that are worth reading). As such, we've reverted2bb26c1a1d
with6cfb4ad7f7
. This means we have no working solution to enable openssl on riscv32 for now. So, rather than fail the build, or backport a dysfunctional patch, let's just forbid openssl on riscv32. Drop the default from the choice selection; it was anyway superfluous: the default of a choice, if left unspecified, is the first entry of the choice. Also, having a default means we'd have to also propagate the dependencies of the defaulted-to symbol, which is yet a little bit more maintenance. Since the chances we get a third implementation of openssl are pretty slim (very, very slim), reasoning about what is the default is still very easy. When propagating dependencies to tpm2-tss' users, we've tried to keep the architecture dependency toward the top when possible, and otherwise we've added it together with existing arch dependencies (MMU). While at it, drop a useless redundant comment in ibm-sw-tpm2: if we select FORCE_LIBOPENSSL, it is obvious that's because libressl is not supported... Besides none of the other users of FORCE_LIBOPENSSL have such a comment. Fixes: http://autobuild.buildroot.org/results/eb9/eb9a64d4ffae8569b5225083f282cf87ffa7c681/ ... http://autobuild.buildroot.org/results/07e/07e413b24ba8adc9558c80267ce16dda339bf032/ [0]5b5e2985f3 (commitcomment-44782859)
[1]5b5e2985f3 (commitcomment-47826509)
[2]5b5e2985f3 (commitcomment-47830530)
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr> Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Cc: Peter Korsgaard <peter@korsgaard.com> Cc: Matthew Weber <matthew.weber@rockwellcollins.com> Cc: Mark Corbin <mark@dibsco.co.uk>
This commit is contained in:
parent
e5594f7239
commit
c72be5dd2f
@ -76,6 +76,7 @@ config BR2_PACKAGE_HOSTAPD_WPS
|
||||
|
||||
config BR2_PACKAGE_HOSTAPD_WPA3
|
||||
bool "Enable WPA3 support"
|
||||
depends on BR2_PACKAGE_LIBOPENSSL_ARCH_SUPPORTS
|
||||
select BR2_PACKAGE_OPENSSL
|
||||
select BR2_PACKAGE_OPENSSL_FORCE_LIBOPENSSL
|
||||
help
|
||||
|
@ -2,8 +2,8 @@ config BR2_PACKAGE_IBM_SW_TPM2
|
||||
bool "ibm-sw-tpm2"
|
||||
depends on BR2_TOOLCHAIN_HAS_THREADS
|
||||
depends on !BR2_STATIC_LIBS # ibm-sw-tpm2
|
||||
depends on BR2_PACKAGE_LIBOPENSSL_ARCH_SUPPORTS
|
||||
select BR2_PACKAGE_OPENSSL
|
||||
# libressl is not supported
|
||||
select BR2_PACKAGE_OPENSSL_FORCE_LIBOPENSSL
|
||||
help
|
||||
This project is an implementation of the TCG TPM 2.0
|
||||
@ -14,4 +14,5 @@ config BR2_PACKAGE_IBM_SW_TPM2
|
||||
https://sourceforge.net/projects/ibmswtpm2/
|
||||
|
||||
comment "ibm-sw-tpm2 needs a toolchain w/ threads, dynamic library"
|
||||
depends on BR2_PACKAGE_LIBOPENSSL_ARCH_SUPPORTS
|
||||
depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS
|
||||
|
@ -1,6 +1,7 @@
|
||||
config BR2_PACKAGE_IMA_EVM_UTILS
|
||||
bool "ima-evm-utils"
|
||||
depends on BR2_USE_MMU # keyutils
|
||||
depends on BR2_PACKAGE_LIBOPENSSL_ARCH_SUPPORTS # tpm2-tss
|
||||
depends on !BR2_STATIC_LIBS # keyutils, tpm2-tss
|
||||
select BR2_PACKAGE_OPENSSL
|
||||
select BR2_PACKAGE_KEYUTILS
|
||||
@ -13,4 +14,5 @@ config BR2_PACKAGE_IMA_EVM_UTILS
|
||||
|
||||
comment "ima-evm-utils needs dynamic library support"
|
||||
depends on BR2_USE_MMU
|
||||
depends on BR2_PACKAGE_LIBOPENSSL_ARCH_SUPPORTS
|
||||
depends on BR2_STATIC_LIBS
|
||||
|
@ -1,5 +1,11 @@
|
||||
config BR2_PACKAGE_LIBOPENSSL_ARCH_SUPPORTS
|
||||
bool
|
||||
default y
|
||||
depends on !BR2_RISCV_32
|
||||
|
||||
config BR2_PACKAGE_OPENSSL_FORCE_LIBOPENSSL
|
||||
bool
|
||||
depends on BR2_PACKAGE_LIBOPENSSL_ARCH_SUPPORTS
|
||||
|
||||
config BR2_PACKAGE_OPENSSL
|
||||
bool "openssl support"
|
||||
@ -11,12 +17,12 @@ if BR2_PACKAGE_OPENSSL
|
||||
|
||||
choice
|
||||
prompt "ssl library"
|
||||
default BR2_PACKAGE_LIBOPENSSL
|
||||
help
|
||||
Select OpenSSL or LibreSSL.
|
||||
|
||||
config BR2_PACKAGE_LIBOPENSSL
|
||||
bool "openssl"
|
||||
depends on BR2_PACKAGE_LIBOPENSSL_ARCH_SUPPORTS
|
||||
select BR2_PACKAGE_ZLIB
|
||||
help
|
||||
A collaborative effort to develop a robust, commercial-grade,
|
||||
|
@ -3,6 +3,7 @@ config BR2_PACKAGE_SOFTETHER
|
||||
depends on BR2_TOOLCHAIN_HAS_THREADS
|
||||
depends on BR2_USE_MMU # fork()
|
||||
depends on BR2_USE_WCHAR
|
||||
depends on BR2_PACKAGE_LIBOPENSSL_ARCH_SUPPORTS
|
||||
select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE
|
||||
select BR2_PACKAGE_OPENSSL
|
||||
select BR2_PACKAGE_OPENSSL_FORCE_LIBOPENSSL
|
||||
@ -27,4 +28,5 @@ config BR2_PACKAGE_SOFTETHER
|
||||
|
||||
comment "softether needs a toolchain w/ wchar, threads"
|
||||
depends on BR2_USE_MMU
|
||||
depends on BR2_PACKAGE_LIBOPENSSL_ARCH_SUPPORTS
|
||||
depends on !(BR2_USE_WCHAR && BR2_TOOLCHAIN_HAS_THREADS)
|
||||
|
@ -3,6 +3,7 @@ config BR2_PACKAGE_TPM2_ABRMD
|
||||
depends on BR2_USE_WCHAR # libglib2
|
||||
depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2
|
||||
depends on BR2_USE_MMU # libglib2
|
||||
depends on BR2_PACKAGE_LIBOPENSSL_ARCH_SUPPORTS # tpm2-tss
|
||||
depends on !BR2_STATIC_LIBS # tpm2-tss
|
||||
select BR2_PACKAGE_LIBGLIB2
|
||||
select BR2_PACKAGE_TPM2_TSS
|
||||
@ -22,5 +23,6 @@ config BR2_PACKAGE_TPM2_ABRMD
|
||||
|
||||
comment "tpm2-abrmd needs a toolchain w/ dynamic library, wchar, threads"
|
||||
depends on BR2_USE_MMU
|
||||
depends on BR2_PACKAGE_LIBOPENSSL_ARCH_SUPPORTS
|
||||
depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \
|
||||
BR2_STATIC_LIBS
|
||||
|
@ -1,5 +1,6 @@
|
||||
config BR2_PACKAGE_TPM2_PKCS11
|
||||
bool "tpm2-pkcs11"
|
||||
depends on BR2_PACKAGE_LIBOPENSSL_ARCH_SUPPORTS # tpm2-tss
|
||||
depends on !BR2_STATIC_LIBS # tpm2-tss
|
||||
depends on BR2_TOOLCHAIN_HAS_THREADS
|
||||
select BR2_PACKAGE_LIBYAML
|
||||
@ -12,4 +13,5 @@ config BR2_PACKAGE_TPM2_PKCS11
|
||||
https://github.com/tpm2-software/tpm2-pkcs11
|
||||
|
||||
comment "tpm2-pkcs11 needs a toolchain w/ dynamic library, threads"
|
||||
depends on BR2_PACKAGE_LIBOPENSSL_ARCH_SUPPORTS
|
||||
depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS
|
||||
|
@ -1,5 +1,6 @@
|
||||
config BR2_PACKAGE_TPM2_TOOLS
|
||||
bool "tpm2-tools"
|
||||
depends on BR2_PACKAGE_LIBOPENSSL_ARCH_SUPPORTS # tpm2-tss
|
||||
depends on !BR2_STATIC_LIBS # tpm2-tss
|
||||
select BR2_PACKAGE_LIBCURL
|
||||
select BR2_PACKAGE_OPENSSL
|
||||
@ -19,4 +20,5 @@ config BR2_PACKAGE_TPM2_TOOLS
|
||||
https://github.com/tpm2-software/tpm2-tools
|
||||
|
||||
comment "tpm2-tools needs a toolchain w/ dynamic library"
|
||||
depends on BR2_PACKAGE_LIBOPENSSL_ARCH_SUPPORTS
|
||||
depends on BR2_STATIC_LIBS
|
||||
|
@ -1,5 +1,6 @@
|
||||
config BR2_PACKAGE_TPM2_TOTP
|
||||
bool "tpm2-totp"
|
||||
depends on BR2_PACKAGE_LIBOPENSSL_ARCH_SUPPORTS # tpm2-tss
|
||||
depends on !BR2_STATIC_LIBS # tpm2-tss
|
||||
depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM # glibc < 2.20
|
||||
select BR2_PACKAGE_LIBQRENCODE
|
||||
@ -19,5 +20,6 @@ config BR2_PACKAGE_TPM2_TOTP
|
||||
https://github.com/tpm2-software/tpm2-totp
|
||||
|
||||
comment "tpm2-totp needs a toolchain w/ dynamic library"
|
||||
depends on BR2_PACKAGE_LIBOPENSSL_ARCH_SUPPORTS
|
||||
depends on BR2_STATIC_LIBS
|
||||
depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM
|
||||
|
@ -1,6 +1,7 @@
|
||||
config BR2_PACKAGE_TPM2_TSS
|
||||
bool "tpm2-tss"
|
||||
depends on !BR2_STATIC_LIBS # dlfcn.h
|
||||
depends on BR2_PACKAGE_LIBOPENSSL_ARCH_SUPPORTS
|
||||
select BR2_PACKAGE_LIBURIPARSER
|
||||
select BR2_PACKAGE_OPENSSL
|
||||
select BR2_PACKAGE_OPENSSL_FORCE_LIBOPENSSL
|
||||
@ -55,4 +56,5 @@ config BR2_PACKAGE_TPM2_TSS_FAPI
|
||||
endif
|
||||
|
||||
comment "tpm2-tss needs a toolchain w/ dynamic library"
|
||||
depends on BR2_PACKAGE_LIBOPENSSL_ARCH_SUPPORTS
|
||||
depends on BR2_STATIC_LIBS
|
||||
|
@ -49,6 +49,7 @@ config BR2_PACKAGE_WPA_SUPPLICANT_WIFI_DISPLAY
|
||||
config BR2_PACKAGE_WPA_SUPPLICANT_MESH_NETWORKING
|
||||
bool "Enable mesh networking"
|
||||
depends on BR2_PACKAGE_WPA_SUPPLICANT_AP_SUPPORT
|
||||
depends on BR2_PACKAGE_LIBOPENSSL_ARCH_SUPPORTS
|
||||
select BR2_PACKAGE_OPENSSL
|
||||
select BR2_PACKAGE_OPENSSL_FORCE_LIBOPENSSL
|
||||
help
|
||||
@ -83,6 +84,7 @@ config BR2_PACKAGE_WPA_SUPPLICANT_WPS
|
||||
|
||||
config BR2_PACKAGE_WPA_SUPPLICANT_WPA3
|
||||
bool "Enable WPA3 support"
|
||||
depends on BR2_PACKAGE_LIBOPENSSL_ARCH_SUPPORTS
|
||||
select BR2_PACKAGE_OPENSSL
|
||||
select BR2_PACKAGE_OPENSSL_FORCE_LIBOPENSSL
|
||||
help
|
||||
|
Loading…
Reference in New Issue
Block a user