I have seen some discussion on linux-me...@vger.kernel.org v4l-utils: fix compilation with 64-bit time_t
Not sure this commit is related to the qa warning issue. I have not received any response. -----Original Message----- From: Alexander Kanavin <alex.kana...@gmail.com> Sent: Monday, July 1, 2024 5:35 PM To: Yan, Haixiao (CN) <haixiao.yan...@windriver.com> Cc: openembedded-devel@lists.openembedded.org Subject: Re: [oe] [meta-oe] v4l-utils: do_package_qa: QA Issue: /usr/bin/cec-compliance uses 32-bit api 'time' CAUTION: This email comes from a non Wind River email account! Do not click links or open attachments unless you recognize the sender and know the content is safe. I guess you can suppress the qa check (like done in time64.inc for other components), and open a ticket upstream? But first check if the tip of master branch has done anything to resolve the issue. Alex On Sat, 29 Jun 2024 at 15:27, Yan, Haixiao (CN) via lists.openembedded.org <Haixiao.Yan.CN=windriver....@lists.openembedded.org> wrote: > > Hi, > > 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 any solution for this issue? > > Thanks, > Haixiao > > >
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#111212): https://lists.openembedded.org/g/openembedded-devel/message/111212 Mute This Topic: https://lists.openembedded.org/mt/106944631/21656 Group Owner: openembedded-devel+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-