Hi Ronsen, Is this issue related to your commit? v4l-utils: fix compilation with 64-bit time_t -----Original Message----- From: Yan, Haixiao (CN) Sent: Saturday, June 29, 2024 6:32 PM To: linux-media@xxxxxxxxxxxxxxx Subject: [WARNING][v4l-utils] do_package_qa: QA Issue: /usr/bin/cec-compliance uses 32-bit api 'time' Hi, On Yocto, when building 32-bit lib for v4l-utils, met the QA warning issue. WARNING: lib32-v4l-utils-1.26.1+git-r0 do_package_qa: QA Issue: /usr/bin/ir-keytable uses 32-bit api 'ioc tl' /usr/bin/ir-keytable uses 32-bit api 'stat64' Suppress with INSANE_SKIP = "32bit-time" /usr/bin/media-ctl uses 32-bit api 'ioctl' /usr/bin/media-ctl uses 32-bit api 'stat64' Suppress with INSANE_SKIP = "32bit-time" /usr/bin/rds-ctl uses 32-bit api 'ioctl' /usr/bin/rds-ctl uses 32-bit api 'ctime' Suppress with INSANE_SKIP = "32bit-time" /usr/bin/v4l2-ctl uses 32-bit api 'select' /usr/bin/v4l2-ctl uses 32-bit api 'fstat64' /usr/bin/v4l2-ctl uses 32-bit api 'clock_gettime' /usr/bin/v4l2-ctl uses 32-bit api 'ioctl' /usr/bin/v4l2-ctl uses 32-bit api 'nanosleep' /usr/bin/v4l2-ctl uses 32-bit api 'fcntl64' /usr/bin/v4l2-ctl uses 32-bit api 'stat64' Suppress with INSANE_SKIP = "32bit-time" /usr/bin/v4l2-compliance uses 32-bit api 'select' /usr/bin/v4l2-compliance uses 32-bit api 'fstat64' /usr/bin/v4l2-compliance uses 32-bit api 'clock_gettime' /usr/bin/v4l2-compliance uses 32-bit api 'ioctl' /usr/bin/v4l2-compliance uses 32-bit api 'fcntl64' /usr/bin/v4l2-compliance uses 32-bit api 'stat64' Suppress with INSANE_SKIP = "32bit-time" /usr/bin/v4l2-compliance uses 32-bit api 'select' /usr/bin/v4l2-compliance uses 32-bit api 'fstat64' /usr/bin/v4l2-compliance uses 32-bit api 'clock_gettime' /usr/bin/v4l2-compliance uses 32-bit api 'ioctl' /usr/bin/v4l2-compliance uses 32-bit api 'fcntl64' /usr/bin/v4l2-compliance uses 32-bit api 'stat64' Suppress with INSANE_SKIP = "32bit-time" /usr/bin/v4l2-sysfs-path uses 32-bit api 'fstat64' Suppress with INSANE_SKIP = "32bit-time" /usr/bin/decode_tm6000 uses 32-bit api 'ioctl' /usr/bin/decode_tm6000 uses 32-bit api 'select' Suppress with INSANE_SKIP = "32bit-time" /usr/bin/cec-compliance uses 32-bit api 'ctime' /usr/bin/cec-compliance uses 32-bit api 'localtime' /usr/bin/cec-compliance uses 32-bit api 'clock_gettime' /usr/bin/cec-compliance uses 32-bit api 'ioctl' /usr/bin/cec-compliance uses 32-bit api 'gettimeofday' /usr/bin/cec-compliance uses 32-bit api 'fcntl64' /usr/bin/cec-compliance uses 32-bit api 'time' /usr/bin/cec-compliance uses 32-bit api 'select' Suppress with INSANE_SKIP = "32bit-time" /usr/bin/cec-compliance uses 32-bit api 'ctime' /usr/bin/cec-compliance uses 32-bit api 'localtime' /usr/bin/cec-compliance uses 32-bit api 'clock_gettime' /usr/bin/cec-compliance uses 32-bit api 'ioctl' /usr/bin/cec-compliance uses 32-bit api 'gettimeofday' /usr/bin/cec-compliance uses 32-bit api 'fcntl64' /usr/bin/cec-compliance uses 32-bit api 'time' /usr/bin/cec-compliance uses 32-bit api 'select' Suppress with INSANE_SKIP = "32bit-time" After investigating, meta-openembedded/meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.26.1.bb #v4l2 explicitly sets _FILE_OFFSET_BITS=32 to get access to #both 32 and 64 bit file APIs. But it does not handle the time side? #Needs further investigation GLIBC_64BIT_TIME_FLAGS = "" GLIBC_64BIT_TIME_FLAGS = " -D_TIME_BITS=64 -D_FILE_OFFSET_BITS=64" which defined in oe-core/meta/conf/distro/include/time64.inc was reset, so result in this QA issue. when comment GLIBC_64BIT_TIME_FLAGS = "" , there is build error. /build-v4l/tmp-glibc/work/core2-32-wrsmllib32-linux/lib32-v4l-utils/1.26.1+git/lib32-recipe-sysroot/usr/include/features-time64.h:26:5: error: #error "_TIME_BITS=64 is allowed only with _FILE_OFFSET_BITS=64" 26 | # error "_TIME_BITS=64 is allowed only with _FILE_OFFSET_BITS=64" the build error is caused by v4l-utils 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', ] D_FILE_OFFSET_BITS was reset to 32 during compile. Is there a solution for this? Thanks, Haixiao