Document how to force linking with static libraries Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/1889)
diff --git a/Configurations/README b/Configurations/README index 0b82ded..21a6f03 100644 --- a/Configurations/README +++ b/Configurations/README
@@ -339,6 +339,17 @@ to be located in the source tree while files given through DEPEND are expected to be located in the build tree) +It's also possible to depend on static libraries explicitely: + + DEPEND[foo]=libsomething.a + DEPEND[libbar]=libsomethingelse.a + +This should be rarely used, and care should be taken to make sure it's +only used when supported. For example, native Windows build doesn't +support build static libraries and DLLs at the same time, so using +static libraries on Windows can only be done when configured +'no-shared'. + For some libraries, we maintain files with public symbols and their slot in a transfer vector (important on some platforms). It can be declared like this:
diff --git a/Configurations/README.design b/Configurations/README.design index bea9790..41c2949 100644 --- a/Configurations/README.design +++ b/Configurations/README.design
@@ -133,7 +133,7 @@ ENGINES_NO_INST=ossltest SOURCE[ossltest]=e_ossltest.c - DEPEND[ossltest]=../libcrypto + DEPEND[ossltest]=../libcrypto.a INCLUDE[ossltest]=../include This is the build.info file in 'engines/', telling us that two engines @@ -142,8 +142,9 @@ 'engines/e_ossltest.c' and that the include directory 'include/' may be used when building anything that will be part of these engines. Also, both engines depend on the library 'libcrypto' to function -properly. Finally, only dasync is being installed, as ossltest is -only for internal testing. +properly. ossltest is explicitly linked with the static variant of +the library 'libcrypto'. Finally, only dasync is being installed, as +ossltest is only for internal testing. When Configure digests these build.info files, the accumulated information comes down to this: @@ -170,7 +171,7 @@ ENGINES_NO_INST=engines/ossltest SOURCE[engines/ossltest]=engines/e_ossltest.c - DEPEND[engines/ossltest]=libcrypto + DEPEND[engines/ossltest]=libcrypto.a INCLUDE[engines/ossltest]=include GENERATE[crypto/buildinf.h]=util/mkbuildinf.pl "$(CC) $(CFLAGS)" "$(PLATFORM)" @@ -281,10 +282,14 @@ [ "crypto/buildinf.h", ], - "engines/ossltest" => + "engines/dasync" => [ "libcrypto", ], + "engines/ossltest" => + [ + "libcrypto.a", + ], "libssl" => [ "libcrypto", @@ -396,6 +401,14 @@ [ "crypto/evp.c", ], + "engines/e_dasync.o" => + [ + "engines/e_dasync.c", + ], + "engines/dasync" => + [ + "engines/e_dasync.o", + ], "engines/e_ossltest.o" => [ "engines/e_ossltest.c",