* elf-bfd.h (struct bfd_elf_section_data): Add "group" and
"next_in_group". Fix gp and gp_size comments. * elf.c (union elf_internal_group): New. (setup_group): New function. (_bfd_elf_make_section_from_shdr): Set BFD flags for SHT_GROUP. Call setup_group for SHF_GROUP sections. (bfd_section_from_shdr): Build a BFD section for SHT_GROUP. (elf_fake_sections): Set header type for SEC_GROUP, and header flags for sections in a group. (set_group_contents): New function. (_bfd_elf_compute_section_file_positions): Call it. (assign_section_numbers): Set sh_link for SHT_GROUP. * elflink.h (gc_mark_hook): Handle section groups. * elfxx-target.h: Add SEC_GROUP to applicable_flags. * section.c (SEC_GROUP): Define. (struct sec): Comment fixes. * bfd-in2.h: Regenerate. * elf.c (bfd_elf_print_symbol): Formatting fix; migrate expression out of function args. (_bfd_elf_canonicalize_reloc): Similarly. (_bfd_elf_get_symtab): Here too. (_bfd_elf_canonicalize_dynamic_symtab): And here. * elfcode.h (elf_slurp_symbol_table): Don't recalculate size for bfd_bread, and remove unnecessary cast.
This commit is contained in:
parent
ddb2683535
commit
dbb410c3e2
8 changed files with 392 additions and 34 deletions
|
@ -177,7 +177,7 @@ CODE_FRAGMENT
|
|||
.
|
||||
. int id;
|
||||
.
|
||||
. {* Which section is it; 0..nth. *}
|
||||
. {* Which section in the bfd; 0..n-1 as sections are created in a bfd. *}
|
||||
.
|
||||
. int index;
|
||||
.
|
||||
|
@ -292,9 +292,10 @@ CODE_FRAGMENT
|
|||
. objects are to be further relocated. *}
|
||||
.#define SEC_EXCLUDE 0x40000
|
||||
.
|
||||
. {* The contents of this section are to be sorted by the
|
||||
. based on the address specified in the associated symbol
|
||||
. table. *}
|
||||
. {* The contents of this section are to be sorted based on the sum of
|
||||
. the symbol and addend values specified by the associated relocation
|
||||
. entries. Entries without associated relocation entries will be
|
||||
. appended to the end of the section in an unspecified order. *}
|
||||
.#define SEC_SORT_ENTRIES 0x80000
|
||||
.
|
||||
. {* When linking, duplicate sections of the same name should be
|
||||
|
@ -361,6 +362,9 @@ CODE_FRAGMENT
|
|||
. size entries. *}
|
||||
.#define SEC_STRINGS 0x40000000
|
||||
.
|
||||
. {* This section contains data about section groups. *}
|
||||
.#define SEC_GROUP 0x80000000
|
||||
.
|
||||
. {* End of section flags. *}
|
||||
.
|
||||
. {* Some internal packed boolean fields. *}
|
||||
|
@ -381,7 +385,8 @@ CODE_FRAGMENT
|
|||
. {* A mark flag used by some linker backends for garbage collection. *}
|
||||
. unsigned int gc_mark : 1;
|
||||
.
|
||||
. {* Used by the ELF code to mark sections which have been allocated to segments. *}
|
||||
. {* Used by the ELF code to mark sections which have been allocated
|
||||
. to segments. *}
|
||||
. unsigned int segment_mark : 1;
|
||||
.
|
||||
. {* End of internal packed boolean fields. *}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue