Hello,

On 01.03.24 11:34, Emanuele Rocca wrote:
This seems intentional, see meson.build:

   v4l2_wrapper_args = [
       # As the library needs to provide both 32-bit and 64-bit versions
       # of file operations, disable transparent large file support (fixes
       # 'Error: symbol `open64/mmap64' is already defined' compile failure
       # otherwise)
       '-U_FILE_OFFSET_BITS',
       '-D_FILE_OFFSET_BITS=32',
       '-D_LARGEFILE64_SOURCE',
   ]

You're right disabling LFS was intentional. Those "wrappers" are meent to be preloaded with LD_PRELOAD and should intercept all V4L related calls like open, close, mmap, etc.

I believe the conflict arose because the Debian CFLAGS now define a 64 bit time_t value on 32bit architectures. I believe none of the code within those wrappers is sensitive to time_t. Therefore I also undefined
the _TIME_BITS. That should resolve the issue for the Debian package.

For upstream the problem is a little bit trickier because the "tracer" also uses those flags. But the tracer consists of lots of files. Maybe those have to be split up.

Thanks,
Gregor

Reply via email to