Hi, On 12/02/2023 02:51, Laurent Pinchart wrote:
Hello everybody, This series is the latest (and greatest) attempt to switch v4l-utils from autotools to meson. Compared to v7, the series has been rebased on top of the latest master branch, and lots of fixes have been added. All review comments should have been addressed. Detailed changelogs are included in individual patches, in particular in patch 3/6. The rebase was a bit painful due to the new v4l2-tracer tool and its code generation script. While meson handles code generation fine, it required fixes to the script to be able to specify the output directory and to generate the trace and retrace sources separately. Many thanks to Sakari for his help with this, which I've included in this series as patch 1/6. Gregor, I haven't included the Tested-by tag you gave on v7 as v8 contains many small changes. Sorry about that. The patches are based on 3 pending patches for v4l-utils that have been posted to the list in the last couple of days: - libv4lconvert: Don't ignore return value of ftruncate() - keytable: Add -fno-stack-protector compilation option - configure.ac: Add option to disable compilation of v4l2-tracer None are strictly required, but I've included the equivalent of the second and third patches in the meson support, so I wanted to base the patches on top of the autotools' equivalent. I expect those three patches to be merged soon. As far as I can tell, meson support is now ready. I can address review comments in a v9 if there are any, but I'd like to merge it soon to avoid another painful rebase. I'll be available to fix issues on top if any problem is encountered later. A tag that includes this series can be found at git://linuxtv.org/pinchartl/v4l-utils.git tags/meson-v8
If I build this for x86 or arm64 with default options, it builds fine. If I build for arm32 (against my buildroot rootfs), the build fails: [197/254] Compiling C object contrib/test/v4l2gl.p/v4l2gl.c.o FAILED: contrib/test/v4l2gl.p/v4l2gl.c.o ccache /home/tomba/work/buildroot/output32/host/bin/arm-buildroot-linux-gnueabihf-gcc -Icontrib/test/v4l2gl.p -Icontrib/test -I../contrib/test -I../lib/include -I../include -I/home/tomba/work/buildroot/output32/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include -I/home/tomba/work/buildroot/output32/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/libdrm -I/home/tomba/work/buildroot/output32/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/valgrind -I. -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -std=gnu99 -O2 -g -Wpointer-arith -D_GNU_SOURCE -DPROMOTED_MODE_T=int -DENABLE_NLS -MD -MQ contrib/test/v4l2gl.p/v4l2gl.c.o -MF contrib/test/v4l2gl.p/v4l2gl.c.o.d -o contrib/test/v4l2gl.p/v4l2gl.c.o -c ../contrib/test/v4l2gl.c ../contrib/test/v4l2gl.c:268:60: error: expected ‘,’ or ‘;’ before ‘V4L_UTILS_VERSION’ 268 | const char *argp_program_version = "V4L2 grabber version " V4L_UTILS_VERSION; | ^~~~~~~~~~~~~~~~~ I also see some warnings, which are possibly not related to this seris, like: [207/254] Compiling C++ object utils/cec-ctl/cec-ctl.p/cec-ctl.cpp.o In file included from /home/tomba/work/buildroot/output32/host/arm-buildroot-linux-gnueabihf/include/c++/11.3.0/vector:72, from ../utils/cec-ctl/cec-ctl.cpp:13: /home/tomba/work/buildroot/output32/host/arm-buildroot-linux-gnueabihf/include/c++/11.3.0/bits/vector.tcc: In member function ‘void std::vector<_Tp, _Alloc>::_M_realloc_insert(std::vector<_Tp, _Alloc>::iterator, _Args&& ...) [with _Args = {const cec_msg&}; _Tp = cec_msg; _Alloc = std::allocator<cec_msg>]’: /home/tomba/work/buildroot/output32/host/arm-buildroot-linux-gnueabihf/include/c++/11.3.0/bits/vector.tcc:426:7: note: parameter passing for argument of type ‘std::vector<cec_msg>::iterator’ changed in GCC 7.1 426 | vector<_Tp, _Alloc>:: | ^~~~~~~~~~~~~~~~~~~ In file included from /home/tomba/work/buildroot/output32/host/arm-buildroot-linux-gnueabihf/include/c++/11.3.0/vector:67, from ../utils/cec-ctl/cec-ctl.cpp:13: /home/tomba/work/buildroot/output32/host/arm-buildroot-linux-gnueabihf/include/c++/11.3.0/bits/stl_vector.h: In member function ‘void std::vector<_Tp, _Alloc>::push_back(const value_type&) [with _Tp = cec_msg; _Alloc = std::allocator<cec_msg>]’: /home/tomba/work/buildroot/output32/host/arm-buildroot-linux-gnueabihf/include/c++/11.3.0/bits/stl_vector.h:1198:28: note: parameter passing for argument of type ‘__gnu_cxx::__normal_iterator<cec_msg*, std::vector<cec_msg> >’ changed in GCC 7.1 1198 | _M_realloc_insert(end(), __x); | ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ Tomi