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