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
This commit is contained in:
Pierre Pronchery 2023-09-15 17:14:16 +02:00 committed by Ed Maste
parent ef89b78bb1
commit 1a18383a52
4 changed files with 6 additions and 1 deletions

View file

@ -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
#

View file

@ -1,6 +1,8 @@
SHLIBDIR?= /lib
.if !defined(LIBCRYPTO_WITHOUT_SUBDIRS)
SUBDIR= engines modules
.endif
.include <bsd.own.mk>
.include <src.opts.mk>

View file

@ -16,6 +16,8 @@ CFLAGS+= -DB_ENDIAN
.endif
CFLAGS+= -DNDEBUG
LIBADD= crypto
.PATH: ${LCRYPTO_SRC}/engines
WARNS?= 0

View file

@ -1,5 +1,6 @@
SHLIB_NAME?= legacy.so
LIBADD= crypto
SRCS+= legacyprov.c prov_running.c