Cherry-pick four upstream commits that prevent building of otp_test_engine when LibreSSL-3.5.0 is used. Since OpenWrt bumped LibreSSL to 3.5.3 the erlang host builds fail to complete. CC ../priv/obj/x86_64-pc-linux-gnu/otp_test_engine.o otp_test_engine.c: In function 'test_engine_md5_init': otp_test_engine.c:144:34: error: dereferencing pointer to incomplete type 'EVP_MD_CTX' {aka 'struct env_md_ctx_st'} #define data(ctx) ((MD5_CTX *)ctx->md_data) ^~ Also switch to AUTORELEASE. Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
86 lines
3 KiB
Diff
86 lines
3 KiB
Diff
From ca2fed6c60039003f255ffe7a5d98744b8ebdedc Mon Sep 17 00:00:00 2001
|
|
From: Hans Nilsson <hans@erlang.org>
|
|
Date: Thu, 17 Feb 2022 12:22:06 +0100
|
|
Subject: [PATCH] crypto: Make configure flag --disable-otp-test-engine
|
|
|
|
---
|
|
lib/crypto/c_src/Makefile.in | 16 ++++++++++++++--
|
|
lib/crypto/configure.in | 10 ++++++++++
|
|
2 files changed, 24 insertions(+), 2 deletions(-)
|
|
|
|
--- a/lib/crypto/c_src/Makefile.in
|
|
+++ b/lib/crypto/c_src/Makefile.in
|
|
@@ -119,11 +119,17 @@ CRYPTO_STATIC_OBJS = $(patsubst $(OBJDIR
|
|
|
|
NIF_ARCHIVE = $(LIBDIR)/crypto$(TYPEMARKER).a
|
|
|
|
-TEST_ENGINE_OBJS = $(OBJDIR)/otp_test_engine$(TYPEMARKER).o
|
|
-
|
|
NIF_LIB = $(LIBDIR)/crypto$(TYPEMARKER).@DED_EXT@
|
|
CALLBACK_LIB = $(LIBDIR)/crypto_callback$(TYPEMARKER).@DED_EXT@
|
|
+
|
|
+DISABLE_OTP_TEST_ENGINE = @DISABLE_OTP_TEST_ENGINE@
|
|
+ifeq ($(DISABLE_OTP_TEST_ENGINE),yes)
|
|
+TEST_ENGINE_LIB =
|
|
+TEST_ENGINE_OBJS =
|
|
+else
|
|
TEST_ENGINE_LIB = $(LIBDIR)/otp_test_engine$(TYPEMARKER).@DED_EXT@
|
|
+TEST_ENGINE_OBJS = $(OBJDIR)/otp_test_engine$(TYPEMARKER).o
|
|
+endif
|
|
|
|
DYNAMIC_CRYPTO_LIB=@SSL_DYNAMIC_ONLY@
|
|
# Wierd that we compile as if dynamically linking when statically
|
|
@@ -182,6 +188,8 @@ debug opt valgrind asan: $(NIF_LIB) $(CA
|
|
|
|
static_lib: $(NIF_ARCHIVE)
|
|
|
|
+ifeq ($(DISABLE_OTP_TEST_ENGINE),yes)
|
|
+else
|
|
$(OBJDIR)/otp_test_engine$(TYPEMARKER).o: otp_test_engine.c
|
|
$(V_at)$(INSTALL_DIR) $(OBJDIR)
|
|
$(V_CC) -c -o $@ $(filter-out -Wmissing-prototypes,$(ALL_CFLAGS)) $<
|
|
@@ -193,6 +201,7 @@ $(LIBDIR)/otp_test_engine$(TYPEMARKER).s
|
|
$(LIBDIR)/otp_test_engine$(TYPEMARKER).dll: $(TEST_ENGINE_OBJS)
|
|
$(V_at)$(INSTALL_DIR) $(LIBDIR)
|
|
$(V_LD) $(LDFLAGS) -o $@ $(SSL_DED_LD_RUNTIME_LIBRARY_PATH) -L$(SSL_LIBDIR) $(TEST_ENGINE_OBJS) -l$(SSL_CRYPTO_LIBNAME) -l$(SSL_SSL_LIBNAME) $(SSL_EXTRA_LIBS)
|
|
+endif
|
|
|
|
$(OBJDIR)/%$(TYPEMARKER).o: %.c
|
|
$(V_at)$(INSTALL_DIR) $(OBJDIR)
|
|
@@ -255,7 +264,10 @@ release_spec: opt
|
|
ifeq ($(DYNAMIC_OR_WIN_CRYPTO_LIB),yes)
|
|
$(INSTALL_PROGRAM) $(CALLBACK_LIB) "$(RELSYSDIR)/priv/lib"
|
|
endif
|
|
+ifeq ($(DISABLE_OTP_TEST_ENGINE),yes)
|
|
+else
|
|
$(INSTALL_PROGRAM) $(TEST_ENGINE_LIB) "$(RELSYSDIR)/priv/lib"
|
|
+endif
|
|
|
|
release_docs_spec:
|
|
|
|
--- a/lib/crypto/configure.in
|
|
+++ b/lib/crypto/configure.in
|
|
@@ -156,6 +156,15 @@ AS_HELP_STRING([--disable-evp-hmac],
|
|
*) DISABLE_EVP_HMAC=0;;
|
|
esac ], DISABLE_EVP_HMAC=0)
|
|
|
|
+
|
|
+AC_ARG_ENABLE(otp-test-engine,
|
|
+AS_HELP_STRING([--disable-otp-test-engine],
|
|
+ [intentionally undocumented workaround]),
|
|
+[ case "$enableval" in
|
|
+ no) DISABLE_OTP_TEST_ENGINE=yes;;
|
|
+ *) DISABLE_OTP_TEST_ENGINE=no;;
|
|
+ esac ], DISABLE_OTP_TEST_ENGINE=no)
|
|
+
|
|
AC_ARG_ENABLE(deprecated_warnings,
|
|
AS_HELP_STRING([--disable-deprecated-warnings],
|
|
[disable warnings for deprecated functions in cryptolib (default is to warn, except for OpenSSL 3.x where the default is not to warn)]),
|
|
@@ -826,6 +835,7 @@ AC_SUBST(SSL_DED_LD_RUNTIME_LIBRARY_PATH
|
|
AC_SUBST(SSL_DYNAMIC_ONLY)
|
|
AC_SUBST(DISABLE_EVP_DH)
|
|
AC_SUBST(DISABLE_EVP_HMAC)
|
|
+AC_SUBST(DISABLE_OTP_TEST_ENGINE)
|
|
|
|
AC_OUTPUT(c_src/$host/Makefile:c_src/Makefile.in)
|
|
|