Add EM_IAMCU support to gold
elfcpp/ PR gold/19118 * elfcpp.h (EM): Add EM_IAMCU. gold/ PR gold/19118 * i386.cc (Target_iamcu): New class. (Target_selector_iamcu): Likewise. (Target_iamcu::iamcu_info): New variable. (target_selector_iamcu): Likewise.
This commit is contained in:
parent
8f33e7daaf
commit
01f573ad8a
4 changed files with 70 additions and 1 deletions
|
@ -1,3 +1,8 @@
|
||||||
|
2015-10-13 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
|
PR gold/19118
|
||||||
|
* elfcpp.h (EM): Add EM_IAMCU.
|
||||||
|
|
||||||
2015-10-02 H.J. Lu <hongjiu.lu@intel.com>
|
2015-10-02 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
PR gold/19060
|
PR gold/19060
|
||||||
|
|
|
@ -173,7 +173,7 @@ enum EM
|
||||||
EM_386 = 3,
|
EM_386 = 3,
|
||||||
EM_68K = 4,
|
EM_68K = 4,
|
||||||
EM_88K = 5,
|
EM_88K = 5,
|
||||||
// 6 used to be EM_486
|
EM_IAMCU = 6,
|
||||||
EM_860 = 7,
|
EM_860 = 7,
|
||||||
EM_MIPS = 8,
|
EM_MIPS = 8,
|
||||||
EM_S370 = 9,
|
EM_S370 = 9,
|
||||||
|
|
|
@ -1,3 +1,11 @@
|
||||||
|
2015-10-13 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
|
PR gold/19118
|
||||||
|
* i386.cc (Target_iamcu): New class.
|
||||||
|
(Target_selector_iamcu): Likewise.
|
||||||
|
(Target_iamcu::iamcu_info): New variable.
|
||||||
|
(target_selector_iamcu): Likewise.
|
||||||
|
|
||||||
2015-10-07 Andreas Schwab <schwab@suse.de>
|
2015-10-07 Andreas Schwab <schwab@suse.de>
|
||||||
|
|
||||||
* aarch64.cc (aarch64_info): Set abi_pagesize to 64K.
|
* aarch64.cc (aarch64_info): Set abi_pagesize to 64K.
|
||||||
|
|
56
gold/i386.cc
56
gold/i386.cc
|
@ -4252,4 +4252,60 @@ class Target_selector_i386_nacl
|
||||||
|
|
||||||
Target_selector_i386_nacl target_selector_i386;
|
Target_selector_i386_nacl target_selector_i386;
|
||||||
|
|
||||||
|
// IAMCU variant. It uses EM_IAMCU, not EM_386.
|
||||||
|
|
||||||
|
class Target_iamcu : public Target_i386
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
Target_iamcu()
|
||||||
|
: Target_i386(&iamcu_info)
|
||||||
|
{ }
|
||||||
|
|
||||||
|
private:
|
||||||
|
// Information about this specific target which we pass to the
|
||||||
|
// general Target structure.
|
||||||
|
static const Target::Target_info iamcu_info;
|
||||||
|
};
|
||||||
|
|
||||||
|
const Target::Target_info Target_iamcu::iamcu_info =
|
||||||
|
{
|
||||||
|
32, // size
|
||||||
|
false, // is_big_endian
|
||||||
|
elfcpp::EM_IAMCU, // machine_code
|
||||||
|
false, // has_make_symbol
|
||||||
|
false, // has_resolve
|
||||||
|
true, // has_code_fill
|
||||||
|
true, // is_default_stack_executable
|
||||||
|
true, // can_icf_inline_merge_sections
|
||||||
|
'\0', // wrap_char
|
||||||
|
"/usr/lib/libc.so.1", // dynamic_linker
|
||||||
|
0x08048000, // default_text_segment_address
|
||||||
|
0x1000, // abi_pagesize (overridable by -z max-page-size)
|
||||||
|
0x1000, // common_pagesize (overridable by -z common-page-size)
|
||||||
|
false, // isolate_execinstr
|
||||||
|
0, // rosegment_gap
|
||||||
|
elfcpp::SHN_UNDEF, // small_common_shndx
|
||||||
|
elfcpp::SHN_UNDEF, // large_common_shndx
|
||||||
|
0, // small_common_section_flags
|
||||||
|
0, // large_common_section_flags
|
||||||
|
NULL, // attributes_section
|
||||||
|
NULL, // attributes_vendor
|
||||||
|
"_start" // entry_symbol_name
|
||||||
|
};
|
||||||
|
|
||||||
|
class Target_selector_iamcu : public Target_selector
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
Target_selector_iamcu()
|
||||||
|
: Target_selector(elfcpp::EM_IAMCU, 32, false, "elf32-iamcu",
|
||||||
|
"elf_iamcu")
|
||||||
|
{ }
|
||||||
|
|
||||||
|
Target*
|
||||||
|
do_instantiate_target()
|
||||||
|
{ return new Target_iamcu(); }
|
||||||
|
};
|
||||||
|
|
||||||
|
Target_selector_iamcu target_selector_iamcu;
|
||||||
|
|
||||||
} // End anonymous namespace.
|
} // End anonymous namespace.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue