The most efficient way to ship OpenSSL's legacy provider module and engines is to have them link to libcrypto.so. This can break the build since they are created in a sub-directory of secure/lib/libcrypto, and may be ready to link before libcrypto.so is available.
This commit introduces a LIBCRYPTO_WITHOUT_SUBDIRS define, ensuring libcrypto.so builds in its usual early phase without any OpenSSL provider module or engines. They are then completed as expected later.
This is meant as an alternate fix to D41874.