This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
ix86 targets without BFD64
- From: "Jan Beulich" <JBeulich at suse dot com>
- To: "H.J. Lu" <hjl dot tools at gmail dot com>
- Cc: <binutils at sourceware dot org>
- Date: Mon, 23 Oct 2017 00:53:55 -0600
- Subject: ix86 targets without BFD64
- Authentication-results: sourceware.org; auth=none
Hello,
there being quite a few BFD64 conditionals in tc-i386.c, I would
conclude that things are supposed to work fine when doing a
purely 32-bit build (which happen to result when I cross build on
cygwin, but of course by not forcing --enable-64-bit-bfd I can
also see this on a native Linux build on a 32-bit distro). Yet each of
the last two lines of
.text
_start:
mov 0x87654321, %eax
mov $0x87654321, %eax
.code64
movabs 0x87654321, %al
movabs $0x87654321, %rax
trigger the abort() in offset_in_range(). Since the chosen target
automatically enables elf32_x86_64, the solution can't possibly be
to disallow .code64 in such a build. All other alternatives I can
think of would, however, appear to require a full audit of all 64-bit
immediate / displacement processing in order to make sure all valid
code (i.e. anything not requiring 64-bit relocations) is accepted.
Thoughts?
Jan