Default e_machine to EM_IAMCU for i?86-*-elfiamcu
This patch sets the default ELF output format of assembler and linker to EM_IAMCU when binutils is configured to i?86-*-elfiamcu target. gas/ * configure.tgt (arch): Set to iamcu for i386-*-elfiamcu target. * config/tc-i386.c (i386_mach): Support iamcu. (i386_target_format): Likewise. ld/ * configure.tgt: Support i[3-7]86-*-elfiamcu target. ld/testsuite/ * ld-i386/i386.exp (iamcu_tests): Run iamcu-4. * ld-i386/iamcu-4.d: New file.
This commit is contained in:
parent
7e0a81123d
commit
5197d47436
|
@ -1,3 +1,9 @@
|
|||
2015-05-11 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* configure.tgt (arch): Set to iamcu for i386-*-elfiamcu target.
|
||||
* config/tc-i386.c (i386_mach): Support iamcu.
|
||||
(i386_target_format): Likewise.
|
||||
|
||||
2015-05-11 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* config/tc-i386.c (cpu_arch): Add iamcu.
|
||||
|
|
|
@ -2468,7 +2468,8 @@ i386_mach (void)
|
|||
else
|
||||
return bfd_mach_x64_32;
|
||||
}
|
||||
else if (!strcmp (default_arch, "i386"))
|
||||
else if (!strcmp (default_arch, "i386")
|
||||
|| !strcmp (default_arch, "iamcu"))
|
||||
{
|
||||
if (cpu_arch_isa == PROCESSOR_IAMCU)
|
||||
{
|
||||
|
@ -10071,6 +10072,27 @@ i386_target_format (void)
|
|||
}
|
||||
else if (!strcmp (default_arch, "i386"))
|
||||
update_code_flag (CODE_32BIT, 1);
|
||||
else if (!strcmp (default_arch, "iamcu"))
|
||||
{
|
||||
update_code_flag (CODE_32BIT, 1);
|
||||
if (cpu_arch_isa == PROCESSOR_UNKNOWN)
|
||||
{
|
||||
static const i386_cpu_flags iamcu_flags = CPU_IAMCU_FLAGS;
|
||||
cpu_arch_name = "iamcu";
|
||||
cpu_sub_arch_name = NULL;
|
||||
cpu_arch_flags = iamcu_flags;
|
||||
cpu_arch_isa = PROCESSOR_IAMCU;
|
||||
cpu_arch_isa_flags = iamcu_flags;
|
||||
if (!cpu_arch_tune_set)
|
||||
{
|
||||
cpu_arch_tune = cpu_arch_isa;
|
||||
cpu_arch_tune_flags = cpu_arch_isa_flags;
|
||||
}
|
||||
}
|
||||
else
|
||||
as_fatal (_("Intel MCU doesn't support `%s' architecture"),
|
||||
cpu_arch_name);
|
||||
}
|
||||
else
|
||||
as_fatal (_("unknown architecture"));
|
||||
|
||||
|
|
|
@ -215,6 +215,7 @@ case ${generic_target} in
|
|||
i386-*-beospe*) fmt=coff em=pe ;;
|
||||
i386-*-beos*) fmt=elf ;;
|
||||
i386-*-coff) fmt=coff ;;
|
||||
i386-*-elfiamcu) fmt=elf arch=iamcu ;;
|
||||
i386-*-elf*) fmt=elf ;;
|
||||
i386-*-kaos*) fmt=elf ;;
|
||||
i386-*-bsd*) fmt=aout em=386bsd ;;
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
2015-05-11 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* configure.tgt: Support i[3-7]86-*-elfiamcu target.
|
||||
|
||||
2015-05-11 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* Makefile.am (ALL_EMULATION_SOURCES): Add eelf_iamcu.c.
|
||||
|
|
|
@ -304,6 +304,8 @@ x86_64-*-netbsd*) targ_emul=elf_x86_64
|
|||
sed -e 's/netbsd/netbsdelf/'`;;
|
||||
esac ;;
|
||||
i[3-7]86-*-netware) targ_emul=i386nw ;;
|
||||
i[3-7]86-*-elfiamcu) targ_emul=elf_iamcu
|
||||
targ_extra_emuls=elf_i386 ;;
|
||||
i[3-7]86-*-elf*) targ_emul=elf_i386
|
||||
targ_extra_emuls=elf_iamcu ;;
|
||||
x86_64-*-elf*) targ_emul=elf_x86_64
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2015-05-11 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* ld-i386/i386.exp (iamcu_tests): Run iamcu-4.
|
||||
* ld-i386/iamcu-4.d: New file.
|
||||
|
||||
2015-05-11 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* ld-i386/abs-iamcu.d: New file.
|
||||
|
|
|
@ -248,6 +248,7 @@ proc iamcu_tests {} {
|
|||
run_dump_test "iamcu-1"
|
||||
run_dump_test "iamcu-2"
|
||||
run_dump_test "iamcu-3"
|
||||
run_dump_test "iamcu-4"
|
||||
}
|
||||
|
||||
iamcu_tests
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
#source: dummy.s
|
||||
#ld: tmpdir/startiamcu.o tmpdir/fooiamcu.o
|
||||
#readelf: -h
|
||||
#target: i?86-*-elfiamcu
|
||||
|
||||
ELF Header:
|
||||
Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00
|
||||
Class: ELF32
|
||||
Data: 2's complement, little endian
|
||||
Version: 1 \(current\)
|
||||
OS/ABI: UNIX - System V
|
||||
ABI Version: 0
|
||||
Type: EXEC \(Executable file\)
|
||||
Machine: Intel MCU
|
||||
Version: 0x1
|
||||
#pass
|
Loading…
Reference in New Issue