liblegacy.a does not work unless compiled with -static

Matt Caswell matt at
Fri May 1 16:27:33 UTC 2020

liblegacy.a is an internal artifact! You're not supposed to link your
applications against it!

You are supposed to link against libcrypto normally. If isn't
in the default install location then make sure the OPENSSL_MODULES
environment variable is pointing at its directory.


On 01/05/2020 17:14, Guido Vranken wrote:
> When I configure using "./config enable-legacy" it creates
> providers/liblegacy.a, then in the program I link with it,
> OSSL_PROVIDER_load fails (returns NULL).
> When I configure using "./config enable-legacy -static" it works as
> expected.
> However, building with -static fails on OSS-Fuzz when building with
> sanitizers, and I need the .a file instead of the .so file for fuzzing.
> So, is it possible to configure using "./config enable-legacy" and have
> a working liblegacy.a? Is this a bug?
> Thanks

More information about the openssl-users mailing list