From fd4b13acd90bdc107a072660d91baa163474ebef Mon Sep 17 00:00:00 2001 From: Pierre Pronchery Date: Fri, 15 Sep 2023 17:14:16 +0200 Subject: [PATCH] libcrypto: link engines and the legacy provider to libcrypto OpenSSL's legacy provider module and engines need to link to libcrypto.so, as it provides some of the actual implementations of legacy routines. This is a little tricky due to build order issues. Introduce a small hack (LIBCRYPTO_WITHOUT_SUBDIRS) that builds libcrypto.so in its usual early phase without any OpenSSL provider modules or engines. This is intended to restore the test suite; a future change should remove the hack and replace it with a better approach. PR: 254853, 273528 Discussed with: Folks at EuroBSDCon in Coimbra Sponsored by: The FreeBSD Foundation (cherry picked from commit 1a18383a52bc373e316d224cef1298debf6f7e25) --- Makefile.inc1 | 2 +- secure/lib/libcrypto/Makefile | 2 ++ secure/lib/libcrypto/engines/Makefile.inc | 2 ++ secure/lib/libcrypto/modules/legacy/Makefile | 1 + 4 files changed, 6 insertions(+), 1 deletion(-) diff --git a/Makefile.inc1 b/Makefile.inc1 index f740cc5abcc..45d034c0002 100644 --- a/Makefile.inc1 +++ b/Makefile.inc1 @@ -2980,7 +2980,7 @@ libraries: .MAKE .PHONY ${_+_}cd ${.CURDIR}; \ ${MAKE} -f Makefile.inc1 _prereq_libs; \ ${MAKE} -f Makefile.inc1 _startup_libs; \ - ${MAKE} -f Makefile.inc1 _prebuild_libs; \ + ${MAKE} -f Makefile.inc1 _prebuild_libs -DLIBCRYPTO_WITHOUT_SUBDIRS; \ ${MAKE} -f Makefile.inc1 _generic_libs # diff --git a/secure/lib/libcrypto/Makefile b/secure/lib/libcrypto/Makefile index 585e8986181..d8ae91bb327 100644 --- a/secure/lib/libcrypto/Makefile +++ b/secure/lib/libcrypto/Makefile @@ -1,6 +1,8 @@ SHLIBDIR?= /lib +.if !defined(LIBCRYPTO_WITHOUT_SUBDIRS) SUBDIR= engines modules +.endif .include .include diff --git a/secure/lib/libcrypto/engines/Makefile.inc b/secure/lib/libcrypto/engines/Makefile.inc index 39b728ff722..13d5f4849cb 100644 --- a/secure/lib/libcrypto/engines/Makefile.inc +++ b/secure/lib/libcrypto/engines/Makefile.inc @@ -16,6 +16,8 @@ CFLAGS+= -DB_ENDIAN .endif CFLAGS+= -DNDEBUG +LIBADD= crypto + .PATH: ${LCRYPTO_SRC}/engines WARNS?= 0 diff --git a/secure/lib/libcrypto/modules/legacy/Makefile b/secure/lib/libcrypto/modules/legacy/Makefile index 913c0c41f5e..a285d0b1148 100644 --- a/secure/lib/libcrypto/modules/legacy/Makefile +++ b/secure/lib/libcrypto/modules/legacy/Makefile @@ -1,5 +1,6 @@ SHLIB_NAME?= legacy.so +LIBADD= crypto SRCS+= legacyprov.c prov_running.c