[PATCH 1/1] tools: fix building with OpenSSL 4.0

Quentin Schulz quentin.schulz at cherry.de
Mon Jun 15 18:50:51 CEST 2026


Hi Heinrich,

On 6/15/26 6:07 PM, Heinrich Schuchardt wrote:
> Building with OpenSSL 4.0 fails:
> 
>      In file included from tools/generated/lib/rsa/rsa-sign.c:1:
>      ./tools/../lib/rsa/rsa-sign.c: In function ‘rsa_engine_get_pub_key’:
>      ./tools/../lib/rsa/rsa-sign.c:115:9: warning:
>      ‘ENGINE_get_id’ is deprecated: ENGINE_get_id API symbol is removed.
>      Define OPENSSL_ENGINE_STUBS to mask linker errors.
>      [-Wdeprecated-declarations]
>        115 |         engine_id = ENGINE_get_id(engine);
>            |         ^~~~~~~~~
> 
>      rsa-sign.c: undefined reference to `ENGINE_load_builtin_engines'
>      rsa-sign.c: undefined reference to `ENGINE_by_id'
>      rsa-sign.c: undefined reference to `ENGINE_init'
>      rsa-sign.c: undefined reference to `ENGINE_set_default_RSA'
>      rsa-sign.c: undefined reference to `ENGINE_ctrl_cmd_string'
>      rsa-sign.c: undefined reference to `ENGINE_free'
>      rsa-sign.c: undefined reference to `ENGINE_finish
> 
> Add -DOPENSSL_ENGINE_STUBS -Wno-deprecated-declarations to the
> rsa-sign.c build flags.
> 

Please no.

We should not build OpenSSL engines when they aren't supported at all 
anymore.

Fedora is already complaining it doesn't build on OpenSSL 3.x anymore 
for them. See 
https://lore.kernel.org/u-boot/20260429180247.83091-1-ekovsky@redhat.com/

The linked patch is not satisfactory though, and I've provided lengthy 
feedback a few times (although often with a big delay).

I'm waiting on Eddie to answer as it's "gentleman agreement" in FOSS 
that the first who posts a patch gets to keep working on the patch until 
it gets satisfactory enough to be merged. I do admit I took a very long 
time a few times to answer so it didn't help with getting this forward. 
I am unsure how much longer we should wait for Eddie if more people are 
getting hit by this issue.

As told on the linked patch, I have local patches (that I need to write 
nice commit logs for) to support OpenSSL providers and remove OpenSSL 
engine support for releases and variants of OpenSSL not supporting 
engines. With (binman) unit tests passing.

Note that this patch here is also not sufficient as, sure, it makes it 
possible to build U-Boot again, but you won't be able to run the test 
suite as we build dummy-rsa-engine.c unconditionally and you'll have the 
same build issue then.

As said in the linked patch, I would welcome an immediate patch that is 
disabling OpenSSL engine support with a big ifdef (still won't fix the 
"dummy-rsa-engine"-based tests but I haven't come up with a way to fix 
this "nicely").

Cheers,
Quentin


More information about the U-Boot mailing list