
On 8/22/21 4:58 AM, Pali Rohár wrote:
Hello!
On Saturday 21 August 2021 23:46:45 Samuel Holland wrote:
Some image types always depend on OpenSSL, so they can only be included in mkimage when TOOLS_LIBCRYPTO is selected. Instead of using arbitrary preprocessor definitions, conditionally link the files.
When building for platforms which use those image types, automatically select TOOLS_LIBCRYPTO, it is required for the build to complete.
Signed-off-by: Samuel Holland samuel@sholland.org
Changes in v2:
- Refactored the first patch on top of TOOLS_LIBCRYPTO
arch/arm/mach-imx/mxs/Kconfig | 2 ++ arch/arm/mach-mvebu/Kconfig | 1 + scripts/config_whitelist.txt | 1 - tools/Makefile | 19 +++++-------------- tools/mxsimage.c | 3 --- 5 files changed, 8 insertions(+), 18 deletions(-)
diff --git a/arch/arm/mach-imx/mxs/Kconfig b/arch/arm/mach-imx/mxs/Kconfig index 9f48ffda414..24d452942a5 100644 --- a/arch/arm/mach-imx/mxs/Kconfig +++ b/arch/arm/mach-imx/mxs/Kconfig @@ -3,6 +3,7 @@ if ARCH_MX23 config MX23 bool default y
- select TOOLS_LIBCRYPTO
choice prompt "MX23 board select" @@ -34,6 +35,7 @@ if ARCH_MX28 config MX28 bool default y
- select TOOLS_LIBCRYPTO
choice prompt "MX28 board select" diff --git a/arch/arm/mach-mvebu/Kconfig b/arch/arm/mach-mvebu/Kconfig index 89737a37ad9..c02521c71bc 100644 --- a/arch/arm/mach-mvebu/Kconfig +++ b/arch/arm/mach-mvebu/Kconfig @@ -29,6 +29,7 @@ config ARMADA_38X bool select ARMADA_32BIT select HAVE_MVEBU_EFUSE
- select TOOLS_LIBCRYPTO
kwbimage format is used also by A375 and AXP platform. So rather put this select into ARMADA_32BIT section.
I can do this.
Moreover kwbimage format is used also by orion and kirkwood platforms. So this dependency needs to be enabled on more places.
Since you know where they should go, would you be willing to send a patch adding the additional "select"s?
Side note: TOOLS_LIBCRYPTO=y is the default, so nobody seems to have noticed, but actually the build with TOOLS_LIBCRYPTO=n is broken since commit b4f3cc2c42d9 ("tools: kwbimage: Do not hide usage of secure header under CONFIG_ARMADA_38X"). So I will add a Fixes: tag in v3.
Regards, Samuel
config ARMADA_38X_HS_IMPEDANCE_THRESH hex "Armada 38x USB 2.0 High-Speed Impedance Threshold (0x0 - 0x7)" diff --git a/scripts/config_whitelist.txt b/scripts/config_whitelist.txt index 2d70bf5da7c..5caaad0c3dc 100644 --- a/scripts/config_whitelist.txt +++ b/scripts/config_whitelist.txt @@ -1000,7 +1000,6 @@ CONFIG_MXC_UART_BASE CONFIG_MXC_USB_FLAGS CONFIG_MXC_USB_PORT CONFIG_MXC_USB_PORTSC -CONFIG_MXS CONFIG_MXS_AUART CONFIG_MXS_AUART_BASE CONFIG_MXS_OCOTP diff --git a/tools/Makefile b/tools/Makefile index 4a86321f646..ad0e9cf9490 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -94,9 +94,11 @@ ECDSA_OBJS-$(CONFIG_TOOLS_LIBCRYPTO) := $(addprefix lib/ecdsa/, ecdsa-libcrypto. AES_OBJS-$(CONFIG_TOOLS_LIBCRYPTO) := $(addprefix lib/aes/, \ aes-encrypt.o aes-decrypt.o)
-# Cryptographic helpers that depend on openssl/libcrypto -LIBCRYPTO_OBJS-$(CONFIG_TOOLS_LIBCRYPTO) := $(addprefix lib/, \
fdt-libcrypto.o)
+# Cryptographic helpers and image types that depend on openssl/libcrypto +LIBCRYPTO_OBJS-$(CONFIG_TOOLS_LIBCRYPTO) := \
lib/fdt-libcrypto.o \
kwbimage.o \
mxsimage.o
ROCKCHIP_OBS = lib/rc4.o rkcommon.o rkimage.o rksd.o rkspi.o
@@ -117,10 +119,8 @@ dumpimage-mkimage-objs := aisimage.o \ imximage.o \ imx8image.o \ imx8mimage.o \
kwbimage.o \ lib/md5.o \ lpc32xximage.o \
mxsimage.o \ omapimage.o \ os_support.o \ pblimage.o \
@@ -155,22 +155,13 @@ fit_info-objs := $(dumpimage-mkimage-objs) fit_info.o fit_check_sign-objs := $(dumpimage-mkimage-objs) fit_check_sign.o file2include-objs := file2include.o
-ifneq ($(CONFIG_MX23)$(CONFIG_MX28)$(CONFIG_TOOLS_LIBCRYPTO),) -# Add CONFIG_MXS into host CFLAGS, so we can check whether or not register -# the mxsimage support within tools/mxsimage.c . -HOSTCFLAGS_mxsimage.o += -DCONFIG_MXS -endif
ifdef CONFIG_TOOLS_LIBCRYPTO # This affects include/image.h, but including the board config file # is tricky, so manually define this options here. HOST_EXTRACFLAGS += -DCONFIG_FIT_SIGNATURE HOST_EXTRACFLAGS += -DCONFIG_FIT_SIGNATURE_MAX_SIZE=0xffffffff HOST_EXTRACFLAGS += -DCONFIG_FIT_CIPHER -endif
-# MXSImage needs LibSSL -ifneq ($(CONFIG_MX23)$(CONFIG_MX28)$(CONFIG_ARMADA_38X)$(CONFIG_TOOLS_LIBCRYPTO),) HOSTCFLAGS_kwbimage.o += \ $(shell pkg-config --cflags libssl libcrypto 2> /dev/null || echo "") HOSTLDLIBS_mkimage += \ diff --git a/tools/mxsimage.c b/tools/mxsimage.c index 002f4b525aa..2bfbb421eb6 100644 --- a/tools/mxsimage.c +++ b/tools/mxsimage.c @@ -5,8 +5,6 @@
- Copyright (C) 2012-2013 Marek Vasut marex@denx.de
*/
-#ifdef CONFIG_MXS
#include <errno.h> #include <fcntl.h> #include <stdio.h> @@ -2363,4 +2361,3 @@ U_BOOT_IMAGE_TYPE( NULL, mxsimage_generate );
-#endif
2.31.1