From dec95d75897125133380c7ce3c6ce58c93c06f10 Mon Sep 17 00:00:00 2001 From: Richard Levitte Date: Fri, 4 Oct 2019 01:38:17 +0200 Subject: Rework how our providers are built We put almost everything in these internal static libraries: libcommon Block building code that can be used by all our implementations, legacy and non-legacy alike. libimplementations All non-legacy algorithm implementations and only them. All the code that ends up here is agnostic to the definitions of FIPS_MODE. liblegacy All legacy implementations. libnonfips Support code for the algorithm implementations. Built with FIPS_MODE undefined. Any code that checks that FIPS_MODE isn't defined must end up in this library. libfips Support code for the algorithm implementations. Built with FIPS_MODE defined. Any code that checks that FIPS_MODE is defined must end up in this library. The FIPS provider module is built from providers/fips/*.c and linked with libimplementations, libcommon and libfips. The Legacy provider module is built from providers/legacy/*.c and linked with liblegacy, libcommon and libcrypto. If module building is disabled, the object files from liblegacy and libcommon are added to libcrypto and the Legacy provider becomes a built-in provider. The Default provider module is built-in, so it ends up being linked with libimplementations, libcommon and libnonfips. For libcrypto in form of static library, the object files from those other libraries are simply being added to libcrypto. Reviewed-by: Matt Caswell (Merged from https://github.com/openssl/openssl/pull/10088) --- crypto/buffer/build.info | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'crypto/buffer/build.info') diff --git a/crypto/buffer/build.info b/crypto/buffer/build.info index 63de1a570f..6f31397be7 100644 --- a/crypto/buffer/build.info +++ b/crypto/buffer/build.info @@ -1,3 +1,3 @@ LIBS=../../libcrypto SOURCE[../../libcrypto]=buffer.c buf_err.c -SOURCE[../../providers/fips]=buffer.c +SOURCE[../../providers/libfips.a]=buffer.c -- cgit v1.2.3