diff options
| author | Kamlesh Gurudasani <kamlesh@ti.com> | 2026-06-04 15:11:55 +0530 |
|---|---|---|
| committer | Khem Raj <khem.raj@oss.qualcomm.com> | 2026-06-07 18:21:52 -0700 |
| commit | 53cbcaba3f09cb50b72b91c2b33bdbd479da5f19 (patch) | |
| tree | 5b1fd7ce84e2288214d503dd3fcadd049cc12997 | |
| parent | d56e22f0d68cf99b052793c80fd9509677e89cea (diff) | |
| download | meta-openembedded-53cbcaba3f09cb50b72b91c2b33bdbd479da5f19.tar.gz | |
libwebsockets: fix build against OpenSSL 3.5
OpenSSL 3.5 (first shipped in wrynose) made HMAC_CTX a fully opaque
type by removing its struct definition from the public headers. It was
deprecated since OpenSSL 3.0 but the struct remained visible until 3.5.
libwebsockets uses HMAC_CTX_new() to detect which form to use in its
lws-genhash.h public header: if found it uses HMAC_CTX *ctx (pointer),
otherwise it falls back to HMAC_CTX ctx (embedded struct).
In cross-compilation the CMake CHECK_FUNCTION_EXISTS probe for
HMAC_CTX_new can fail due to native libraries being incorrectly pulled
into the aarch64 link test, causing the function to be reported as not
found. Before OpenSSL 3.5 this was a silent failure: the fallback
embedded struct still compiled fine. With OpenSSL 3.5 the fallback
now fails with "field has incomplete type".
Force LWS_HAVE_HMAC_CTX_new=ON so the pointer form is always used.
Signed-off-by: Kamlesh Gurudasani <kamlesh@ti.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
| -rw-r--r-- | meta-oe/recipes-connectivity/libwebsockets/libwebsockets_4.5.8.bb | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_4.5.8.bb b/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_4.5.8.bb index a18f88390e..fc65890d8d 100644 --- a/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_4.5.8.bb +++ b/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_4.5.8.bb | |||
| @@ -35,6 +35,7 @@ python __anonymous() { | |||
| 35 | EXTRA_OECMAKE += " \ | 35 | EXTRA_OECMAKE += " \ |
| 36 | -DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')} \ | 36 | -DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')} \ |
| 37 | -DLWS_WITHOUT_TESTAPPS=ON \ | 37 | -DLWS_WITHOUT_TESTAPPS=ON \ |
| 38 | -DLWS_HAVE_HMAC_CTX_new=ON \ | ||
| 38 | " | 39 | " |
| 39 | 40 | ||
| 40 | do_compile:prepend() { | 41 | do_compile:prepend() { |
