mirror of
https://git.libcamera.org/libcamera/libcamera.git
synced 2025-07-12 14:59:44 +03:00
When the ASan runtime is linked using --as-needed, its dependency on the C++ standard library is stripped. This results to a failure to properly handled exceptions when a C++ dynamically loaded .so is used, as in the Python unit tests that load the libcamera Python module: AddressSanitizer: CHECK failed: asan_interceptors.cpp:335 "((__interception::real___cxa_throw)) != (0)" (0x0, 0x0) (tid=32679) #0 0x7fa2f32e6c19 in CheckUnwind /var/tmp/portage/sys-devel/gcc-13.3.1_p20241025/work/gcc-13-20241025/libsanitizer/asan/asan_rtl.cpp:69 #1 0x7fa2f330c9fd in __sanitizer::CheckFailed(char const*, int, char const*, unsigned long long, unsigned long long) /var/tmp/portage/sys-devel/gcc-13.3.1_p20241025/work/gcc-13-20241025/libsanitizer/sanitizer_common/sanitizer_termination.cpp:86 #2 0x7fa2f3247824 in __interceptor___cxa_throw /var/tmp/portage/sys-devel/gcc-13.3.1_p20241025/work/gcc-13-20241025/libsanitizer/asan/asan_interceptors.cpp:335 #3 0x7fa2f3247824 in __interceptor___cxa_throw /var/tmp/portage/sys-devel/gcc-13.3.1_p20241025/work/gcc-13-20241025/libsanitizer/asan/asan_interceptors.cpp:334 #4 0x7fa2efb6da8b in operator() ../../src/py/libcamera/py_main.cpp:157 [...] The issue has been reported in [1] and so far remains unfixed. Work around it by preloading the C++ standard library. [1] https://github.com/google/sanitizers/issues/934 Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> |
||
---|---|---|
.. | ||
camera | ||
controls | ||
gstreamer | ||
ipa | ||
ipc | ||
libtest | ||
log | ||
media_device | ||
process | ||
py | ||
serialization | ||
stream | ||
v4l2_compat | ||
v4l2_subdevice | ||
v4l2_videodevice | ||
bayer-format.cpp | ||
byte-stream-buffer.cpp | ||
camera-sensor.cpp | ||
color-space.cpp | ||
delayed_controls.cpp | ||
event-dispatcher.cpp | ||
event-thread.cpp | ||
event.cpp | ||
fence.cpp | ||
file.cpp | ||
flags.cpp | ||
geometry.cpp | ||
hotplug-cameras.cpp | ||
mapped-buffer.cpp | ||
meson.build | ||
message.cpp | ||
object-delete.cpp | ||
object-invoke.cpp | ||
object.cpp | ||
pixel-format.cpp | ||
public-api.cpp | ||
shared-fd.cpp | ||
signal-threads.cpp | ||
signal.cpp | ||
span.cpp | ||
threads.cpp | ||
timer-fail.cpp | ||
timer-thread.cpp | ||
timer.cpp | ||
transform.cpp | ||
unique-fd.cpp | ||
utils.cpp | ||
yaml-parser.cpp |