On Tue, Nov 8, 2022 at 2:56 AM Ola x Nilsson <ola.x.nils...@axis.com> wrote: > > > I'm working on the same thing, but I put GLIBC_64BIT_TIME_CPPFLAGS in > TARGET_CC_ARCH instead to make sure they applied everywhere. > > I'd be interested to hear what others think is the best place to put > these flags. > > I'm also looking at QA tests to make sure that no application or shared > object is still using 32bit time or file functions from glibc.
Perhaps another thing is that it might be good to control it via a distro feature. > > /Ola > > On Tue, Nov 08 2022, Niko Mauno via lists.openembedded.org wrote: > > > Add default C Preprocessor flags that ensure Y2038 compatible 64 bit > > time on 32 bit host applications when glibc is used. Prerequisites > > are glibc version 2.34 or newer and Linux kernel version 5.1 or newer. > > > > Example of impact on 32 bit 'qemuarm' machine running > > core-image-minimal. Before this change: > > > > root@qemuarm:~# /bin/busybox date > > Sun Nov 6 06:09:39 UTC 2022 > > root@qemuarm:~# /sbin/hwclock.util-linux -w > > root@qemuarm:~# /sbin/hwclock.util-linux > > 2022-11-06 06:09:49.994249+00:00 > > root@qemuarm:~# /bin/busybox date -s 2040-01-01 > > date: invalid date '2040-01-01' > > root@qemuarm:~# /bin/date.coreutils -s 2040-01-01 > > Sun Jan 1 00:00:00 UTC 2040 > > root@qemuarm:~# /sbin/hwclock.util-linux -w > > root@qemuarm:~# /sbin/hwclock.util-linux > > 1931-03-04 06:26:23.000000+00:00 > > root@qemuarm:~# > > > > After this change: > > > > root@qemuarm:~# /bin/busybox date > > Sun Nov 6 06:02:20 UTC 2022 > > root@qemuarm:~# /sbin/hwclock.util-linux -w > > root@qemuarm:~# /sbin/hwclock.util-linux > > 2022-11-06 06:02:27.989730+00:00 > > root@qemuarm:~# /bin/busybox date -s 2040-01-01 > > Sun Jan 1 00:00:00 UTC 2040 > > root@qemuarm:~# /sbin/hwclock.util-linux -w > > root@qemuarm:~# /sbin/hwclock.util-linux > > 2040-01-01 00:00:20.992954+00:00 > > root@qemuarm:~# > > > > From here on, the adding of new flags can be disabled on recipe or > > global level by resetting the value of associated variable containing > > the CPPFLAGS specific for 64 bit time > > > > GLIBC_64BIT_TIME_CPPFLAGS = "" > > > > which can be useful e.g. when working around failure to compile a > > component due to lack of 64 bit time support on 32 bit build in the > > component's source code. > > > > Signed-off-by: Niko Mauno <niko.ma...@vaisala.com> > > --- > > meta/conf/distro/include/tclibc-glibc.inc | 3 +++ > > meta/recipes-devtools/gcc/gcc-sanitizers_12.2.bb | 2 ++ > > meta/recipes-devtools/pseudo/pseudo_git.bb | 2 ++ > > 3 files changed, 7 insertions(+) > > > > diff --git a/meta/conf/distro/include/tclibc-glibc.inc > > b/meta/conf/distro/include/tclibc-glibc.inc > > index f48d16939e..95770298e9 100644 > > --- a/meta/conf/distro/include/tclibc-glibc.inc > > +++ b/meta/conf/distro/include/tclibc-glibc.inc > > @@ -17,6 +17,9 @@ PREFERRED_PROVIDER_virtual/crypt ?= "libxcrypt" > > > > CXXFLAGS += "-fvisibility-inlines-hidden" > > > > +GLIBC_64BIT_TIME_CPPFLAGS = "-D_TIME_BITS=64 -D_FILE_OFFSET_BITS=64" > > +TARGET_CPPFLAGS += "${GLIBC_64BIT_TIME_CPPFLAGS}" > > + > > LIBC_DEPENDENCIES = "\ > > glibc \ > > glibc-dbg \ > > diff --git a/meta/recipes-devtools/gcc/gcc-sanitizers_12.2.bb > > b/meta/recipes-devtools/gcc/gcc-sanitizers_12.2.bb > > index 8bda2ccad6..b3fafa0ea4 100644 > > --- a/meta/recipes-devtools/gcc/gcc-sanitizers_12.2.bb > > +++ b/meta/recipes-devtools/gcc/gcc-sanitizers_12.2.bb > > @@ -5,3 +5,5 @@ require gcc-sanitizers.inc > > # sanitizer_linux.s:5749: Error: lo register required -- `ldr ip,[sp],#8' > > ARM_INSTRUCTION_SET:armv4 = "arm" > > ARM_INSTRUCTION_SET:armv5 = "arm" > > + > > +GLIBC_64BIT_TIME_CPPFLAGS = "" > > diff --git a/meta/recipes-devtools/pseudo/pseudo_git.bb > > b/meta/recipes-devtools/pseudo/pseudo_git.bb > > index c34580b4ff..7734d0fbb0 100644 > > --- a/meta/recipes-devtools/pseudo/pseudo_git.bb > > +++ b/meta/recipes-devtools/pseudo/pseudo_git.bb > > @@ -19,3 +19,5 @@ PV = "1.9.0+git${SRCPV}" > > > > # error: use of undeclared identifier '_STAT_VER' > > COMPATIBLE_HOST:libc-musl = 'null' > > + > > +GLIBC_64BIT_TIME_CPPFLAGS = "" > > > >
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#172978): https://lists.openembedded.org/g/openembedded-core/message/172978 Mute This Topic: https://lists.openembedded.org/mt/94880624/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-