RE: [WARNING][v4l-utils] do_package_qa: QA Issue: /usr/bin/cec-compliance uses 32-bit api 'time'

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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





[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux