Skip to content

openssl.c - ignores opensslconf.h & fails to link #8430

Closed
@fsbruva

Description

@fsbruva

Description

If openssl 1.1.1n is configured & built with any combination of the Configure [no-<cipher> ...] options:

no-md2
no-md4
no-md5
no-rmd160

While building php 8.0.18, linking results in this output (or similar):

ld: error: undefined symbol: EVP_md4
>>> referenced by openssl.c
>>>               ext/openssl/openssl.o:(php_openssl_get_evp_md_from_algo)
>>> did you mean: EVP_md5
>>> defined in: /usr/local/lib/libcrypto.so

But I expected this output instead:

Build complete.
Don't forget to run 'make test'.

This has two causes. First is that the existing precompiler test for MD2 merely checks for the presence of the include/openssl/md2.h file, rather than the actual capabilities of the compiled library. The second cause is that openssl.c does not consult include/openssl/opensslconf.h for the other listed options. I have a patch, and will submit a PR once I get the bug number.

PHP Version

8.0.18

Operating System

FreeBSD 12.3-RELEASE

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions