Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
o bfd_read and bfd_write lose an unnecessary param and become
bfd_bread and bfd_bwrite.
o bfd_*alloc now all take a bfd_size_type arg, and will error if
size_t is too small. eg. 32 bit host, 64 bit bfd, verrry big files
or bugs in linker scripts etc.
o file_ptr becomes a bfd_signed_vma. Besides matching sizes with
various other types involved in handling sections, this should make
it easier for bfd to support a 64 bit off_t on 32 bit hosts that
provide it.
o I've made the H_GET_* and H_PUT_* macros (which invoke bfd_h_{get,put}_*)
generally available. They now cast their args to bfd_vma and
bfd_byte * as appropriate, which removes a swag of casts from the
source.
o Bug fixes to bfd_get8, aix386_core_vec, elf32_h8_relax_section, and
aout-encap.c.
o Zillions of formatting and -Wconversion fixes.
|
|
(struct elf_backend_data): Add elf_backend_reloc_type_class.
(_bfd_elf_reloc_type_class): New.
* elfxx-target.h (elf_backend_reloc_type_class): Define.
(elfNN_bed): Add elf_backend_reloc_type_class.
* elf.c (_bfd_elf_reloc_type_class): New.
* elf32-i386.c (elf_i386_check_relocs): Set DF_TEXTREL if the reloc
is against read-only section.
(elf_i386_size_dynamic_sections): Use DF_TEXTREL flag instead of
looking up section names for DT_TEXTREL.
(elf_i386_reloc_type_class): New.
(elf_backend_reloc_type_class): Define.
* elf32-sparc.c (elf32_sparc_check_relocs): Set DF_TEXTREL if the
reloc is against read-only section.
(elf32_sparc_size_dynamic_sections): Use DF_TEXTREL flag instead of
looking up section names for DT_TEXTREL.
(elf32_sparc_reloc_type_class): New.
(elf_backend_reloc_type_class): Define.
* elf64-sparc.c (sparc64_elf_check_relocs): Set DF_TEXTREL if the
reloc is against read-only section.
(sparc64_elf_size_dynamic_sections): Use DF_TEXTREL flag instead of
looking up section names for DT_TEXTREL.
(sparc64_elf_reloc_type_class): New.
(elf_backend_reloc_type_class): Define.
* elfxx-ia64.c (struct elfNN_ia64_link_hash_table): Add reltext field.
(elfNN_ia64_hash_table_create): Clear ia64_info.
(get_reloc_section): Set DF_TEXTREL if the reloc is against read-only
section.
(elfNN_ia64_size_dynamic_sections): Use ia64_info->reltext flag
instead of looking up section names for DT_TEXTREL.
(elfNN_ia64_reloc_type_class): New.
(elf_backend_reloc_type_class): Define.
* elflink.h (size_dynamic_sections): Add spare DT_NULL tags.
(struct elf_link_sort_rela): New.
(elf_link_sort_cmp1, elf_link_sort_cmp2, elf_link_sort_relocs): New.
(elf_bfd_final_link): Call elf_link_sort_relocs.
Convert one spare DT_NULL into DT_RELCOUNT resp. DT_RELACOUNT if
necessary.
* bfdlink.h (struct bfd_link_info): Add combreloc and
spare_dynamic_tags fields.
* emultempl/elf32.em (place_orphan): Place orphan .rel* sections
into .rel.dyn resp. .rela.dyn if combreloc.
(get_script): If .x linker script is equal to .xn, only put it
once into the binary.
Add .xc and .xsc scripts.
(parse_args): Handle -z combreloc and -z nocombreloc.
* scripttempl/elf.sc (.rela.sbss): Fix a typo.
For .xc and .xsc scripts put all .rel* or .rela* input sections
but .rel*.plt and PLT-like sections into .rel.dyn resp. .rela.dyn.
* genscripts.sh (GENERATE_COMBRELOC_SCRIPT): Set if SCRIPT_NAME
is elf.
Strip trailing whitespace from script.
Generate .xc and .xsc scripts if requested.
* ldmain.c (main): Initialize link_info.combreloc and
link_info.spare_dynamic_tags.
* lexsup.c (OPTION_SPARE_DYNAMIC_TAGS): Define.
(ld_options): Add --spare-dynamic-tags option.
(parse_args): Likewise.
* ld.texinfo: Document -z combreloc and -z nocombreloc.
* ldint.texinfo: Document .xc and .xsc linker scripts.
* NEWS: Add notes about -z combreloc and SHF_MERGE.
|
|
(bfd_set_gp_size): Make param unsigned.
* bfd-in2.h: Regenerate.
* elf32-ppc.c (ppc_elf_add_symbol_hook): Use elf_gp_size rather
than calling bfd_get_gp_size.
* elf64-alpha.c (elf64_alpha_add_symbol_hook): Likewise.
* elfxx-ia64.c (elfNN_ia64_add_symbol_hook): Likewise.
|
|
silence warning.
* coffgen.c (coff_print_symbol): Fix warnings.
(coff_find_nearest_line): Likewise.
* cofflink.c (_bfd_coff_link_input_bfd): Likewise.
* coff-alpha.c (alpha_convert_external_reloc): Likewise.
* format.c (bfd_check_format_matches): Likewise.
(bfd_set_format): Likewise.
* coff-ia64.c: Add missing prototypes.
* elf64-alpha.c (struct alpha_elf_link_hash_entry): Make addend
signed to silence warnings.
(elf64_alpha_relocate_section): Likewise.
(elf64_alpha_find_reloc_at_ofs): Fix warnings.
(elf64_alpha_add_symbol_hook): Likewise.
(elf64_alpha_final_link): Likewise.
(elf64_alpha_relax_section): Remove redundant assign to info.gotent.
(elf64_alpha_merge_gots): Add ATTRIBUTE_UNUSED to unused args.
(elf64_alpha_size_got_sections): Likewise.
* elfxx-ia64.c: Add missing prototypes.
(elfNN_ia64_relocate_section): Fix warning.
(elfNN_ia64_unwind_entry_compare): Make params const.
|
|
* reloc.c (bfd_reloc_code_type): Add IA64 relocs
BFD_RELOC_IA64_LTOFF_FPTR32MSB and BFD_RELOC_IA64_LTOFF_FPTR32LSB
* bfd-in2.h: Regenerate.
* libbfd.h: Regenerate.
* elfxx-ia64.c (ia64_howto_table): Define how to handle
new relocations.
(elfNN_ia64_reloc_type_lookup): Handle new relocations.
(elfNN_ia64_check_relocs): Likewise.
(elfNN_ia64_install_value): Likewise.
(elfNN_ia64_relocate_section): Likewise.
|
|
|
|
sections as well.
(elfNN_ia64_final_write_processing): Map .gnu.linkonce.ia64unw.FOO
to .gnu.linkonce.t.FOO text section.
* readelf.c (process_unwind): Print all unwind sections, not just
one.
* config/tc-ia64.c (special_linkonce_name): New.
(make_unw_section): Map .gnu.linkonce.t.FOO text section into
.gnu.linkonce.ia64unw{,i}.FOO.
(ia64_elf_section_type): Handle .gnu.linkonce.ia64unw{,i}.FOO.
(dot_endp): Add comment about it.
* elf/ia64.h (ELF_STRING_ia64_unwind_once): Define.
(ELF_STRING_ia64_unwind_info_once): Define.
* emulparams/elf64_ia64.sh (OTHER_READONLY_SECTIONS): Put
.gnu.linkonce.ia64unw{,i} sections into corresponding .IA_64.unwind*
output sections.
* emulparams/elf64_aix.sh (OTHER_READONLY_SECTIONS): Likewise.
|
|
* elf.c (_bfd_elf_link_hash_hide_symbol): Set dynindx to -1
only for ELF_LINK_FORCED_LOCAL.
* elf32-hppa.c (elf32_hppa_hide_symbol): Likewise.
* elf32-mips.c (_bfd_mips_elf_hide_symbol): Likewise.
* elfxx-ia64.c (elfNN_ia64_hash_hide_symbol): Likewise.
* elflink.h (elf_fix_symbol_flags): Set ELF_LINK_FORCED_LOCAL
if the symbol has hidden or internal visibility.
|
|
|
|
|
|
and not user provided.
|
|
true if section name is an unwind table section name.
(elfNN_ia64_additional_program_headers): Count each unwind section
separately.
(elfNN_ia64_modify_segment_map): Install one unwind program header
for each unwind separate section. Note: normally the linker
script merges the unwind sections that go into a single segment,
so this still generates at most one unwind program header per
segment.
* elfxx-ia64.c (elfNN_ia64_section_from_shdr): Accept any section
name for SHT_IA_64_UNWIND, not just .IA_64.unwind.
(elfNN_ia64_fake_sections): Mark sections with names that start
with .IA_64.unwind but not with .IA_64.unwind_info as an IA-64
unwind section.
* elfxx-ia64.c (elfNN_ia64_final_write_processing): New function.
Use it to make sh_info in unwind section point to the text section
it applies to.
|
|
* elfxx-ia64.c (elfNN_ia64_dynamic_symbol_p): Only hidden and
internal symbols are not dynamic.
* elf64-alpha.c (alpha_elf_dynamic_symbol_p): Likewise.
|
|
for non-default visibility.
* elf64-alpha.c (alpha_elf_dynamic_symbol_p): Likewise, but
delete ugly macro and replace with pretty function.
|
|
* coff64-rs6000.c: Fix formatting.
* coff-arm.c: Likewise.
* coffgen.c: Likewise.
* cofflink.c: Likewise.
* coff-mcore.c: Likewise.
* coff-mips.c: Likewise.
* coff-pmac.c: Likewise.
* coff-ppc.c: Likewise.
* coff-rs6000.c: Likewise.
* elf32.c: Likewise.
* elf32-fr30.c: Likewise.
* elf32-i370.c: Likewise.
* elf32-i860.c: Likewise.
* elf32-m32r.c: Likewise.
* elf32-m68k.c: Likewise.
* elf32-mcore.c: Likewise.
* elf32-ppc.c: Likewise.
* elf32-sh.c: Likewise.
* elf32-v850.c: Likewise.
* elf64-alpha.c: Likewise.
* elf64-sparc.c: Likewise.
* elflink.c: Likewise.
* elflink.h: Likewise.
* elf-m10200.c: Likewise.
* elf-m10300.c: Likewise.
* elfxx-ia64.c: Likewise.
|
|
* ecoffswap.h: Fix formatting.
* elf-bfd.h: Likewise.
* elfarm-nabi.c: Likewise.
* elfarm-oabi.c: Likewise.
* elfcode.h: Likewise.
* elfcore.h: Likewise.
* elflink.c: Likewise.
* elflink.h: Likewise.
* elfxx-ia64.c: Likewise.
* elfxx-target.h: Likewise.
|
|
* elfxx-ia64.c (get_dyn_sym_info): Cast %p argument to void *.
* config/tc-ia64.h (ia64_init): Add prototype.
* gas/ia64/dv-imply.d, gas/ia64/dv-mutex.d, gas/ia64/dv-safe.d,
gas/ia64/dv-srlz.d, gas/ia64/opc-m.d: Update.
* ia64-dis.c (print_insn_ia64): Cast away const on ia64_free_opcode
argument.
* ia64_gen.c (insert_deplist): Cast sizeof result to int.
(print_dependency_table): Print NULL if semantics field not set.
(insert_opcode_dependencies): Mark cmp parameter as unused.
(print_main_table): Use fprintf_vma to print long long fields.
(main): Mark argv paramter as unused. Convert to old style definition.
* ia64-opc.c (ia64_find_dependency): Cast sizeof result to int.
* ia64-asmtab.c: Regnerate.
|
|
* coff-ia64.c (howto_table): Use EMPTY_HOWTO.
(in_reloc_p): Add ATTRIBUTE_UNUSED to unused parameters.
* cpu-ia64-opc.c (ins_rsvd, ext_rsvd, ins_const, ext_const): Likewise.
(ins_imms_scaled): Initialize sign_bit at function entry.
(elf64_ia64_operands): Add missing initializers.
* elfxx-ia64.c (elfNN_ia64_reloc, elfNN_ia64_reloc_type_lookup,
elfNN_ia64_info_to_howto, elfNN_ia64_fake_sections,
elfNN_ia64_add_symbol_hook, elfNN_ia64_is_local_label_name,
elfNN_ia64_local_hash_table_init, get_fptr, get_pltoff,
elfNN_ia64_adjust_dynamic_symbol): Add ATTRIBUTE_UNUSED for unused
parameters.
(elfNN_ia64_info_to_howto): Initialize free_relocs, free_contents,
and free_extsyms at function entry.
(elfNN_add_symbol_hook): Add unsigned cast to bfd_get_gp_size result.
(elfNN_ia64_create_dynamic_sections): Delete unused local h.
(get_got): Delete unused local srel.
(elfNN_ia64_check_relocs): Initialize dynrel_type when declared.
(elfNN_ia64_relocate_section): Delete unused local dynindx.
|
|
* elfxx-ia64.c (elfNN_ia64_size_dynamic_sections): Don't create
pltoff entries for DT_INIT and DT_FINI.
(elfNN_ia64_final_link): Don't set DT_INIT/FINI entries.
(elfNN_ia64_finish_dynamic_sections): Don't fill in DT_INIT/FINI
entries.
|
|
(allocate_dynrel_entries): Likewise.
(elfNN_ia64_relocate_section): Likewise. Set REL addends correctly.
(set_pltoff_entry): Likewise.
(ia64_howto_table): Remove R_IA64_SEGBASE, and R_IA64_EPLT[ML]SB
(elfNN_ia64_reloc_type_lookup): Likewise.
(elfNN_ia64_install_value): Likewise.
(elfNN_ia64_relocate_section): Likewise.
* reloc.c (BFD_RELOC_IA64_SEGBASE): Remove.
(BFD_RELOC_IA64_EPLTMSB, BFD_RELOC_IA64_EPLTLSB): Remove.
|
|
Set it before bfd_elf64_bfd_final_link call. Use it after the call.
* section.c (bfd_set_section_contents): Call memcpy if
section->contents set and location not equal to contents plus offset.
|
|
* archures.c: (bfd_mach_ia64_elf64, bfd_mach_ia64_elf32) Add defines
to differentiate elf32 and elf64 on ia64.
* bfd-in2.h: Regenerate.
* config.bfd: Add target for "ia64*-*-hpux*".
* configure.in: Add bfd_elf32_ia64_big_vec to selvecs switch.
* configure: Regenerate.
* cpu-ia64.c (bfd_ia64_elf32_arch) Add elf32 arch info structure.
* targets.c: Add bfd_target bfd_elf32_ia64_big_vec.
* Makefile.am: Make elf32-ia64.c and elf64-ia64.c derived objects
from elfxx-ia64.c. Add depenency rules for making elf32-ia64.lo.
* Makefile.in: Regnerate.
* elf64-ia64.c: Deleted
* elfxx-ia64.c: New file, paramaterized version of elf64-ia64.c.
|