Message ID | 20210822044649.13585-2-samuel@sholland.org |
---|---|
State | Superseded |
Delegated to: | Andre Przywara |
Headers | show |
Series | sunxi: TOC0 image type support | expand |
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. Moreover kwbimage format is used also by orion and kirkwood platforms. So this dependency needs to be enabled on more places. > 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 >
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 >>
On Sun, 22 Aug 2021 12:32:40 -0500 Samuel Holland <samuel@sholland.org> wrote: Hi Samuel, > 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. I did notice, because my host doesn't have a compatible libopenssl. Every build fails, because kwbimage.o was unconditionally included. My previous workaround was to disable TOOLS_LIBCRYPTO, but this didn't help after the patch you mentioned. So your solution is a quite nice fix, and I can stop looking for a workaround. However this somewhat breaks again somewhat needlessly with 4/4 (when compiling for any SUNXI board, which don't really need TOC0), but this can be easily avoided. Cheers, Andre > > 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 > >> >
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 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
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(-)