[PATCH] Disable year 2038 support on 32-bit hosts by default

Simon Marchi simark@simark.ca
Mon Aug 1 14:08:34 GMT 2022



On 2022-08-01 03:51, Luis Machado via Gdb-patches wrote:
> With a recent import of gnulib, code has been pulled that tests and enables
> 64-bit time_t by default on 32-bit hosts that support it.
> 
> Although gdb can use the gnulib support, bfd doesn't use gnulib and currently
> doesn't do these checks.
> 
> As a consequence, if we have a 32-bit host that supports 64-bit time_t, we'll
> have a mismatch between gdb's notion of time_t and bfd's notion of time_t.
> 
> This will lead to mismatches in the struct stat size, leading to memory
> corruption and crashes.
> 
> This patch disables the year 2038 check for now, which makes things work
> reliably again.
> 
> I'd consider this a temporary fix until we have proper bfd checks for the year
> 2038, if it makes sense.  64-bit hosts seems to be more common these days, so
> I'm not sure how important it is to have this support enabled and how soon
> we want to enable it.

I don't understand: why offer a --enable-year2038 switch if using it
would produce a broken build?

Simon


More information about the Binutils mailing list