[PATCH v1] utils: mojom: Fix build error caused by the mojom tool update

Kieran Bingham kieran.bingham at ideasonboard.com
Thu Feb 15 12:46:00 CET 2024


Quoting Naushir Patuck (2024-02-15 08:23:42)
> The update to the mojom tool in commit d17de86904f0 causes build errors
> with gcc 12.2 release builds. One such error is:
> 
> In file included from src/libcamera/proxy/worker/raspberrypi_ipa_proxy_worker.cpp:18:
> In static member function ‘static libcamera::ipa::RPi::ProcessParams libcamera::IPADataSerializer<libcamera::ipa::RPi::ProcessParams>::deserialize(std::vector<unsigned char>::const_iterator, std::vector<unsigned char>::const_iterator, libcamera::ControlSerializer*)’,
>     inlined from ‘void IPAProxyRPiWorker::readyRead()’ at src/libcamera/proxy/worker/raspberrypi_ipa_proxy_worker.cpp:302:70:
> include/libcamera/ipa/raspberrypi_ipa_serializer.h:1172:32: error: ‘*(uint32_t*)((char*)&ret + offsetof(libcamera::ipa::RPi::ProcessParams, libcamera::ipa::RPi::ProcessParams::buffers.libcamera::ipa::RPi::BufferIds::bayer))’ may be used uninitialized [-Werror=maybe-uninitialized]
>  1172 |                         return ret;
> 
> The failure is caused by the new auto-generated IPA interface not
> initialising POD types to a default value. This is because the updated
> mojom library uses a new mojom.ValueKind class to represent POD types,
> whereas the interface generator script uses the mojom.Kind class, which
> is correct for the older mojom library.
> 
> Fix this breakage by switching the interface generator script to use
> mojom.ValueKind to test for POD types.
> 
> Fixes: d17de86904f0 ("utils: ipc: Update mojo")
> Signed-off-by: Naushir Patuck <naush at raspberrypi.com>

CI-OK: https://gitlab.freedesktop.org/camera/libcamera/-/pipelines/1103947 
Merged

--
Thanks.

Kieran


> ---
>  utils/ipc/generators/mojom_libcamera_generator.py | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/utils/ipc/generators/mojom_libcamera_generator.py b/utils/ipc/generators/mojom_libcamera_generator.py
> index 582818c98b5f..99d905de456c 100644
> --- a/utils/ipc/generators/mojom_libcamera_generator.py
> +++ b/utils/ipc/generators/mojom_libcamera_generator.py
> @@ -72,7 +72,7 @@ def ParamsCommaSep(l):
>  def GetDefaultValue(element):
>      if element.default is not None:
>          return element.default
> -    if type(element.kind) == mojom.Kind:
> +    if type(element.kind) == mojom.ValueKind:
>          return '0'
>      if IsFlags(element):
>          return ''
> -- 
> 2.34.1
>


More information about the libcamera-devel mailing list