[yocto] [OE-core] [Openembedded-architecture] Y2038 proposal


Ross Burton
 

On 30 Nov 2022, at 14:20, Richard Purdie via lists.yoctoproject.org <richard.purdie=linuxfoundation.org@...> wrote:
* Could we optionally disable some of the glibc 32 bit function calls
to ensure they're not being used?
Could you be more specific here? Would you like to disable some
syscalls?
I'm meaning disabling the 32 bit glibc time functions.
Some time ago I filed https://bugzilla.yoctoproject.org/show_bug.cgi?id=6803 as Debian has a nice sanity check where it warns if non-LFS glibc functions are used. I imagine the same logic could be used to check for 32-bit time_t use.

Ross


Alexandre Belloni <alexandre.belloni@...>
 

On 30/11/2022 16:46:17+0000, Ross Burton wrote:
On 30 Nov 2022, at 14:20, Richard Purdie via lists.yoctoproject.org <richard.purdie=linuxfoundation.org@...> wrote:
* Could we optionally disable some of the glibc 32 bit function calls
to ensure they're not being used?
Could you be more specific here? Would you like to disable some
syscalls?
I'm meaning disabling the 32 bit glibc time functions.
Some time ago I filed https://bugzilla.yoctoproject.org/show_bug.cgi?id=6803 as Debian has a nice sanity check where it warns if non-LFS glibc functions are used. I imagine the same logic could be used to check for 32-bit time_t use.
We can simply disable COMPAT_32BIT_TIME in the kernel config.

Ross



--
Alexandre Belloni, co-owner and COO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com


Richard Purdie
 

On Wed, 2022-11-30 at 17:56 +0100, Alexandre Belloni wrote:
On 30/11/2022 16:46:17+0000, Ross Burton wrote:
On 30 Nov 2022, at 14:20, Richard Purdie via lists.yoctoproject.org <richard.purdie=linuxfoundation.org@...> wrote:
* Could we optionally disable some of the glibc 32 bit function calls
to ensure they're not being used?
Could you be more specific here? Would you like to disable some
syscalls?
I'm meaning disabling the 32 bit glibc time functions.
Some time ago I filed
https://bugzilla.yoctoproject.org/show_bug.cgi?id=6803 as Debian
has a nice sanity check where it warns if non-LFS glibc functions
are used. I imagine the same logic could be used to check for 32-
bit time_t use.
That sounds interesting and something we should probably look into for
both issues...

We can simply disable COMPAT_32BIT_TIME in the kernel config.
That would cause runtime issues but not build time linking ones?

Cheers,

Richard


Ola x Nilsson <ola.x.nilsson@...>
 

On Wed, Nov 30 2022, Richard Purdie wrote:

On Wed, 2022-11-30 at 17:56 +0100, Alexandre Belloni wrote:
On 30/11/2022 16:46:17+0000, Ross Burton wrote:
On 30 Nov 2022, at 14:20, Richard Purdie via
lists.yoctoproject.org
<richard.purdie=linuxfoundation.org@...> wrote:
* Could we optionally disable some of the glibc 32 bit function calls
to ensure they're not being used?
Could you be more specific here? Would you like to disable some
syscalls?
I'm meaning disabling the 32 bit glibc time functions.
Some time ago I filed
https://bugzilla.yoctoproject.org/show_bug.cgi?id=6803 as Debian
has a nice sanity check where it warns if non-LFS glibc functions
are used. I imagine the same logic could be used to check for 32-
bit time_t use.
That sounds interesting and something we should probably look into for
both issues...
I have a working sanity checker that checks for any glibc functions
affected by -D_FILE_OFFSET_BITS=64 or -D_TIME_BITS=64.
The INSANE_SKIP functionality needs some more polish but I'd be happy to
contribute it.

Some libraries use both 32 and 64 bit APIs to glibc and needs exceptions
in the checker.

