diff mbox series

[U-Boot,v3] tools/mxsimage: Support building with LibreSSL

Message ID 20180318150347.8669-1-hauke@hauke-m.de
State Accepted
Commit c5b0bca4c3ca5c3d1d8ee99fdbf3b494a3986dbd
Delegated to: Tom Rini
Headers show
Series [U-Boot,v3] tools/mxsimage: Support building with LibreSSL | expand

Commit Message

Hauke Mehrtens March 18, 2018, 3:03 p.m. UTC
The mxsimage utility fails to compile against LibreSSL version < 2.7.0
because LibreSSL says it is OpenSSL 2.0, but it does not support the
complete OpenSSL 1.1 interface.

LibreSSL defines OPENSSL_VERSION_NUMBER with 0x20000000L and therefor
claims to have an API compatible with OpenSSL 2.0, but it implements
EVP_MD_CTX_new(), EVP_MD_CTX_free() and EVP_CIPHER_CTX_reset() only
starting with version 2.7.0, which is not yet released. OpenSSL
implements this function since version 1.1.0.

This commit will activate the compatibility code meant for
OpenSSL < 1.1.0 also for LibreSSL version < 2.7.0.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
---
 tools/mxsimage.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Jonathan Gray March 19, 2018, 10:04 a.m. UTC | #1
On Sun, Mar 18, 2018 at 04:03:47PM +0100, Hauke Mehrtens wrote:
> The mxsimage utility fails to compile against LibreSSL version < 2.7.0
> because LibreSSL says it is OpenSSL 2.0, but it does not support the
> complete OpenSSL 1.1 interface.
> 
> LibreSSL defines OPENSSL_VERSION_NUMBER with 0x20000000L and therefor
> claims to have an API compatible with OpenSSL 2.0, but it implements
> EVP_MD_CTX_new(), EVP_MD_CTX_free() and EVP_CIPHER_CTX_reset() only
> starting with version 2.7.0, which is not yet released. OpenSSL
> implements this function since version 1.1.0.
> 
> This commit will activate the compatibility code meant for
> OpenSSL < 1.1.0 also for LibreSSL version < 2.7.0.
> 
> Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>

Reviewed-by: Jonathan Gray <jsg@jsg.id.au>

> ---
>  tools/mxsimage.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/tools/mxsimage.c b/tools/mxsimage.c
> index 32a7978cae..c8f1f204e3 100644
> --- a/tools/mxsimage.c
> +++ b/tools/mxsimage.c
> @@ -26,7 +26,8 @@
>   * OpenSSL 1.1.0 and newer compatibility functions:
>   * https://wiki.openssl.org/index.php/1.1_API_Changes
>   */
> -#if OPENSSL_VERSION_NUMBER < 0x10100000L
> +#if OPENSSL_VERSION_NUMBER < 0x10100000L || \
> +    (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x2070000fL)
>  static void *OPENSSL_zalloc(size_t num)
>  {
>  	void *ret = OPENSSL_malloc(num);
> -- 
> 2.11.0
> 
> _______________________________________________
> U-Boot mailing list
> U-Boot@lists.denx.de
> https://lists.denx.de/listinfo/u-boot
Tom Rini April 7, 2018, 1:24 p.m. UTC | #2
On Sun, Mar 18, 2018 at 04:03:47PM +0100, Hauke Mehrtens wrote:

> The mxsimage utility fails to compile against LibreSSL version < 2.7.0
> because LibreSSL says it is OpenSSL 2.0, but it does not support the
> complete OpenSSL 1.1 interface.
> 
> LibreSSL defines OPENSSL_VERSION_NUMBER with 0x20000000L and therefor
> claims to have an API compatible with OpenSSL 2.0, but it implements
> EVP_MD_CTX_new(), EVP_MD_CTX_free() and EVP_CIPHER_CTX_reset() only
> starting with version 2.7.0, which is not yet released. OpenSSL
> implements this function since version 1.1.0.
> 
> This commit will activate the compatibility code meant for
> OpenSSL < 1.1.0 also for LibreSSL version < 2.7.0.
> 
> Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
> Reviewed-by: Jonathan Gray <jsg@jsg.id.au>

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

Patch

diff --git a/tools/mxsimage.c b/tools/mxsimage.c
index 32a7978cae..c8f1f204e3 100644
--- a/tools/mxsimage.c
+++ b/tools/mxsimage.c
@@ -26,7 +26,8 @@ 
  * OpenSSL 1.1.0 and newer compatibility functions:
  * https://wiki.openssl.org/index.php/1.1_API_Changes
  */
-#if OPENSSL_VERSION_NUMBER < 0x10100000L
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || \
+    (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x2070000fL)
 static void *OPENSSL_zalloc(size_t num)
 {
 	void *ret = OPENSSL_malloc(num);