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 (#111159): 
https://lists.openembedded.org/g/openembedded-devel/message/111159
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