This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: [PATCH] Add support for ia16
>>> On 03.04.17 at 18:14, <andrew@codesourcery.com> wrote:
> On 03/04/2017 08:37, Jan Beulich wrote:
>> So how would a consumer of the ELF binary recognize the 16bit-ness?
>> I.e. shouldn't there first be an extension to the i386 ELF ABI to mark
>> either the whole object or (preferred) individual sections as 16bit?
>
> There probably should. I'll take a look at adding this. Do you know if
> other architectures have similar extensions that I could look at to see
> how they do it?
x86-64 has the x32 sub-mode, but that is (bogusly imo) indicated
by using a 32-bit ELF instead of the default 64-bit ELF one. IA-64
uses a bit in e_flags (and it looks like some other architectures,
like MIPS, do too), which is the approach I'd expect to be used
everywhere when mixed bitness in a single executable is not
intended to be permitted. I can't seem to find examples of section
flags indicating bitness - ARM's Thumb mode, for example, works
by inserting special marker labels instead (thus allowing mixed
code inside a section).
>>>> + targ_selvecs="i386_msdos_vec i386_aout_vec"
>>
>> Why force aout in for everyone?
>
> It seems to be a prerequisite for i386_msdos_vec - without it, I get
> "undefined reference to `aout_32_mkobject'" in i386msdos.o.
That seems strange to me, but then again I know next to nothing
about this setting up of target vectors. Generally I'd expect
dependencies to be taken care of without having to list them
explicitly. Nor can I see any reasonable connection between
MS-DOS executables and a.out ones. But anyway ...
Jan