I have not run any world builds with this checker, I've focused on the
recipes we actually use so far so we could get to a testable system. My
biggest worry at the moment is rust, I know to little to know if it is
an actual problem and how to fix it.

I would like to be part of any "y2038 team" for Yocto.

--
Ola x Nilsson


Richard Purdie
 

On Mon, 2022-12-05 at 11:00 +0100, Ola x Nilsson wrote:
On Wed, Nov 30 2022, Richard Purdie wrote:

On Wed, 2022-11-30 at 17:56 +0100, Alexandre Belloni wrote:
On 30/11/2022 16:46:17+0000, Ross Burton wrote:
On 30 Nov 2022, at 14:20, Richard Purdie via
lists.yoctoproject.org
<richard.purdie=linuxfoundation.org@...> wrote:
* Could we optionally disable some of the glibc 32 bit function calls
to ensure they're not being used?
Could you be more specific here? Would you like to disable some
syscalls?
I'm meaning disabling the 32 bit glibc time functions.
Some time ago I filed
https://bugzilla.yoctoproject.org/show_bug.cgi?id=6803 as Debian
has a nice sanity check where it warns if non-LFS glibc functions
are used. I imagine the same logic could be used to check for 32-
bit time_t use.
That sounds interesting and something we should probably look into for
both issues...
I have a working sanity checker that checks for any glibc functions
affected by -D_FILE_OFFSET_BITS=64 or -D_TIME_BITS=64.
The INSANE_SKIP functionality needs some more polish but I'd be happy to
contribute it.

Some libraries use both 32 and 64 bit APIs to glibc and needs exceptions
in the checker.

I have not run any world builds with this checker, I've focused on the
recipes we actually use so far so we could get to a testable system. My
biggest worry at the moment is rust, I know to little to know if it is
an actual problem and how to fix it.

I would like to be part of any "y2038 team" for Yocto.
That does sound useful, perhaps sharing it as an RFC patch might be a
good place to start? We might be able to run one of the autobuilder
world targets against it, see how it looks for our core recipes?

Cheers,

Richard


Ola x Nilsson <ola.x.nilsson@...>
 

On Mon, Dec 05 2022, Richard Purdie wrote:

On Mon, 2022-12-05 at 11:00 +0100, Ola x Nilsson wrote:
On Wed, Nov 30 2022, Richard Purdie wrote:

On Wed, 2022-11-30 at 17:56 +0100, Alexandre Belloni wrote:
On 30/11/2022 16:46:17+0000, Ross Burton wrote:
On 30 Nov 2022, at 14:20, Richard Purdie via
lists.yoctoproject.org
<richard.purdie=linuxfoundation.org@...> wrote:
* Could we optionally disable some of the glibc 32 bit function calls
to ensure they're not being used?
Could you be more specific here? Would you like to disable some
syscalls?
I'm meaning disabling the 32 bit glibc time functions.
Some time ago I filed
https://bugzilla.yoctoproject.org/show_bug.cgi?id=6803 as Debian
has a nice sanity check where it warns if non-LFS glibc functions
are used. I imagine the same logic could be used to check for 32-
bit time_t use.
That sounds interesting and something we should probably look into for
both issues...
I have a working sanity checker that checks for any glibc functions
affected by -D_FILE_OFFSET_BITS=64 or -D_TIME_BITS=64.
The INSANE_SKIP functionality needs some more polish but I'd be happy to
contribute it.

Some libraries use both 32 and 64 bit APIs to glibc and needs exceptions
in the checker.

I have not run any world builds with this checker, I've focused on the
recipes we actually use so far so we could get to a testable system. My
biggest worry at the moment is rust, I know to little to know if it is
an actual problem and how to fix it.

I would like to be part of any "y2038 team" for Yocto.
That does sound useful, perhaps sharing it as an RFC patch might be a
good place to start? We might be able to run one of the autobuilder
world targets against it, see how it looks for our core recipes?
That works for me. I've started preparing a patch for oe-core.

--
Ola x Nilsson