diff mbox series

[U-Boot] Refactor IMAGE_ENABLE_VERIFY to handle builds without SPL verification

Message ID 20190418203455.7985-1-alex.kiernan@gmail.com
State Accepted
Commit 89665f2eb1e074d427af38eea71d924be6f2f15c
Delegated to: Tom Rini
Headers show
Series [U-Boot] Refactor IMAGE_ENABLE_VERIFY to handle builds without SPL verification | expand

Commit Message

Alex Kiernan April 18, 2019, 8:34 p.m. UTC
If building with SPL_LOAD_FIT_FULL and FIT_SIGNATURE, but without
SPL_FIT_SIGNATURE then the build fails with:

  common/built-in.o: In function `fit_image_verify_with_data':
  common/image-fit.c:1220: undefined reference to `fit_image_verify_required_sigs'
  common/image-fit.c:1244: undefined reference to `fit_image_check_sig'
  common/built-in.o: In function `fit_image_load':
  common/image-fit.c:1857: undefined reference to `fit_config_verify'

Refactor so that host builds still depend on FIT_SIGNATURE, but target
builds check FIT_SIGNATURE/SPL_FIT_SIGNATURE dependent on the build.

Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
---
Green travis build:

https://travis-ci.org/akiernan/u-boot/builds/521570862

 include/image.h | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

Comments

Simon Glass April 24, 2019, 3:18 p.m. UTC | #1
On Thu, 18 Apr 2019 at 14:35, Alex Kiernan <alex.kiernan@gmail.com> wrote:
>
> If building with SPL_LOAD_FIT_FULL and FIT_SIGNATURE, but without
> SPL_FIT_SIGNATURE then the build fails with:
>
>   common/built-in.o: In function `fit_image_verify_with_data':
>   common/image-fit.c:1220: undefined reference to `fit_image_verify_required_sigs'
>   common/image-fit.c:1244: undefined reference to `fit_image_check_sig'
>   common/built-in.o: In function `fit_image_load':
>   common/image-fit.c:1857: undefined reference to `fit_config_verify'
>
> Refactor so that host builds still depend on FIT_SIGNATURE, but target
> builds check FIT_SIGNATURE/SPL_FIT_SIGNATURE dependent on the build.
>
> Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
> ---
> Green travis build:
>
> https://travis-ci.org/akiernan/u-boot/builds/521570862
>
>  include/image.h | 12 ++++++------
>  1 file changed, 6 insertions(+), 6 deletions(-)

Reviewed-by: Simon Glass <sjg@chromium.org>
Tom Rini May 6, 2019, 11:13 a.m. UTC | #2
On Thu, Apr 18, 2019 at 08:34:55PM +0000, Alex Kiernan wrote:

> If building with SPL_LOAD_FIT_FULL and FIT_SIGNATURE, but without
> SPL_FIT_SIGNATURE then the build fails with:
> 
>   common/built-in.o: In function `fit_image_verify_with_data':
>   common/image-fit.c:1220: undefined reference to `fit_image_verify_required_sigs'
>   common/image-fit.c:1244: undefined reference to `fit_image_check_sig'
>   common/built-in.o: In function `fit_image_load':
>   common/image-fit.c:1857: undefined reference to `fit_config_verify'
> 
> Refactor so that host builds still depend on FIT_SIGNATURE, but target
> builds check FIT_SIGNATURE/SPL_FIT_SIGNATURE dependent on the build.
> 
> Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
> Reviewed-by: Simon Glass <sjg@chromium.org>

Applied to u-boot/master, thanks!
diff mbox series

Patch

diff --git a/include/image.h b/include/image.h
index 765ffecee0a7..c8522189ebab 100644
--- a/include/image.h
+++ b/include/image.h
@@ -1071,18 +1071,18 @@  int calculate_hash(const void *data, int data_len, const char *algo,
  * At present we only support signing on the host, and verification on the
  * device
  */
-#if defined(CONFIG_FIT_SIGNATURE)
-# ifdef USE_HOSTCC
+#if defined(USE_HOSTCC)
+# if defined(CONFIG_FIT_SIGNATURE)
 #  define IMAGE_ENABLE_SIGN	1
 #  define IMAGE_ENABLE_VERIFY	1
-# include  <openssl/evp.h>
-#else
+#  include <openssl/evp.h>
+# else
 #  define IMAGE_ENABLE_SIGN	0
-#  define IMAGE_ENABLE_VERIFY	1
+#  define IMAGE_ENABLE_VERIFY	0
 # endif
 #else
 # define IMAGE_ENABLE_SIGN	0
-# define IMAGE_ENABLE_VERIFY	0
+# define IMAGE_ENABLE_VERIFY	CONFIG_IS_ENABLED(FIT_SIGNATURE)
 #endif
 
 #ifdef USE_HOSTCC