| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(_bfd_mips_elf_create_dynamic_sections): New function.
(_bfd_mips_elf_add_symbol_hook): Likewise.
(_bfd_mips_elf_adjust_dynamic_symbol): Likewise.
(_bfd_mips_elf_finish_dynamic_symbol): Likewise.
(_bfd_mips_elf_finish_dynamic_sections): Likewise.
(_bfd_mips_elf_gc_mark_hook): Likewise.
(_bfd_mips_elf_gc_sweep_hook): Likewise.
(_bfd_mips_elf_always_size_sections): Likewise.
(_bfd_mips_elf_size_dynamic_sections): Likewise.
(_bfd_mips_elf_check_relocs): Likewise.
(_bfd_mips_elf_link_hash_table_create): Likewise.
(_bfd_mips_elf_print_private_data): Likewise.
(_bfd_mips_elf_link_output_symbol_hook): Likewise.
(_bfd_mips_elf_final_link): Likewise.
(_bfd_mips_elf_additional_program_headers): Likewise.
(_bfd_mips_elf_modify_segment_map): Likewise.
(_bfd_mips_elf_relocate_section): Likewise.
* elf32-mips.c (mips_elf32_object_p): Move contents into
_bfd_mips_elf_object_p.
(mips_elf_additional_program_headers): Rename to
_bfd_mips_elf_additional_program_headers.
(mips_elf_modify_segment_map): Rename to
_bfd_mips_elf_modify_segment_map.
(elf_mips_abi_name): Change prototype.
(mips_elf32_section_from_shdr): Merge into
_bfd_mips_elf_section_from_shdr.
(mips_elf32_section_processing): Merge into
_bfd_mips_elf_section_processing.
(mips_elf_final_link): Rename to _bfd_mips_elf_final_link. Invoke
the right back-end ELF linker.
(mips_elf_relocate_section): Rename to
_bfd_mips_elf_relocate_section. Clean up. Adjust for 64-bit code.
(mips_elf_link_output_symbol_hook): Rename to
_bfd_mips_elf_link_output_symbol_hook.
(mips_elf_create_dynamic_section): Rename to
_bfd_mips_elf_create_dynamic_section.
(mips_elf_check_relocs): Rename to _bfd_mips_elf_check_relocs.
Adjust for 64-bit code. Use mips_elf_got_section.
(mips_elf_adjust_dynamic_symbol): Rename to
_bfd_mips_elf_adjust_dynamic_symbol. Use
mips_elf_allocate_dynamic_relocations.
(mips_elf_finish_dynamic_symbol): Rename to
_bfd_mips_elf_finish_dynamic_symbol. Use mips_elf_got_section.
Adjust for 64-bit code.
(mips_elf_finish_dynamic_sections): Rename to
_bfd_mips_elf_finish_dynamic_sections. Adjust for 64-bit code.
(mips_elf_always_size_sections): Rename to
_bfd_mips_elf_always_size_sections.
(mips_elf_add_symbol_hook): Rename to
_bfd_mips_elf_add_symbol_hook.
(mips_elf_next_lo16_addend): Constify.
(mips_elf_calculate_relocation): Likewise.
(mips_elf_obtain_contents): Likewise.
(mips_elf_perform_relocation): Likewise.
(mips_elf_create_dynamic_relocation): Likewise.
(mips_elf_allocate_dynamic_relocations): New function.
(MIPS_ELF_REL_DYN_SECTION_NAME): New macro.
(MIPS_ELF_REL_SIZE): Likewise.
(MIPS_ELF_DYN_SIZE): Likewise.
(MIPS_ELF_GOT_SIZE): Likewise.
(MIPS_ELF_SYM_SIZE): Likewise.
(MIPS_ELF_LOG_FILE_ALIGN): Likewise.
(MIPS_ELF_GET_WORD): Likewise.
(MIPS_ELF_PUT_WORD): Likewise.
(MIPS_ELF_ADD_DYNAMIC_ENTRY): Likewise.
(STUB_LW): Conditionalize for 64-bit value.
(elf_mips_howto_table): Add R_MIPS_HIGHER and R_MIPS_HIGHEST
entries.
(_bfd_mips_elf_merge_private_bfd_data): Merge e_ident[EI_CLASS].
Check it for inconsistency.
(_bfd_mips_elf_print_private_bfd_data): Print ABI=64 for 64-bit
ABI.
(_bfd_mips_elf_fake_sections): Remove duplicate handling of
.msym.
(mips_elf_global_got_index): Use MIPS_ELF_GOT_SIZE.
(mips_elf_got_offset_from_index): Use misp_elf_got_section.
(mips_elf_create_local_got_entry): Use MIPS_ELF_GOT_SIZE.
(mips_elf_local_got_index): Likewise.
(mips_elf_got_page): Likewise.
(mips_elf_got_info): Likewise.
(mips_elf_create_dynamic_relocation): Handle 32-bit/64-bit split.
(ELF_DYNAMIC_INTERPRETER): Handle 64-bit code.
(mips_elf_create_dynamic_sections): Use MIPS_ELF_LOG_FILE_ALIGN,
instead of constant `2'.
(mips_elf_create_got_section): Tidy. Use MIPS_ELF_GOT_SIZE.
(mips_elf_create_msym_section): Use MIPS_ELF_LOG_FILE_ALIGN.
(mips_elf_size_dynamic_sections): Use
MIPS_ELF_REL_DYN_SECTION_NAME, MIPS_ELF_GOT_SIZE,
MIPS_ELF_ADD_DYNAMIC_ENTRY. Remove #if 0'd code.
Adjust all releveant entries in elf backend table.
* elf64-mips.c (mips_elf64_section_from_shdr): Remove.
(mips_elf64_section_processing): Likewise.
Adjust elf backend entries to use _bfd_mips_elf variants now
publicly available.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
hash-entry sizes.
(size_dynamic_sections): Likewise.
(elf_link_output_extsym): Likewise.
* elf.c: (elf_fake_sections): Likewise.
* libbfd.c (bfd_get): New macro.
(bfd_put): Likewise.
* bfd-in2.h: Regenerated.
* elf-bfd.h (elf_size_info): Add hash_entry_size,
int_rels_per_ext_rel, swap_dyn_out, swap_reloc_in, swap_reloc_out,
wap_reloca_in, and swap_reloca_out.
* elflink.h (elf_link_read_relocs_from_section): Adjust to handle
multiple internal relocations per external relocation.
(link_read_relocs): Likewise.
(elf_bfd_final_link): Likewise.
(elf_link_input_bfd): Likewise.
(elf_gc_mark): Likewise.
(elf_gc_smash_unused_vtentry_relocs): Likewise.
* elfcode.h (elf_swap_dyn_out): Adjust type to match
elf_swap_dyn_in.
(size_info): Add entries for new fields.
* elf64-mips.c (mips_elf64_swap_reloc_out): Enable.
(mips_elf64_be_swap_reloc_in): New function.
(mips_elf64_be_swap_reloc_out): Likewise.
(mips_elf64_be_swap_reloca_in): Likewise.
(mips_elf64_be_swap_reloca_out): Likewise.
(mips_elf64_size_info): Add entries for new fields.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
field equals the new rel_count field.
(elf_link_input_bfd): When doing a relocateable link, use the new
rel_count field rather than the reloc_count field.
(elf_reloc_link_order): Likewise.
(elf_finish_pointer_linker_section): Likewise.
Based on patch from H.J. Lu <hjl@gnu.org>:
* elflink.h (elf_merge_symbol): Permit a non-weak definition in a
shared library to override a weak definition in a regular object.
|
| |
|
|
|
|
|
| |
* elf-hppa.h (_bfd_elf_hppa_gen_reloc_type): T mode selectors
need to generate DLTIND relocations, not DLTREL relocations.
|
|
|
|
|
| |
* elf-hppa.h (_bfd_elf_hppa_gen_reloc_type): T mode selectors
need to generate DLTIND relocations, not DLTREL relocations.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
(_bfd_dwarf2_find_nearest_line): Add ADDR_SIZE parameter.
* elf.c (_bfd_elf_find_nearest_line): Pass it.
* elf32-arm.h (elf32_arm_find_nearest_line): Likewise.
* elf32-mips.c (ABI_64_P): New macro.
(IRIX_COMPAT): We are IRIX6-compatible if ABI_64_P.
(_bfd_mips_elf_find_nearest_line): Adjust call to
_bfd_dwarf2_find_nearest_line.
* libbfd-in.h (_bfd_dwarf2_find_nearest_line): Update prototype.
* libbfd.h: Regenerated.
|
| |
|
|
|
|
| |
(HPPA_R_CONSTANT, HPPA_R_ADDEND): Likewise.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
fields.
(_bfd_elf_init_reloc_shdr): New function.
* elf.c (_bfd_elf_new_section_hook): Use bfd_zalloc, rather than
bfd_alloc followed by memset.
(_bfd_elf_init_reloc_shdr): New function, split out from ...
(elf_fake_sections): Here.
(assign_section_numbers): Assign section numbers for the second
relocation section, if required.
* elflink.h (elf_link_output_relocs): New function.
(elf_link_size_reloc_section): Likewise.
(elf_bfd_final_link): Use elf_link_size_reloc_section.
(elf_link_input_bfd): Use elf_link_output_relocs.
* elf32-mips.c (_bfd_mips_elf_fake_sections): Use
_bfd_elf_init_reloc_shdr to initialize rel_hdr2.
|
|
|
|
|
| |
* elf-hppa.h (_bfd_elf_hppa_gen_reloc_type): Handle R_PCREL_CALL
with 22bit format.
|
|
|
|
|
| |
* elf-hppa.h (_bfd_elf_hppa_gen_reloc_type): Handle R_PCREL_CALL
with 22bit format.
|
|
|
|
| |
(FLAGS_STRICT): Define.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
prototypes. Change global_gotsym to be a pointer to a hash entry,
rather than a number index.
(mips_elf_link_hash_entry): Move declaration before prototypes.
(mips_elf_irix6_finish_dynamic_symbol): New function.
(mips_elf_sign_extend): Likewise.
(mips_elf_high): Likewise.
(mips_elf_higher): Likewise.
(mips_elf_highest): Likewise.
(mips_elf_global_got_index): Likewise.
(mips_elf_local_got_index): Likewise.
(mips_elf_got_offset_from_index): Likeiwse.
(mips_elf_record_global_got_symbol): Likewise.
(mips_elf_got_page): Likewise.
(mips_elf_next_lo16_addend): Likewise.
(mips_elf_calculate_relocation): Likewise.
(mips_elf_obtain_contents): Likewise.
(mips_elf_perform_relocation): Likewise.
(mips_elf_assign_gp): Likewise.
(mips_elf_sort_hash_table_f): Likewise.
(mips_elf_sort_hash_table): Likewise.
(mips_elf_got_section): Likewise.
(mips_elf_got_info): Likewise.
(mips_elf_create_local_got_entry): Likewise.
(mips_elf_got16_entry): Likewise.
(mips_elf_create_dynamic_relocation): Likewise.
(elf_mips_howto_table): Add description of R_MIPS_SCN_DISP.
(mips_elf_final_gp): Use mips_elf_assign_gp.
(_bfd_mips_elf_symbol_processing): Don't move SHN_COMMON symbols
into SHN_SCOMMON automatically on IRIX6.
(mips_elf_add_symbol_hook): Likewise.
(mips_elf_relocate_section): Rewrite, using
mips_elf_calculate_relocation and mips_elf_perform_relocation.
(mips_elf_create_dynamic_section): Use MIPS_ELF_STUB_SECTION_NAME.
Don't deal with .rld_map on IRIX6.
(mips_elf_create_got_section): Adjust use of global_gotsym. Set
section flags appropriately for .got.
(mips_elf_check_relocs): Handle IRIX6 relocations making use of
the got. Call mips_elf_record_global_got_symbol and allocate
local got space appropriately.
(mips_elf_size_dynamic_sections): Use bfd_byte *, not unsigned
char *. Rework calculation of GOT size. Sort dynamic symbol
table entries so entries that do not require GOT entries appear at
the beginning. Don't use DT_MIPS_HIPAGENO on IRIX6. Remove dead
code dealing with DT_INIT and DT_FINI. Remove fiddling with
global_gotsym.
(mips_elf_finish_dynamic_symbol): Adjust creation of global GOT
entries.
(mips_elf_finish_dynamic_symbol): Use
mips_elf_irix6_finish_dynamic_symbol.
(mips_elf_finish_dynamic_sections): Correct off-by-one error
setting DT_MIPS_UNREFEXTNO. Adjust setting of DT_MIPS_GOTSYM for
change to global_gotsym. Set DT_MIPS_OPTIONS on IRIX6.
|
|
|
|
| |
relocateable link. From Ralf Baechle <ralf@uni-koblenz.de>.
|
| |
|
|
|
|
| |
Take note of 'no_undefined'.
|
|
|
|
|
|
| |
* elf-hppa.c (elf_hppa_howto_table): Use bfd_elf_generic_reloc as
relocation function.
* elf32-hppa.c (hppa_elf_reloc): Kill unused/unwanted function.
|
|
|
|
|
|
| |
* elf-hppa.c (elf_hppa_howto_table): Use bfd_elf_generic_reloc as
relocation function.
* elf32-hppa.c (hppa_elf_reloc): Kill unused/unwanted function.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(MIPS_ELF_OPTIONS_SECTION_NAME): Likewise.
(MIPS_ELF_STUB_SECTION_NAME): Likewise.
(_bfd_mips_elf_section_from_shdr): Use them.
(_bfd_mips_elf_fake_sections): Likewise. Add .srdata to the list
of GP-relative sections.
(_bfd_mips_elf_set_section_contents): Use them.
(_bfd_mips_elf_section_processing): Share code between .sdata and
.lit4/.lit8 sections. Set appropriate flags for .srdata.
(mips_elf_additional_program_headers): Add handling for
PT_MIPS_OPTIONS segment on IRIX6.
(mips_elf_modify_segment_map): Likeiwse.
(mips_elf_final_link): Set EF_MIPS_CPIC when required by the ABI.
Include the options sections on IRIX6. Don't look for GP-relative
sections by name; use SHF_MIPS_GPREL instead.
(ELF_DYNAMIC_INTERPRETER): Adjust to use /usr/lib32/libc.so.1 for
the N32 ABI.
(mips_elf_create_dynamic_sections): Don't muck about with section
alignments and such on IRIX6.
(mips_elf_adjust_dynamic_symbol): Use MIPS_ELF_STUB_SECTION_NAME.
(mips_elf_size_dynamic_sections): Likewise. Adjust to handle the
fact that ELF_DYNAMIC_INTERPRETER is no longer a constant. Use
bfd_zalloc rather than bfd_alloc and memset.
(mips_elf_finish_dynamic_symbol): Use MIPS_ELF_STUB_SECTION_NAME.
Don't assert the existence of .rld_map on IRIX6.
(mips_elf_finish_dynamic_sections): Use MIPS_ELF_STUB_SECTION_NAME.
|
|
|
|
|
| |
(mips_elf_size_dynamic_sections): Use _bfd_elf_link_adjust_dynindx
instead.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(mips_elf_swap_msym_out): New function.
(mips_elf_create_msym_section): Likewise.
(MIPS_ELF_MSYM_SECTION_NAME): New macro.
(_bfd_mips_elf_final_write_processing): Set sh_link for .msym.
(_bfd_mips_elf_section_from_shdr): Reject an SHT_MIPS_MSYM
section not named .msym.
(_bfd_mips_elf_fake_sections): Use MIPS_ELF_MSYM_SECTION_NAME, not
.msym directly. Set appropriate attributes for the .msym
section.
(mips_elf_link_hash_entry): Add min_dyn_reloc_index field.
(mips_elf_link_hash_newfunc): Clear it.
(mips_elf_create_dynamic_sections): Create the .msym section
on IRIX6.
(mips_elf_size_dynamic_sections): Allocate space for the
.msym section. Add a DT_MIPS_MSYM entry.
(mips_elf_finish_dynamic_symbol): Write out a .msym entry for
the symbol.
(mips_elf_finish_dynamic_sections): Assign a value for
DT_MIPS_MSYM. Add .msym entries for the section symbols as well.
|
|
|
|
|
|
|
| |
(ABI_N32_P): New macro.
(IRIX_COMPAT): Likewise.
(SGI_COMPAT): Implement in terms of IRIX_COMPAT.
(mips_elf_relocate_section): Fix typo.
|
| |
|
|
|
|
|
| |
* peicode.h (coff_swap_scnhdr_out): Mark non readonly BFD sections
as writable PE sections.
|
|
|
|
|
|
|
|
|
|
|
|
| |
* dwarf2.c (struct arange): New type.
(struct comp_unit): Replace LOW and HIGH by member ARANGE.
(arange_add): New function.
(decode_line_info): Keep track of address ranges that a compilation
unit covers.
(comp_unit_contains_address): Return true if address is contained
in _any_ of the address ranges associated with a compilation unit.
(_bfd_dwarf2_find_nearest_line): Call comp_unit_find_nearest_line
on the first comp_unit that contains the address.
|
|
|
|
|
|
|
| |
* dwarf2.c (struct dwarf2_debug): Add member dwarf_line_buffer.
(decode_line_info): Add variable STASH and initialize it to point
to the per-bfd dwarf2_debug info. Remove static variable
dwarf_line_buffer and use stash->dwarf_line_buffer in its place.
|
|
|
|
| |
shared library to have an undefined symbol.
|
|
|
|
| |
* elf32-ppc.c (ppc_elf_relocate_section): Fix last patch.
|
| |
|
| |
|
|
|
|
|
|
| |
* elf-hppa.c (elf_hppa_final_write_processing): New function.
* elf32-hppa.c: Remove everything related to symbol extension
sections & records. Use the common elf_hppa_final_write_processing.
|
| |
|
|
|
|
|
|
| |
* elf-hppa.c (elf_hppa_final_write_processing): New function.
* elf32-hppa.c: Remove everything related to symbol extension
sections & records. Use the common elf_hppa_final_write_processing.
|
|
|
|
| |
functions instead of _init/_fini if requested.
|