[GOLD] PowerPC .gnu.attributes support
elfcpp/ * powerpc.h (Tag_GNU_Power_ABI_FP): Define. (Tag_GNU_Power_ABI_Vector, Tag_GNU_Power_ABI_Struct_Return): Define. gold/ * powerpc.cc: Include attributes.h. (Powerpc_relobj::attributes_section_data_): New variable, with accessor and associated constructor and destructor support. (Powerpc_dynobj::attributes_section_data_): Likewise. (Powerpc_relobj::do_read_symbols): Stash SHT_GNU_ATTRIBUTES section contents in attributes_section_data_. (Powerpc_dynobj::do_read_symbols): Likewise. (Target_powerpc): Add attributes_section_data_, last_fp_, last_ld_, last_vec_, and last_struct_ vars. (Target_powerpc::merge_object_attributes): New function. (Target_powerpc::do_finalize_sections): Iterate over input objects merging attributes. Create output attributes section.
This commit is contained in:
parent
6821842f15
commit
724436fccb
4 changed files with 393 additions and 7 deletions
|
@ -1,3 +1,8 @@
|
|||
2018-07-06 Alan Modra <amodra@gmail.com>
|
||||
|
||||
* powerpc.h (Tag_GNU_Power_ABI_FP): Define.
|
||||
(Tag_GNU_Power_ABI_Vector, Tag_GNU_Power_ABI_Struct_Return): Define.
|
||||
|
||||
2018-06-24 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
2.31 branch created.
|
||||
|
|
|
@ -230,6 +230,32 @@ enum
|
|||
EF_PPC64_ABI = 3
|
||||
};
|
||||
|
||||
// Object attribute tags. 0-3 are generic.
|
||||
enum
|
||||
{
|
||||
// FP ABI, low 2 bits:
|
||||
// 1 for double precision hard-float,
|
||||
// 2 for soft-float,
|
||||
// 3 for single precision hard-float.
|
||||
// 0 for not tagged or not using any ABIs affected by the differences.
|
||||
// Next 2 bits:
|
||||
// 1 for ibm long double
|
||||
// 2 for 64-bit long double
|
||||
// 3 for IEEE long double.
|
||||
// 0 for not tagged or not using any ABIs affected by the differences.
|
||||
Tag_GNU_Power_ABI_FP = 4,
|
||||
|
||||
// Value 1 for general purpose registers only, 2 for AltiVec
|
||||
// registers, 3 for SPE registers; 0 for not tagged or not using any
|
||||
// ABIs affected by the differences.
|
||||
Tag_GNU_Power_ABI_Vector = 8,
|
||||
|
||||
// Value 1 for ABIs using r3/r4 for returning structures <= 8 bytes,
|
||||
// 2 for ABIs using memory; 0 for not tagged or not using any ABIs
|
||||
// affected by the differences.
|
||||
Tag_GNU_Power_ABI_Struct_Return = 12
|
||||
};
|
||||
|
||||
// DT_PPC_OPT bits
|
||||
enum
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue