On Fri, Dec 09 2022, Khem Raj wrote:

> Thanks for the patches
>
> On 12/7/22 23:11, Ola x Nilsson wrote:
>> Signed-off-by: Ola x Nilsson <[email protected]>
>> ---
>>   meta/conf/distro/time64.conf | 23 +++++++++++++++++++++++
>>   1 file changed, 23 insertions(+)
>>   create mode 100644 meta/conf/distro/time64.conf
>> 
>> diff --git a/meta/conf/distro/time64.conf b/meta/conf/distro/time64.conf
>> new file mode 100644
>> index 0000000000..99eb06dc0f
>> --- /dev/null
>> +++ b/meta/conf/distro/time64.conf
>> @@ -0,0 +1,23 @@
>> +GLIBC_64BIT_TIME_FLAGS = "-D_TIME_BITS=64 -D_FILE_OFFSET_BITS=64"
>> +
>> +# TODO: Only for 32-bit architectures?
>> +TARGET_CC_ARCH:append:arm = " ${GLIBC_64BIT_TIME_FLAGS}"
>> +TARGET_CC_ARCH:append:armeb = " ${GLIBC_64BIT_TIME_FLAGS}"
>> +TARGET_CC_ARCH:append:mips32el = " ${GLIBC_64BIT_TIME_FLAGS}"
>
> We should enable it across all 32bit systems
> something like
>
> TARGET_CC_ARCH += "${@'-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64' if 
> d.getVar('SITEINFO_BITS') == '32' else ''}"
>
> would do it.

I was looking for a way to identify 32-bit platforms but did not find
SITEINFO_BITS.  I'll look into using that instead.

> Also adding -D_LARGEFILE_SOURCE will ensure needed functions that LFS 
> needs is enabled as well, usually its automatically defined when 
> -D_GNU_SOURCE is set but that may not be case all the time.

As far as I can tell, _LARGEFILE_SOURCE and _LARGEFILE64_SOURCE are
independent of _TIME_BITS=64 and _FILE_OFFSET_BITS=64 (while
_TIME_BITS=64 requiress _FILE_OFFSET_BITS=64).

I thought the _LARGEFILE* options were controlled by the largefile
DISTRO_FEATURE but there seems to be some confusion about that.

It looks like you (Khem) made largefile default instead of using the
distro feature in all of the OE-core recipes, and the largefile distro
feature is no longer mentioned in docs.  It is mentioned as removed in
the transition notes.  But it is still in poky-tiny.conf and
POKY_DEFAULT_DISTRO_FEATURES.  Probably an oversight?

I do not see the _LARGEFILE*_SOURCE options defined globally anywhere.

Am I missing something?

>> +
>> +GLIBC_64BIT_TIME_FLAGS:pn-glibc = ""
>> +GLIBC_64BIT_TIME_FLAGS:pn-glibc-tests = ""
>> +# pipewire-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:pn-pipewire = ""
>> +GLIBC_64BIT_TIME_FLAGS:pn-gcc-sanitizers = ""
>> +
>> +INSANE_SKIP:libstd-rs[_usr_lib_rustlib_armv7-poky-linux-gnueabihf_lib_libstd.so]
>> = "clock_gettime gettime fcntl fstat64 fstatat64 getsockopt ioctl
>> lstat64 nanosleep prctl recvmsg sendmsg setsockopt stat64"
>> +INSANE_SKIP:librsvg[_usr_bin_rsvg-convert] = "fcntl fstat64 prctl stat64 
>> clock_gettime"
>> +INSANE_SKIP:librsvg[_usr_lib_librsvg-2.so.2.48.0] = "fcntl lstat64
>> setsockopt sendmsg fstat64 getsockopt ioctl nanosleep timegm
>> fstatat64 prctl mktime gmtime_r recvmsg stat64 clock_gettime
>> localtime_r"
>> +
>> +# libpulsedsp.so is a preload-library that hooks libc functions
>> +INSANE_SKIP:pulseaudio[_usr_lib_pulseaudio_libpulsedsp.so] = "setsockopt 
>> fcntl"
>> +
>> +
>> 

-- 
Ola x Nilsson
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#174441): 
https://lists.openembedded.org/g/openembedded-core/message/174441
Mute This Topic: https://lists.openembedded.org/mt/95533494/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to