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
@ -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>
|
||||
|
||||
PR gold/19060
|
||||
|
@ -173,7 +173,7 @@ enum EM
|
||||
EM_386 = 3,
|
||||
EM_68K = 4,
|
||||
EM_88K = 5,
|
||||
// 6 used to be EM_486
|
||||
EM_IAMCU = 6,
|
||||
EM_860 = 7,
|
||||
EM_MIPS = 8,
|
||||
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>
|
||||
|
||||
* 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;
|
||||
|
||||
// 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.
|
||||
|
Loading…
x
Reference in New Issue
Block a user