X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=bfd%2FChangeLog;h=c37f13e0d52d72f2f290436545630c532c473537;hb=8c6845782707f98080fa789050c9d70afadb1842;hp=9ecf6f7b11582588dd40b9b20720969963fae4f8;hpb=380814a698a8efd950c29faf10a5044df847521b;p=binutils-gdb.git diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 9ecf6f7b115..c37f13e0d52 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,591 @@ +2008-07-12 Jie Zhang + + * elf.c (_bfd_elf_map_sections_to_segments): Don't put + executable sections into the same segment with other + read only sections if --sep-code. + * elf32-bfin.c (elf32_bfin_code_in_l1): New variable. + (elf32_bfin_data_in_l1): New variable. + (elf32_bfin_final_write_processing): New. + (elf32_bfin_special_sections[]): New. + (elf_backend_final_write_processing): Define. + (elf_backend_special_sections): Define. + +2008-07-11 Andreas Schwab + + * dwarf2.c (read_section): Take pointer to bfd_size_type instead + of unsigned long as last parameter. + (struct dwarf2_debug): Define dwarf_abbrev_size, dwarf_line_size, + dwarf_str_size and dwarf_ranges_size as bfd_size_type instead of + unsigned long. + +2008-07-10 Richard Sandiford + + * elfxx-mips.c (mips_elf_calculate_relocation): Calculate GP and GP0 + for all relocation types. Allow any type of relocation to refer to + __gnu_local_gp. + +2008-07-10 Richard Sandiford + + * elfxx-mips.c (mips_elf_check_mips16_stubs): Use ELF_ST_IS_MIPS16. + (mips_elf_calculate_relocation): Likewise. + (_bfd_mips_elf_add_symbol_hook): Likewise. + (_bfd_mips_elf_finish_dynamic_symbol): Likewise. + (_bfd_mips_vxworks_finish_dynamic_symbol): Likewise. + +2008-07-10 Andreas Schwab + + * elfxx-mips.c (_bfd_mips_elf_section_from_shdr): Add missing + paren. + +2008-07-09 Craig Silverstein + + * Makefile.am (BFD32_LIBS): Add compress.lo. + (BFD32_LIBS_CFILES): Add compress.c. + (BFD_H_FILES): Likewise. + * Makefile.in: Regenerate. + * bfd-in2.h: Regenerate. + * config.in: Add HAVE_ZLIB_H + * configure.in: Add test for libz and zlib.h + * configure: Regenerate. + * dwarf2.c (read_section): New function. + (read_indirect_string): Call new function read_section. + (read_abbrevs): Likewise. + (decode_line_info): Likewise. + (read_debug_ranges): Likewise. + (find_line): Call new function read_section when just one + .zdebug_info section is found, otherwise read and compress + multiple sections. + (_bfd_dwarf2_cleanup_debug_info): Free sec_info_ptr. + * elf.c (_bfd_elf_make_section_from_shdr): Add zdebug prefix. + (special_sections_z): New struct. + (special_sections): Refer to special_sections_z. + * elfxx-mips.c (_bfd_mips_elf_section_from_shdr): Recognize + sections named .zdebug_*. + (_bfd_mips_elf_fake_sections): Likewise. + * compress.c: New file. + (bfd_uncompress_section_contents): New function. + +2008-07-07 Christophe Lyon + + * elf32-arm.c (arm_type_of_stub): Don't crash on local symbols in + the presence of a PLT. + +2008-07-07 Alan Modra + + * bfd.c (bfd_demangle): Always trim off bfd_get_symbol_leading_char. + +2008-07-02 Alan Modra + + * elf32-ppc.c (is_pic_glink_stub): New function. + (ppc_elf_get_synthetic_symtab): Don't generate symbols when + multiple shared/pie stubs per plt entry. + +2008-06-30 Richard Sandiford + + * elf.c (_bfd_elf_get_synthetic_symtab): Increment p by + bed->s->int_rels_per_ext_rel. + +2008-06-30 Richard Sandiford + + * syms.c (BSF_SYNTHETIC): New flag. + * elf.c (_bfd_elf_get_synthetic_symtab): Set it. + * elf32-ppc.c (ppc_elf_get_synthetic_symtab): Likewise. + * elf64-ppc.c (ppc64_elf_get_synthetic_symtab): Likewise. + * bfd-in.h (bfd_asymbol_flavour): Return bfd_target_unknown_flavour + for synthetic symbols. + * bfd-in2.h: Regenerate. + +2008-06-30 Daniel Jacobowitz + + * elf32-arm.c (record_arm_to_thumb_glue, record_thumb_to_arm_glue): + Expand comments. + (arm_map_one_stub): Use | 1 when setting the low bit. + +2008-06-29 Andreas Schwab + + * elf32-m68k.c (elf_m68k_relocate_section): Don't ignore existing + addend on _GLOBAL_OFFSET_TABLE_. + +2008-06-24 Daniel Jacobowitz + + * elf32-arm.c (STUB_ENTRY_NAME): Define. + (arm_thumb_thumb_long_branch_stub): Use bx instead of b.n. + (arm_pic_long_branch_stub): Mention R_ARM_REL32 instead of + R_ARM_ABS32. + (struct elf32_arm_stub_hash_entry): Add output_name. + (arm_build_one_stub): Move offsets into the offset argument + of _bfd_final_link_relocate. Correct offset for + arm_thumb_arm_v4t_stub_long_branch. + (elf32_arm_size_stubs): Set stub_entry->output_name. + (elf32_arm_ouput_plt_map_sym): Rename to elf32_arm_output_map_sym. + Update all callers. + (elf32_arm_output_stub_sym): New. + (arm_map_one_stub): Correct formatting. Use elf32_arm_output_stub_sym. + +2008-06-20 Alan Modra + + * elf32-spu.c (needs_ovl_stub): Correctly return nonovl_stub for + non-branch insns. + +2008-06-20 Alan Modra + + * elf32-spu.c (build_stub): Allow wraparound on stub branches. + (allocate_spuear_stubs, build_spuear_stubs): Return value from + count_stub/build_stub. + (spu_elf_build_stubs): Correct location of stub reloc error message. + +2008-06-18 M R Swami Reddy + + * elf32-cr16.c (ELF_MACHINE_ALT1): Define to EM_CR16_OLD. + +2008-06-17 Ralf Wildenhues + + * configure: Regenerate. + +2008-06-17 Alan Modra + + * elf32-spu.c (struct spu_link_hash_table): Add extra_stack_space. + (spu_elf_check_vma): Add extra_stack_space param, copy to htab. + (spu_elf_auto_overlay): Use it. + (RECURSE_UNMARK): Define as 0. + (unmark_overlay_section): Heed RECURSE_UNMARK. + * elf32-spu.h (spu_elf_check_vma): Update prototype. + +2008-06-12 DJ Delorie + + * elf32-m32c.c (ELF_MACHINE_ALT1): Define as EM_M32C_OLD. + +2008-06-09 Paul Brook + + bfd/ + * elf32-arm.c (elf32_arm_merge_private_bfd_data): Allow BE8 shared + libraries. + +2008-06-09 Christophe Lyon + + * elf32-arm.c (arm_stub_is_thumb): Define. + (elf32_arm_final_link_relocate): Handle near mode switching stubs. + +2008-06-07 Alan Modra + + * elf32-spu.c (spu_elf_auto_overlay): Add valid area below sp + to stack calculation. + +2008-06-06 Paul Brook + + bfd/ + * elf32-arm.c (elf32_arm_merge_private_bfd_data): Reject BE8 input. + +2008-06-06 Alan Modra + + * elf32-spu.c (spu_elf_auto_overlay): Relax requirement that + file names be unique. Specify archive:path in overlay script. + +2008-06-05 Alan Modra + + PR ld/6590 + * elf64-ppc.c (ppc_build_one_stub): Correct reloc offsets. + +2008-06-04 Alan Modra + + * elf.c (ignore_section_sym): Don't test section sym value here. + (elf_map_symbols): Instead check zero value here as was done prior + to 2006-05-26 change. + +2008-06-04 Nick Clifton + + PR ld/6019 + * elf32-avr.c (elf32_avr_relax_section): Handle the case where + there are no local symbols. + +2008-06-04 Alan Modra + + * elf32-spu.c (get_sym_h): Don't attempt to read global syms. + (process_stubs): Likewise. + (discover_functions): Don't used cached symbols. + (maybe_insert_function): Correct condition under which function + array is realloc'd. + (mark_functions_via_relocs): Delete unused variable. + +2008-05-30 Frediano Ziglio + Nick Clifton + + PR ld/6511 + * elf64-hppa.c (allocate_global_data_opd): Default to using the + dynamic symbol table for local function names in shared libraries. + +2008-05-29 Jan Kratochvil + + * elf.c (assign_file_positions_for_load_sections): Adjust pre-section + gaps based on VMA and P_VADDR instead of LMA and P_PADDR addresses. + +2008-05-28 Alan Modra + + * elf32-spu.c (spu_elf_object_p): New function. + (elf_backend_object_p): Define. + (build_stub): Correct second word of 8 byte overlay stubs. + (spu_elf_relocate_section): Formatting. + +2008-05-24 Carlos Eduardo Seo + + * elf.c (elfcore_write_register_note): New function. + * elf-bfd.h (elfcore_write_register_note): New prototype. + +2008-05-22 Christophe Lyon + + * elf32-arm.c (arm_type_of_stub): Ignore STT_SECTION symbols. + (elf32_arm_stub_add_mapping_symbol): Remove. + (elf32_arm_add_stub): Don't generate mapping symbols. Change + prototype. + (elf32_arm_size_stubs): Use new elf32_arm_add_stub + prototype. Don't generate thumb to arm glue for calls. + (arm_map_one_stub): Define. + (elf32_arm_output_arch_local_syms): Generate mapping symbols for + long calls stubs. + +2008-05-21 Maxim Kuvyrkov + + Add multi-GOT support for m68k. + * elf32-m68k.c (struct elf_m68k_link_hash_entry: got_entry_key, + glist): New fields. + (struct elf_m68k_got_entry_key, struct elf_m68k_got_entry, + struct elf_m68k_got, struct elf_m68k_bfd2got_entry, + struct elf_m68k_multi_got): New data structures. + (struct elf_m68k_link_hash_table: local_gp_p, use_neg_got_offsets_p, + allow_multigot_p, multi_got_): New fields. + (elf_m68k_multi_got): New macro. + (elf_m68k_link_hash_newfunc): Initialize new fields of + struct elf_m68k_link_hash_entry. + (elf_m68k_link_hash_table_create): Initialize new fields of + struct elf_m68k_link_hash_table. + (elf_m68k_link_hash_table_free): New static function implementing hook. + (elf_m68k_init_got, elf_m68k_clear_got, elf_m68k_create_empty_got): New + static functions for struct elf_m68k_got. + (elf_m68k_init_got_entry_key, elf_m68k_got_entry_hash, + elf_m68k_got_entry_eq): New static functions for + struct elf_m68k_got_entry. + (ELF_M68K_REL_8O_MAX_N_ENTRIES_IN_GOT, + ELF_M68K_REL_8O_16O_MAX_N_ENTRIES_IN_GOT): New macros. + (enum elf_m68k_get_entry_howto): New enum. + (elf_m68k_get_got_entry, elf_m68k_update_got_entry_type, + elf_m68k_remove_got_entry_type): New static functions for + struct elf_m68k_got_entry. + (elf_m68k_add_entry_to_got): New static function. + (elf_m68k_bfd2got_entry_hash, elf_m68k_bfd2got_entry_eq, + elf_m68k_bfd2got_entry_del, elf_m68k_get_bfd2got_entry): New static + functions for struct elf_m68k_bfd2got_entry. + (struct elf_m68k_can_merge_gots_arg, elf_m68k_can_merge_gots_1, + elf_m68k_can_merge_gots): New traversal. + (struct elf_m68k_merge_gots_arg, elf_m68k_merge_gots_1, + elf_m68k_merge_gots): Ditto. + (struct elf_m68k_finalize_got_offsets_arg, + elf_m68k_finalize_got_offsets_1, elf_m68k_finalize_got_offsets): Ditto. + (struct elf_m68k_partition_multi_got_arg, + elf_m68k_partition_multi_got_1, elf_m68k_init_symndx2h_1, + elf_m68k_partition_multi_got): Ditto. + (elf_m68k_find_got_entry_ptr, elf_m68k_remove_got_entry): New static + functions. + (elf_m68k_copy_indirect_symbol): New static function implementing + a hook. + (elf_m68k_check_relocs): Update to add entries to multi-GOT. + (elf_m68k_gc_sweep_hook): Update to remove entries from multi-GOT. + (elf_m68k_always_size_sections): Assign BFDs to GOTs. + (elf_m68k_relocate_section): Update to properly handle GOT relocations. + (elf_m68k_finish_dynamic_symbol): Update to traverse all GOT entries + of a global symbol. + (bfd_elf_m68k_set_target_options): New function. + (bfd_elf32_bfd_link_hash_table_free): Define hook. + (bfd_elf32_bfd_final_link): Change expansion to bfd_elf_final_link + to skip generic calculation of GOT offsets. + (elf_backend_copy_indirect_symbol): Define hook. + * bfd-in.h (bfd_elf_m68k_set_target_options): Declare function. + * bfd-in2.h: Regenerate. + +2008-05-21 André Johansen + + PR 868 + * dwarf2.c (_bfd_dwarf2_cleanup_debug_info): Free memory allocated + for filenames in function tables and variable tables. + +2008-05-19 Alan Modra + + PR 2995, PR 6473 + * elf.c (_bfd_elf_make_section_from_shdr): Leave lma equal to + vma when all p_paddr fields are zero and there is more than + one PT_LOAD header. + +2008-05-15 Christophe Lyon + + Add long call support for ARM. + * elf32-arm.c (THM2_MAX_FWD_BRANCH_OFFSET): Define. + (THM2_MAX_BWD_BRANCH_OFFSET): Define. + (ARM_MAX_FWD_BRANCH_OFFSET): Define. + (ARM_MAX_BWD_BRANCH_OFFSET): Define. + (THM_MAX_FWD_BRANCH_OFFSET): Define. + (THM_MAX_BWD_BRANCH_OFFSET): Define. + (arm_long_branch_stub): Define. + (arm_pic_long_branch_stub): Define. + (arm_thumb_v4t_long_branch_stub): Define. + (arm_thumb_thumb_long_branch_stub): Define. + (arm_thumb_arm_v4t_long_branch_stub): Define. + (STUB_SUFFIX): Define. + (elf32_arm_stub_type): Define. + (elf32_arm_stub_hash_entry): Define. + (elf32_arm_link_hash_entry): Add stub_cache field. + (arm_stub_hash_lookup): Define. + (elf32_arm_link_hash_table): Add stub_hash_table, stub_bfd, + add_stub_section, layout_sections_again, stub_group, bfd_count, + top_index, input_list fields. + (elf32_arm_link_hash_newfunc): Init new field. + (stub_hash_newfunc): New function. + (elf32_arm_link_hash_table_create): Init stub_hash_table. + (elf32_arm_hash_table_free): New function. + (arm_type_of_stub): New function. + (elf32_arm_stub_name): New function. + (elf32_arm_get_stub_entry): New function. + (elf32_arm_stub_add_mapping_symbol): New function. + (elf32_arm_add_stub): New function. + (arm_build_one_stub): New function. + (arm_size_one_stub): New function. + (elf32_arm_setup_section_lists): New function. + (elf32_arm_next_input_section): New function. + (group_sections): New function. + (elf32_arm_size_stubs): New function. + (elf32_arm_build_stubs): New function. + (bfd_elf32_arm_add_glue_sections_to_bfd): Skip stub sections. + (bfd_elf32_arm_process_before_allocation): No longer handle + R_ARM_CALL and R_ARM_THM_CALL. + (using_thumb_only): New function. + (elf32_arm_final_link_relocate): Redirect calls to stub if range + exceeds encoding capabilities. + (bfd_elf32_bfd_link_hash_table_free): Define. + * bfd-in.h (R_ARM_max): Fix value to 130. + (elf32_arm_setup_section_lists): Protype. + (elf32_arm_next_input_section): Protype. + (elf32_arm_size_stubs): Protype. + (elf32_arm_build_stubs): Protype. + * bfd-in2.h: Regenerate. + +2008-05-14 Ulrich Weigand + + * elf32-ppc.c (ppc_elf_get_synthetic_symtab): Fix memset calls. + * elf64-ppc.c (ppc64_elf_get_synthetic_symtab): Likewise. + +2008-05-14 Alan Modra + + * Makefile.am: Run "make dep-am". + * Makefile.in: Regenerate. + +2008-05-14 Ulrich Weigand + Alan Modra + + * elf32-ppc.c (section_covers_vma): New function. + (ppc_elf_get_synthetic_symtab): New function. + (bfd_elf32_get_synthetic_symtab): Define. + * elf64-ppc.c (section_covers_vma): New function. + (ppc64_elf_get_synthetic_symtab): Generate sym@plt on glink branch + table entries, and __glink_PLTresolve on resolver stub. + (ppc64_elf_build_stubs): Rename __glink sym to __glink_PLTresolve. + +2008-05-12 Alan Modra + + PR 6443 + * elf32-ppc.c (MUST_BE_DYN_RELOC): Delete. + (must_be_dyn_reloc): New function. + (ppc_elf_check_relocs): Don't set DF_STATIC_TLS for tprel relocs + in pies. + (ppc_elf_tls_optimize): Optimise pies. + (ppc_elf_relocate_section): Use a section symbol rather than no + symbol if possible for LD->IE TLS sequence, but don't error if + we must use no symbol. + * elf64-ppc.c (MUST_BE_DYN_RELOC): As for elf32-ppc.c. + (must_be_dyn_reloc): Likewise. + (ppc64_elf_check_relocs): Likewise. + (ppc64_elf_tls_optimize): Likewise. + (ppc64_elf_relocate_section): Likewise. + +2008-05-12 Alan Modra + + * elf32-spu.c (spu_elf_relocate_section): Rename is_ea to is_ea_sym. + +2008-05-10 Paul Pluzhnikov + + * elfcore.h (elf_core_file_p): Warn about core truncation. + +2008-05-07 Bob Wilson + + * elf32-xtensa.c (xtensa_property_section_name): New. + (xtensa_make_property_section): New. + (xtensa_get_property_section): Make static. Do not create a new + section if it does not exist. + +2008-05-08 Alan Modra + + * elf32-spu.c (spu_elf_special_sections): Add "._ea". + (spu_elf_relocate_section): Handle relocations against symbols + defined in ._ea specially. + +2008-05-03 Daniel Jacobowitz + + * elf32-arm.c (elf32_arm_symbian_link_hash_table_create): Use + ARRAY_SIZE. + (elf32_arm_symbian_plt_sym_val): New. + (elf_backend_plt_sym_val): Define. + +2008-05-03 Alan Modra + + PR 2995, PR 6473 + * elf.c (rewrite_elf_program_header): Rather than clearing + p_paddr_valid at end, don't set it in the first place. Delete + comment no longer relevant. When not p_paddr_valid, don't set + paddr from vaddr, and don't set p_vaddr_offset. + +2008-05-01 Cary Coutant + + * elf.c (bfd_elf_get_str_section): Fix memory leak caused by + corrupt string table. + +2008-05-01 Joel Brobecker + + * cache.c (cache_bread_1): Renames cache_bread. + (cache_bread): New function. + +2008-05-01 Alan Modra + + PR 2995, PR 6473 + * elf.c (_bfd_elf_make_section_from_shdr): Always set lma from p_paddr. + (assign_file_positions_for_load_sections): Combine nested "if". + (copy_elf_program_header): Don't set p_paddr_valid or p_vaddr_offset + when all header p_paddr fields are zero. + +2008-04-30 Edmar Wienskoski + + * cpu-powerpc.c (bfd_powerpc_archs): Add e500mc entry. + +2008-04-29 Daniel Jacobowitz + + * elf.c (_bfd_elf_get_dynamic_reloc_upper_bound) + (_bfd_elf_canonicalize_dynamic_reloc): Find dynamic relocations + even if they are not loaded. + * elflink.c (_bfd_elf_init_2_index_sections): Set data_index_section + first. + +2008-04-25 Jay Foad + + * reloc16.c (bfd_coff_reloc16_get_value): Add support for + undefined weak symbols. + +2008-04-25 Nick Clifton + + * po/vi.po: Updated Vietnamese translation. + +2008-04-23 Paolo Bonzini + + * aclocal.m4: Regenerate. + * configure: Regenerate. + +2008-04-21 Cary Coutant + + * archive.c (_bfd_write_archive_contents): Fix incorrect use of + ARFMAG. + +2008-04-21 Nathan Sidwell + + * elfxx-mips.c (_bfd_mips_vxworks_adjust_dynamic_symbol): Don't + set the value of undefined symbols in shared objects. + (_bfd_mips_vxworks_finish_dynamic_symbol): Clear value for + undefined symbols unless pointer equality is needed. + +2008-04-18 Dennis Roberts + + * aix5ppc-core.c: Define macros for the default architecture and + machine for matching core files. + (xcoff64_core_p): Set the architecture and machine to the default + values defined in the macros mentioned above. + * rs6000-core.c: Define macros to determine whether or not the + core file header uses the core_dumpxx header format. + (rs6000coff_core_p): Don't match core files that use the + core_dumpxx header format. + +2008-04-16 Pedro Alves + + * config.bfd (i[3-7]86-*-dicos*, x86_64-*-dicos*): Add. + +2008-04-16 David S. Miller + + * reloc.c (BFD_RELOC_SPARC_GOTDATA_HIX22, + BFD_RELOC_SPARC_GOTDATA_LOX10, BFD_RELOC_SPARC_GOTDATA_OP_HIX22, + BFD_RELOC_SPARC_GOTDATA_OP_LOX10, BFD_RELOC_SPARC_GOTDATA_OP): New. + * libbfd.h: Regnerate. + * bfd-in2.h: Regenerate. + * elfxx-sparc.c (_bfd_sparc_elf_howto_table): Add entries for + GOTDATA relocations. + (sparc_reloc_map): Likewise. + (_bfd_sparc_elf_check_relocs): Handle R_SPARC_GOTDATA_* like + R_SPARC_GOT*. + (_bfd_sparc_elf_gc_sweep_hook): Likewise. + (_bfd_sparc_elf_relocate_section): Transform R_SPARC_GOTDATA_HIX22, + R_SPARC_GOTDATA_LOX10, R_SPARC_GOTDATA_OP_HIX22, and + R_SPARC_GOTDATA_OP_LOX10 into the equivalent R_SPARC_GOT* reloc. + Simply ignore R_SPARC_GOTDATA_OP relocations. + +2008-04-14 Aurelien Jarno + + * configure.in: Link with the PIC version of libiberty on + Linux/MIPS hosts. + * configure: Regenerate. + +2008-04-14 Edmar Wienskoski + + * archures.c: Add bfd_mach_ppc_e500mc. + * bfd-in2.h: Regenerate. + +2008-04-08 Alan Modra + + * elf32-spu.c (spu_elf_build_stubs): Correct error message. + (mark_functions_via_relocs): Remove premature init of symtab_hdr. + (collect_overlays): Commment typo fix. + +2008-04-08 Kees Cook + + * elflink.c (bfd_elf_size_dynamic_sections): Ignore GNU-stack note + in EXEC_P bfds. + +2008-04-08 Alan Modra + + * elf32-spu.c: Include libiberty.h. + (struct spu_link_hash_table): Add local_stire, overlay_fixed, reserved, + non_ovly_stub, spu_elf_load_ovl_mgr, spu_elf_open_overlay_script, + spu_elf_relink, auto_overlay fields. + (AUTO_OVERLAY, AUTO_RELINK, OVERLAY_RODATA): Define. + (needs_ovl_stub): Flip test so that call to non-function warning + is emitted during relocate_section rather than earlier. + (spu_elf_check_vma): Stash --auto-overlay parameters, and clear + auto_overlay if no section exceeds local store. + (struct call_info): Add count, max_depth, is_pasted fields. + (struct function_info): Add rodata, last_caller, call_count, + depth, new visit flags. + (insert_callee): Increment call count. + (copy_callee): New function. + (mark_functions_via_relocs): Investigate all reloc types to count + possible function pointer stubs for --auto-overlay. Track + last_caller and increment function call_count. + (pasted_function): Insert a "call" into call info for pasted section. + (remove_cycles): Track max depth of calls. Don't emit call graph + pruning warning for --auto-overlay. + (build_call_tree): Don't transfer_calls for --auto-overlay. + Adjust remove_cycles call. + (sort_calls, sort_lib, sort_bfds): New functions. + (struct _mos_param, struct _uos_param, struct _cl_param): New. + (mark_overlay_section, unmark_overlay_section): New functions. + (collect_lib_sectios, auto_ovl_lib_functions): New functions. + (collect_overlays, find_pasted_call): New functions. + (sum_stack): Deal with is_pasted "calls". Exit before printing + when --auto-overlay. + (spu_elf_auto_overlay): New function. + (spu_elf_final_link): Call spu_elf_auto_overlay. + * elf32-spu.h (spu_elf_check_vma): Update prototype. + 2008-04-07 Alan Modra * elf32-spu.c (allocate_spuear_stubs): Ensure _SPUEAR_ symbol