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]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to