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

Paul Eggert eggert@cs.ucla.edu
Tue Aug 9 17:02:16 GMT 2022

On 8/9/22 09:29, Eli Zaretskii wrote:
>> Date: Tue, 9 Aug 2022 08:49:53 -0700
>> From: Paul Eggert <eggert@cs.ucla.edu>
>> PPS. I couldn't get a 32-bit version of binutils-gdb to build on Fedora
>> x86-64, even without either of the attached patches.
> FTR, I regularly do such builds (on native MS-Windows), both the parts
> used by GDB when I build GDB, and when I build Binutils themselves.  I
> never had any trouble (with the caveat that I didn't yet build the
> latest Binutils 3.29).

Oh, I should make it clear that my failure was with bleeding-edge 
binutils-gdb, commit f56173071020d3e97c98c550ba6264122e5d861d dated Tue 
Aug 9 15:39:02 2022 +0100. My Fedora 36 platform had 
gcc-12.1.1-1.fc36.x86_64 and binutils-2.37-27.fc36.x86_64; I configured 
with CC='gcc -m32' CXX='gcc -m32' to cause the binutils-gdb build to be 
in 32-bit mode.

Hmm, likely that CXX was wrong and I should have used g++ not gcc. 
However, switching to g++ doesn't work either; when I configure it this way:

../binutils-gdb/configure CC='gcc -m32' CXX='g++ -m32'

the build still fails as follows, on both Fedora 36 and Ubuntu 22.04.1 
LTS (which uses GCC 11.2). So there's still something squirrelly going 
on with respect to 32-builds on GNU/Linux, which as I understand it are 
the only builds where these year-2038 fixes are relevant.

   CXX    linux-amd64-ipa.o

../../binutils-gdb/gdbserver/linux-amd64-ipa.cc: In function ‘const 
target_desc* get_ipa_tdesc(int)’:

../../binutils-gdb/gdbserver/linux-amd64-ipa.cc:201:14: error: 
‘amd64_linux_read_description’ was not declared in this scope; did you 
mean ‘i386_linux_read_description’?

   201 |       return amd64_linux_read_description (X86_XSTATE_SSE_MASK, 

       |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~

       |              i386_linux_read_description

../../binutils-gdb/gdbserver/linux-amd64-ipa.cc: In function ‘void 

../../binutils-gdb/gdbserver/linux-amd64-ipa.cc:282:3: error: 
‘amd64_linux_read_description’ was not declared in this scope; did you 
mean ‘i386_linux_read_description’?

   282 |   amd64_linux_read_description (X86_XSTATE_SSE_MASK, true);

       |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~

       |   i386_linux_read_description

More information about the Binutils mailing list