X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=bfd%2FChangeLog;h=1a895929772bf6df03e675a021e78f6fd731c6ff;hb=36e4dce69dd23bea9ea2258dea35f034b6d6351c;hp=e45d9124eda88a19f45e68149b64d964b0f1e4c8;hpb=37107878d339e17ccaae961b7ac24d982e9d56a9;p=deliverable%2Fbinutils-gdb.git diff --git a/bfd/ChangeLog b/bfd/ChangeLog index e45d9124ed..1a89592977 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,983 @@ +2009-03-11 Chris Demetriou + + * bfd.c (BFD_DETERMINISTIC_OUTPUT): New flag. + * bfd-in2.h: Regenerate. + * archive.c (bfd_ar_hdr_from_filesystem): If BFD_DETERMINISTIC_OUTPUT + flag is set, use 0 for uid, gid, and timestamp, and use 0644 for file + mode. + (bsd_write_armap): Likewise. + (_bfd_archive_bsd_update_armap_timestamp): If BFD_DETERMINISTIC_OUTPUT + flag is set, do nothing. + (coff_write_armap): If BFD_DETERMINISTIC_OUTPUT flag is set, use 0 + for timestamp. + +2009-03-11 Ulrich Weigand + + * elf32-spu.c (find_function_stack_adjust): Handle sf instruction + used to update stack pointer. + +2009-03-07 John David Anglin + + PR binutils/9921 + * som.c (som_bfd_derive_misc_symbol_info): Set symbol type ST_ABSOLUTE + for unknown symbols in absolute section. + +2009-03-06 Nick Clifton + + * po/es.po: Updated Spanish translation. + +2009-03-05 Christophe Lyon + + * elf32-arm.c (group_sections): Take next section size into + account before accepting to group it. + +2009-03-05 Christophe Lyon + + * elf32-arm.c (arm_type_of_stub): Handle long branches targetting + PLT entries. + (elf32_arm_final_link_relocate): Likewise. + +2009-03-05 Moritz Kroll + + PR 9923 + * peXXigen.c (_bfd_XXi_final_link_postscript): Check h->root.type. + +2009-03-04 Alan Modra + + * reloc.c (BFD_RELOC_PPC_TLSGD, BFD_RELOC_PPC_TLSLD): New. + * section.c (struct bfd_section): Add has_tls_get_addr_call. + (BFD_FAKE_SECTION): Init new flag. + * ecoff.c (bfd_debug_section): Likewise. + * bfd-in2.h: Regenerate. + * libbfd.h: Regenerate. + * elf32-ppc.c (ppc_elf_howto_raw): Add R_PPC_TLSGD and R_PPC_TLSLD. + (ppc_elf_reloc_type_lookup): Handle new relocs. + (ppc_elf_check_relocs): Set has_tls_get_addr_call on finding such + without marker relocs. + (ppc_elf_tls_optimize): Allow out-of-order __tls_get_addr relocs + if section has no old-style calls. + (ppc_elf_relocate_section): Set tls_mask for non-tls relocs too. + Don't try to optimize new-style __tls_get_addr call when handling + arg setup relocs. Instead do so for R_PPC_TLSGD and R_PPC_TLSLD + relocs. + * elf64-ppc.c (ppc64_elf_howto_raw): Add R_PPC64_TLSGD, R_PPC64_TLSLD. + (ppc64_elf_reloc_type_lookup): Handle new relocs. + (ppc64_elf_check_relocs): Set has_tls_get_addr_call on finding such + without marker relocs. + (ppc64_elf_tls_optimize): Allow out-of-order __tls_get_addr relocs + if section has no old-style calls. Set toc_ref for new relocs as + appropriate. + (ppc64_elf_relocate_section): Set tls_mask for non-tls relocs too. + Don't try to optimize new-style __tls_get_addr call when handling + arg setup relocs. Instead do so for R_PPC_TLSGD and R_PPC_TLSLD + relocs. + +2009-03-04 Alan Modra + + PR 6768 + * configure.in: Test for ld --as-needed support. Link shared + libbfd against libm. + * configure: Regenerate. + +2009-03-03 Alan Modra + + * Makefile.am: Run "make dep-am". + * Makefile.in: Regenerate. + +2009-03-02 Qinwei + + * elf32-score7.c: New file. + * elf32-score.h: New file. + * elf32-score.c: Add code to support score 7. Set score7 as the + default. + * cpu-score.c: Add score7 architecure. + (compatibile): New function. + * Makefile.am: Add rules for building elf32-score7 object. + * Makefile.in: Regenerate. + * configure.in: Add elf32-score7 object to score vectors. + * configure: Regenerate. + * reloc.c: Add score7 relocs. + * archures.c: Add score3 and score7 machine numbers. + * bfd-in2.h: Regenerate. + * libbfd.h: Regenerate. + +2009-03-01 Ralf Wildenhues + + * configure: Regenerate. + +2009-03-01 John David Anglin + + * elf32-hppa.c (hppa32_elf_local_refcounts): New function. + (elf32_hppa_check_relocs): Use it. + + * elf_hppa_add_symbol_hook (elf_hppa_add_symbol_hook): Move to + elf64-hppa.c. + (elf_hppa_unmark_useless_dynamic_symbols): Likewise. + (elf_hppa_remark_useless_dynamic_symbols): Likewise. + (elf_hppa_is_dynamic_loader_symbol): Likewise. + (elf_hppa_record_segment_addrs): Likewise. + (elf_hppa_final_link): Likewise. + (elf_hppa_relocate_insn): Likewise. + (elf_hppa_final_link_relocate): Likewise. + (elf64_hppa_relocate_section): Likewise. + * elf64-hppa.c: Insert above. + +2009-02-28 John David Anglin + + * elf-hppa.h (elf_hppa_final_link): Use elf_hppa_final_link. + (elf_hppa_final_link_relocate ): Rewrite eliminating dynamic hash table. + (elf_hppa_relocate_section): Likewise. + * elf64-hppa.c (struct elf64_hppa_link_hash_entry): Change to derive + from struct elf_link_hash_entry. Add count field. + (struct elf64_hppa_dyn_hash_table): Delete. + (struct elf64_hppa_link_hash_table): Delete dyn_hash_table field. + (elf64_hppa_hash_table): Rename to hppa_link_hash_table. + (hppa_elf_hash_entry, eh_name): Define. + (elf64_hppa_new_dyn_hash_entry): Delete. + (elf64_hppa_dyn_hash_lookup): Delete. + (elf64_hppa_dyn_hash_traverse): Delete. + (get_dyn_name): Delete. + (elf64_hppa_finalize_opd): Use struct elf_link_hash_entry * instead + of struct elf64_hppa_dyn_hash_entry *. + (elf64_hppa_finalize_dlt, llocate_global_data_dlt, + allocate_global_data_plt, allocate_global_data_stub, + allocate_global_data_opd, count_dyn_reloc, allocate_dynrel_entries): + Likewise. + (hppa64_link_hash_newfunc): New. + (elf64_hppa_hash_table_create): Rework. + (count_dyn_reloc): Likewise. + (hppa64_elf_local_refcounts): New. + (elf64_hppa_check_relocs): Rework using standard technique for recording + local DLT, PLT and OPD reference counts. + (elf64_hppa_dynamic_symbol_p): Revise using "eh" for struct + elf_link_hash_entry *. + (elf64_hppa_mark_exported_functions, allocate_global_data_dlt, + allocate_global_data_plt, allocate_global_data_stub, + allocate_global_data_opd, allocate_dynrel_entries, + elf64_hppa_adjust_dynamic_symbol, + elf64_hppa_mark_milli_and_exported_functions): Likewise. + (elf64_hppa_create_dynamic_sections, elf64_hppa_size_dynamic_sections): + Use hppa_link_hash_table. Rework. + (elf64_hppa_link_output_symbol_hook): Rework. + (elf64_hppa_finish_dynamic_symbol, elf64_hppa_finalize_opd, + elf64_hppa_finalize_dlt, elf64_hppa_finalize_dynreloc, + elf64_hppa_finish_dynamic_sections): Likewise. + +2009-02-26 Christophe Lyon + + * elf32-arm.c (stub_reloc_type): Removed. + (insn_sequence): Renamed reloc_type field to r_type. + (elf32_arm_stub_long_branch_v4t_arm_thumb_pic): New stub. + (elf32_arm_stub_long_branch_v4t_thumb_arm_pic): Likewise. + (elf32_arm_stub_long_branch_thumb_only_pic): Likewise. + (elf32_arm_stub_type): Add new enum entries for the new stubs. + (arm_stub_is_thumb): Catch new stubs. + (arm_type_of_stub): Handle new stubs. + (arm_size_one_stub): Use ARRAY_SIZE. Handle new stubs. + (bfd_elf32_arm_process_before_allocation): Remove useless + condition. + +2009-02-25 H.J. Lu + + * elf.c (elf_find_function): Use is_function_type to check + function symbol. + +2009-02-24 Sterling Augustine + + * xtensa-modules.c: Revert to previous version 1.11 due + to inadvertant commit. + +2009-02-24 Sterling Augustine + + * elf32-xtensa.c (text_action_add): Separate test for action + type. Break if saved action is ta_widen_insn at same offset. + +2009-02-24 Daniel Jacobowitz + + * elf32-arm.c (elf32_arm_stub_long_branch_any_any_pic): Rename + to elf32_arm_stub_long_branch_any_arm_pic. + (elf32_arm_stub_long_branch_any_thumb_pic): New. + (enum elf32_arm_stub_type, arm_type_of_stub) + (arm_size_one_stub): Handle any to ARM PIC and any to Thumb PIC + separately. + +2009-02-24 Joseph Myers + + * elf32-arm.c (PREV_SEC): Update comment. + (group_sections): Rename argument to stubs_always_after_branch. + Reverse the list and place stubs at the end of input sections. + Undefine NEXT_SEC. + (elf32_arm_size_stubs): Update to use stubs_always_after_branch. + +2009-02-23 Daniel Jacobowitz + + * elf32-arm.c (arm_build_one_stub): Initialize stub_reloc_offset. + Fix formatting. + (arm_size_one_stub): Remove unnecessary break. + (arm_map_one_stub): Fix formatting. Return after BFD_FAIL. + +2009-02-23 Christophe Lyon + + * elf32-arm.c (stub_insn_type): New type. + (stub_reloc_type): Likewise. + (insn_sequence): Likewise. + (elf32_arm_stub_long_branch_any_any): Encode using insn_sequence. + (elf32_arm_stub_long_branch_v4t_arm_thumb): Likewise. + (elf32_arm_stub_long_branch_thumb_only): Likewise. + (elf32_arm_stub_long_branch_v4t_thumb_arm): Likewise. + (elf32_arm_stub_short_branch_v4t_thumb_arm): Likewise. + (elf32_arm_stub_long_branch_any_any_pic): Likewise. + (elf32_arm_stub_hash_entry): Add new helper fields. + (stub_hash_newfunc): Initialize these new fields. + (arm_build_one_stub): Encode Arm and Thumb instructions separately + to take endianness into account. + (arm_size_one_stub): Compute size of stubs using insn_sequence. + (arm_map_one_stub): Code is now more generic, thanks to + insn_sequence. + +2009-02-23 Christophe Lyon + + * elf32-arm.c (elf32_arm_stub_long_branch_thumb_only): Fix stub + code. + (elf32_arm_stub_long_branch_v4t_thumb_arm): Likewise. + (arm_type_of_stub): Use Thumb-only long branch stub (non-PIC) when + BLX is not available. Fix typo in warning message. Add comments + and improve formatting. + (arm_build_one_stub): Adjust to new + elf32_arm_stub_long_branch_v4t_thumb_arm stub. + (arm_map_one_stub): Likewise. + +2009-02-23 Tristan Gingold + Eric Botcazou + Douglas B Rupp + + * vms.h: Update copyright year, fix comments, reorder declarations. + (_bfd_save_vms_section): Remove the prototype. + (EGPS_S_V_NO_SHIFT): New constant. + (bfd_vms_set_section_flags): New prototype. + (EGPS_S_B_ALIGN, EGPS_S_W_FLAGS, EGPS_S_L_ALLOC, EGPS_S_B_NAMLNG): New + constants. + (EGSY_S_W_FLAGS): Ditto. + (EGSY_S_V_QUAD_VAL): Ditto. + (ESDF_S_L_VALUE, ESDF_S_L_PSINDX, ESDF_S_B_NAMLNG): Ditto. + (EGST_S_W_FLAGS, EGST_S_Q_LP_1, EGST_S_Q_LP_2, EGST_S_L_PSINDX, + EGST_S_B_NAMLNG): Ditto. + (ESRF_S_B_NAMLNG): Ditto. + (ETIR_S_C_HEADER_SIZE): Ditto. + (EGPS_S_V_ALLOC_64BIT): Ditto. + (DST_S_C_EPILOG): Ditto. + (DST_S_C_SRC_SETLNUM_L, DST_S_C_SRC_SETLNUM_W) : Ditto. + (DST_S_C_SRC_INCRLNUM_B): Ditto. + (DST_S_B_PCLINE_UNSBYTE, DST_S_W_PCLINE_UNSWORD): Ditto. + (DST_S_L_PCLINE_UNSLONG): Ditto. + (DST_S_B_MODBEG_NAME, DST_S_L_RTNBEG_ADDRESS) : Ditto + (DST_S_B_RTNBEG_NAME, DST_S_L_RTNEND_SIZE): Ditto + (DST_S_C_SOURCE_HEADER_SIZE): Ditto. + (DST_S_B_SRC_DF_LENGTH, DST_S_W_SRC_DF_FILEID): Ditto. + (DST_S_B_SRC_DF_FILENAME, DST_S_B_SRC_UNSBYTE): Ditto. + (DST_S_B_SRC_UNSBYTE): Ditto. + (DST_S_W_SRC_UNSWORD, DST_S_L_SRC_UNSLONG): Ditto. + Add prototypes. + (vms_section, vms_reloc): Remove types. + (hdr_struc): Replaced by ... + (hdr_struct): ... new type. + (EMH_S_W_HDRTYP, EMH_S_B_STRLVL, EMH_S_L_ARCH1): New constants. + (EMH_S_L_ARCH2, EMH_S_L_RECSIZ, EMH_S_B_NAMLNG): Ditto. + (EMH_DATE_LENGTH): Ditto. + (eom_struc): Replaced by ... + (eom_struct): ... new type. + (EEOM_S_L_TOTAL_LPS, EEOM_S_W_COMCOD, EEOM_S_B_TFRFLG): New constants. + (EEOM_S_L_PSINDX, EEOM_S_L_TFRADR): Ditto. + (EIHD_S_K_MAJORID, EIHD_S_K_MINORID, EIHD_S_K_EXE): Ditto. + (EIHD_S_L_SIZE, EIHD_S_L_ISDOFF, EIHD_S_L_SYMDBGOFF): Ditto. + (EIHD_S_Q_SYMVVA, EIHD_S_L_IMGTYPE): Ditto. + (EISD_S_L_EISDSIZE, EISD_S_L_SECSIZE, EISD_S_Q_VIR_ADDR): Ditto. + (EISD_S_L_FLAGS, EISD_S_L_VBN, EISD_S_R_CONTROL): Ditto. + (EISD_S_L_IDENT, EISD_S_T_GBLNAM): Ditto. + (EISD_S_M_GBL, EISD_S_M_CRF, EISD_S_M_DZRO, EISD_S_M_WRT): Ditto. + (EISD_S_M_INITALCODE, EISD_S_M_BASED, EISD_S_M_FIXUPVEC): Ditto. + (EISD_S_M_RESIDENT, EISD_S_M_VECTOR, EISD_S_M_PROTECT): Ditto. + (EISD_S_M_LASTCLU, EISD_S_M_EXE, EISD_S_M_NONSHRADR): Ditto. + (EISD_S_M_QUAD_LENGTH, EISD_S_M_ALLOC_64BIT): Ditto. + (EIHS_S_L_DSTVBN, EIHS_S_L_DSTSIZE, EIHS_S_L_GSTVBN): Ditto. + (EIHS_S_L_GSTSIZE, EIHS_S_L_DMTVBN, EIHS_S_L_DMTBYTES): Ditto. + (DBG_S_L_DMT_MODBEG, DBG_S_L_DST_SIZE): Ditto. + (DBG_S_W_DMT_PSECT_COUNT, DBG_S_C_DMT_HEADER_SIZE): Ditto. + (DBG_S_L_DMT_PSECT_START, DBG_S_L_DMT_PSECT_LENGTH) + (DBG_S_C_DMT_PSECT_SIZE): Ditto. + (enum file_type_enum): New type. + (struct location_struct): Removed. + (struct fileinfo, struct srecinfo, struct lineinfo): New types. + (struct funcinfo, struct module): Ditto. + (struct vms_private_data_struct): Update fields. + (struct vms_section_data_struct): New type. + + * vms.c: Update copyright year, fix comments, + Fix includes for DECC, add prototypes. + (vms_initialize): Use bfd_alloc instead of bfd_zalloc and remove + some initializers. + Use flavour to set is_vax, location_stack is removed. + (struct pair): Declare. + (fill_section_ptr): Initialize variables at declaration. + Add guard to set SECTION_SYM flag, handlde und section. + (vms_fixup_sections): Use struct pair for fill_section_ptr argument. + (_bfd_vms_slurp_object_records): New function, replaces previous + vms_object_p. + (vms_slurp_module): New function. + (vms_slurp_image): Ditto. + (vms_object_p): Complete rewrite. + (vms_mkobject): Use is_vax field to slect architecture. + (free_reloc_stream): New function. + (vms_convert_to_var): Ditto. + (vms_convert_to_var_1): Ditto. + (vms_convert_to_var_unix_filename): Ditto. + (vms_close_and_cleanup): Call free_reloc_stream, convert file to + VAR format on VMS. + (vms_new_section_hook): Set alignment to 0, allocate private data. + (vms_get_section_contents): Load content. + (vms_get_symbol_info): Handle undefined section. + (vms_find_nearest_line): Handle. + (alloc_reloc_stream): New function. + (vms_slurp_reloc_table): Ditto. + (vms_get_reloc_upper_bound): Make it real. + (vms_canonicalize_reloc): Do the real work. + (alpha_howto_table): Add ALPHA_R_NOP, ALPHA_R_BSR, ALPHA_R_LDA, + ALPHA_R_BOH. + (vms_bfd_reloc_type_lookup): Handle NOP, BSR, LDA and BOH. + (vms_set_arch_mach): Check arch. + (vms_set_section_contents): Copy the content after allocation. + (vms_alpha_vec): Update object flags. + + * vms-tir.c: Update copyright year, fix comments, + add prototypes for new functions. + (dst_define_location): New function. + (dst_restore_location): New function. + (dst_retrieve_location): New function. + (dst_check_allocation): New function. + (image_dump): Call dst_check_allocation. + (image_write_b): Ditto. + (image_write_w): Ditto. + (image_write_l): Ditto. + (image_write_q): Ditto. + (cmd_name): Handle STA_LW, STA_QW, STO_OFF, STO_IMM, STO_IMMR, STO_LW, + STO_QW, OPR_ADD, CTL_SETRB, STC_LP_PSB, CTL_DFLOC, CTL_STLOC, + CTL_STKDL. + Call error handler instead of abort if name is not known. + (etir_sta): Add quarter_relocs argument and set it. + Fix cast. + (etir_sto): Ditto. + (etir_opr): Ditto, return FALSE in case of error. + (etir_ctl): Add quarter_relocs argument and set it, fix cast. + Fix CTL_DFLOC, CTL_STLOC, CTL_STKDL. + (etir_stc): Add quarter_relocs argument and set it, fix cast. + Fix STC_LP, STC_LP_PSB, STC_GBL and STC_CGA. + Handle STC_LP_PSB, STC_BSR_GBL, STC_LDA_GBL, STC_BOH_GBL. + Move STC_NOP_PS, STC_BSR_PS, STC_LDA_PS, STC_BOH_PS, STC_NBH_PS. + Return FALSE in case of error. + (tir_sta): Change sign of psect. + (tir_ctl): Ditto. + (tir_cmd): Fix cast. Makes tir_table static const. + (etir_cmd): Add quarter_relocs argument, makes etir_table const, + add argument to explain. + (analyze_etir): Initialize maxptr, add quarter_relocs + declaration, move some declarations into inner scopes. + Handle quarter_relocs and STO_IMM. + (_bfd_vms_slurp_tir): Use constant instead of hard-coded values. + (_bfd_vms_slurp_relocs): New function. + (_bfd_vms_decode_relocs): New function. + (sto_imm): Rewritten. + (start_first_etbt_record): New function. + (start_another_etbt_record): Ditto. + (etir_output_check): Ditto. + (defer_reloc_p): Ditto. + (_bfd_vms_write_tir): Remove nextoffset, convert a while-loop to + a for-loop. Correctly deals with contents, deals with .vmsdebug, + rewritte relocations handling. + (_bfd_vms_write_tbt): Removed. + (_bfd_vms_write_dbg): Ditto. + + * vms-misc.c: Update copyright year, Fix comments. + (_bfd_vms_get_header_values): Use 'size' instead of 'length'. + (maybe_adjust_record_pointer_for_object): New function. + (_bfd_vms_get_first_record): New function, replaces ... + (_bfd_vms_get_record): .. removed. + (_bfd_vms_get_object_record): New function. + (_bfd_vms_get_object_record): New function. + (vms_get_remaining_object_record): New function, replaces ... + (_bfd_vms_get_next_record): ... removed. + (add_new_contents): Removed. + (_bfd_save_vms_section): Removed. + (_bfd_get_vms_section): Removed. + (_bfd_vms_output_flush): Write in VAR format. + (new_symbol): Don't make UND section. + + * vms-hdr.c: Update copyright year, update list of record handled. + (_bfd_vms_slurp_hdr): rec_length renamed to rec_size. + (_bfd_vms_write_hdr): Strip vms and unix patches, + add comments, truncate module name at 31 characters, + use constants instead of hard-coded value, + write BFD version instead of a fixed string. + (_bfd_vms_slurp_ihd): New function. + (_bfd_vms_slurp_isd): Ditto. + (_bfd_vms_slurp_ihs): Ditto. + (new_module): Ditto. + (parse_module): Ditto + (build_module_list): Ditto. + (module_find_nearest_line): Ditto. + (_bfd_vms_find_nearest_dst_line): Ditto. + (vms_slurp_debug): Ditto. + (_bfd_vms_slurp_dbg): Ditto. + (_bfd_vms_slurp_tbt): Ditto. + (_bfd_vms_write_dbg): Ditto. + (_bfd_vms_write_tbt): Ditto. + + * vms-gsd.c: Update copyright year, update list of records handled. + (EVAX_LITERALS_NAME): New macro. + (evax_section_flags): Add an entry for EVAX_LITERALS_NAME. + (gpsflagdesc, gsyflagdesc): Moved out of _bfd_vms_slurp_gsd. + (register_universal_symbol): New function and prototype. + (_bfd_vms_slurp_gsd): Fix indentations and casts, + improve debug messages, + use constants instead of hard-coded value, + fix missing endianness conversion, + handle global symbol (SYMG). + (bfd_vms_set_section_flags): New function. + (_bfd_vms_write_gsd): Don't write .vmsdebug section, + handle section literals, + fix indentation, + handle section bfd and vms flags, + don't output LIB$INITIALIZE symbol, + fix handling of weak symbols, + fix evax vs vax procedure descriptor, + handle absolute symbols. + + * reloc.c (BFD_RELOC_ALPHA_NOP, BFD_RELOC_ALPHA_BSR, + BFD_RELOC_ALPHA_LDA, BFD_RELOC_ALPHA_BOH): New relocations. + + * makefile.vms (DEFS): Fix flags for VMS. + + * bfdio.c (real_fopen): Handle multiple VMS fopen attributes. + + * bfd-in2.h: Regenerated. + * libbfd.h: Regenerated. + +2009-02-20 Cary Coutant + + * vmsutil.c (vms_file_stats_name): Fix incorrect use of st_mtime + in struct stat. + +2009-18-02 Dave Korn + + PR gas/7059 + * coffcode.h (coff_write_object_contents): Don't let the string + table offset overflow the s_name field when using long section names. + +2009-18-02 Dave Korn + + * coff-alpha.c (alpha_ecoff_backend_data): Initialise fields which + control long section name handling with ECOFF_NO_LONG_SECTION_NAMES. + * coff-mips.c (mips_ecoff_backend_data): Likewise. + * coff-rs6000.c (bfd_xcoff_backend_data): Initialise fields which + control long section name handling with XCOFF_NO_LONG_SECTION_NAMES. + (bfd_pmac_xcoff_backend_data): Likewise. + * coff64-rs6000.c (bfd_xcoff_backend_data): Likewise. + (bfd_xcoff_aix5_backend_data): Likewise. + (xcoff64_write_object_contents): Delete unused long_section_names + local variable. + * coff-sh.c (bfd_coff_small_swap_table): Initialise long section + name members using COFF_DEFAULT_LONG_SECTION_NAMES and make entire + struct non-const. + * coffcode.h (documentation): Update to describe long section names. + (COFFLONGSECTIONCATHELPER): New helper macro. + (BLANKOR1TOODD): Likewise. + (COFF_ENABLE_LONG_SECTION_NAMES): Likewise. + (COFF_LONG_SECTION_NAMES_SETTER): Likewise. + (COFF_DEFAULT_LONG_SECTION_NAMES): Likewise. + (bfd_coff_set_long_section_names_allowed): New function. + (bfd_coff_set_long_section_names_disallowed): Likewise. + (struct bfd_coff_backend_data): Add new backend hook function + pointer _bfd_coff_set_long_section_names. + (bfd_coff_set_long_section_names): New backend hook. + (coff_write_object_contents): Only generate long section names if + bfd_coff_long_section_names() indicates they are currently enabled. + (bfd_coff_std_swap_table): Make non-const, and initialise long + section name fields using COFF_DEFAULT_LONG_SECTION_NAMES. + (ticoff0_swap_table): Likewise to both. + (ticoff1_swap_table): Again, likewise to both. + * coffgen.c (make_a_section_from_file): Allow long section names + as inputs even if not currently allowed for outputs. + * ecoff.c (_bfd_ecoff_no_long_sections): New function. + * efi-app-ia32.c (COFF_LONG_SECTION_NAMES): Define to 0, not blank. + * efi-app-ia64.c (COFF_LONG_SECTION_NAMES): Likewise. + * efi-app-x86_64.c (COFF_LONG_SECTION_NAMES): Likewise. + * efi-bsdrv-ia32.c (COFF_LONG_SECTION_NAMES): Likewise. + * efi-bsdrv-ia64.c (COFF_LONG_SECTION_NAMES): Likewise. + * efi-bsdrv-x86_64.c (COFF_LONG_SECTION_NAMES): Likewise. + * efi-rtdrv-ia32.c (COFF_LONG_SECTION_NAMES): Likewise. + * efi-rtdrv-ia64.c (COFF_LONG_SECTION_NAMES): Likewise. + * efi-rtdrv-x86_64.c (COFF_LONG_SECTION_NAMES): Likewise. + * pei-arm.c (COFF_LONG_SECTION_NAMES): Likewise. + * pei-i386.c (COFF_LONG_SECTION_NAMES): Likewise. + * pei-mcore.c (COFF_LONG_SECTION_NAMES): Likewise. + * pei-mips.c (COFF_LONG_SECTION_NAMES): Likewise. + * pei-ppc.c (COFF_LONG_SECTION_NAMES): Likewise. + * pei-sh.c (COFF_LONG_SECTION_NAMES): Likewise. + * pei-x86_64.c (COFF_LONG_SECTION_NAMES): Likewise. + * libcoff-in.h: Update copyright year to cause updated copyright + year in generated libcoff.h, and fix typo. + * libcoff.h: Regenerated. + * libecoff.h (ECOFF_NO_LONG_SECTION_NAMES): New macro. + (_bfd_ecoff_no_long_sections): Add prototype. + * libxcoff.h (XCOFF_NO_LONG_SECTION_NAMES): New macro. + * pe-mips.c (COFF_LONG_SECTION_NAMES): Define empty if not already + defined by an including .c file. + * ticoff.h (ticoff0_swap_table): Make non-const, and initialise + long section name fields using COFF_DEFAULT_LONG_SECTION_NAMES. + (ticoff1_swap_table): Likewise to both. + +2009-02-18 Christophe Lyon + + * elf32-arm.c (arm_build_one_stub): Fix relocation target for pic + stub. Catch default case error. + (arm_map_one_stub): Add missing Thumb mapping symbol. + +2009-02-18 Bjoern Haase + + PR 9841 + * elf32-avr.c: Handle case where no local symbos exist correctly. + +2009-02-16 Christophe Lyon + + bfd/ + * elf32-arm.c (arm_long_branch_stub, + arm_thumb_v4t_long_branch_stub, + arm_thumb_thumb_long_branch_stub, + arm_thumb_arm_v4t_long_branch_stub, + arm_thumb_arm_v4t_short_branch_stub, + arm_pic_long_branch_stub): + Renamed to elf32_arm_stub_long_branch_any_any, + elf32_arm_stub_long_branch_v4t_arm_thumb, + elf32_arm_stub_long_branch_thumb_only, + elf32_arm_stub_long_branch_v4t_thumb_arm, + elf32_arm_stub_short_branch_v4t_thumb_arm, + elf32_arm_stub_long_branch_any_any_pic. + (arm_stub_long_branch, arm_thumb_v4t_stub_long_branch, + arm_thumb_thumb_stub_long_branch, + arm_thumb_arm_v4t_stub_long_branch, + arm_thumb_arm_v4t_stub_short_branch, arm_stub_pic_long_branch): + Renamed to arm_stub_long_branch_any_any, + arm_stub_long_branch_v4t_arm_thumb, + arm_stub_long_branch_thumb_only, + arm_stub_long_branch_v4t_thumb_arm, + arm_stub_short_branch_v4t_thumb_arm, + arm_stub_long_branch_any_any_pic. + +2009-02-15 John David Anglin + + * elf-hppa.h (elf_hppa_final_link_relocate): Correct addend value used + in branch offset check. + +2009-02-15 Alan Modra + + * elf64-ppc.c (struct _ppc64_elf_section_data): Delete t_symndx, + add toc.symndx and toc.add. + (ppc64_elf_check_relocs): Don't set htab->tls_get_addr here. + Set up toc.add. + (get_tls_mask): Add toc_addend param, set from toc.add. Adjust all + callers. + (ppc64_elf_tls_setup): Set htab->tls_get_addr and tls_get_addr_fd. + (branch_reloc_hash_match): New function, extracted from.. + (ppc64_elf_tls_optimize): ..here. + (ppc64_elf_relocate_section): Properly set addends when optimizing + tls sequences. Avoid unnecessary reading and writing of insns. + Only redo reloc when symbol changed. Bypass symbol checks when + using tlsld_got. + * elf32-ppc.c (ppc_elf_tls_setup): Correct comment. + (branch_reloc_hash_match): New function, extracted from.. + (ppc_elf_tls_optimize): ..here. + (ppc_elf_relocate_section): Avoid unnecessary reading of insns. + Don't clear addend on zapped __tls_get_addr reloc. + +2009-02-12 Nick Clifton + + PR 9827 + * elflink.c (bfd_elf_final_link): When counting the relocations, + if the header size has not been set yet then assume that it will + match the output section's reloc type. + +2009-02-12 Nathan Sidwell + + * elf32-mips.c (mips_elf_final_gp): Don't add 0x4000 offset for + relocatable link. + +2009-02-09 Alan Modra + + * elf32-spu.c (spu_elf_find_overlays): Call bfd_set_error on errors. + (find_function): Likewise. + (pasted_function): Don't error if no prior function found. + (discover_functions): Revert 2008-12-10 change. Extend first + function range to start of section. + +2009-02-08 John David Anglin + + * elf64-hppa.c: Remove PARAMS macro. Replace PTR with void *. Convert + functions to C90. + * elf64-hppa.h: Likewise. + +2009-02-06 Joseph Myers + + * elfxx-mips.c (_bfd_mips_elf_section_processing): Remove special + .sbss handling. + +2009-02-04 Alan Modra + + * elf32-spu.c (spu_elf_build_stubs): Define __icache_neg_log2_linesize. + Define __icache_ptr_handler*, not __icache_ptr___icache_bi_handler*. + +2009-02-03 Sandip Matte + + * aoutx.h (NAME (aout, machine_type)): Handle bfd_mach_mips_xlr. + * archures.c (bfd_mach_mips_xlr): Define. + * bfd-in2.h: Regenerate. + * cpu-mips.c (I_xlr): Define. + (arch_info_struct): Add XLR entry. + * elfxx-mips.c (_bfd_elf_mips_mach): Handle E_MIPS_MACH_XLR. + (mips_set_isa_flags): Handle bfd_mach_mips_xlr + (mips_mach_extensions): Add XLR entry. + +2009-02-03 Eric B. Weddington + + * elf32-avr.c (avr_final_link_relocate): Allow avr25 to wraparound. + +2009-02-03 Carlos O'Donell + + * configure.in: AC_SUBST pdfdir. + * Makefile.am: Add install-pdf, install-pdf-am + and install-pdf-recursive targets. Define pdfdir. + * doc/Makefile.am: Define pdf__strip_dir. Add + install-pdf and install-pdf-am targets. + * po/Make-in: Add install-pdf target. + * configure: Regenerate. + * Makefile.in: Regenerate + * doc/Makefile.in: Regenerate. + +2009-02-03 Maxim Kuvyrkov + + * bfd-in2.h: Regenerate. + * elf32-m68k.c: Handle 2-slot GOT entries. Rename variables and + fields from n_entries to n_slots where appropriate, update comments. + (HOWTO): Add TLS relocations. + (reloc_map): Map BFD_RELOC_68K_TLS_* to R_68K_TLS_*. + (enum elf_m68k_got_offset_size): New enum. + (struct elf_m68k_got_entry.type): Move field to ... + (struct elf_m68k_got_entry_key): ... here. Update all uses. + (elf_m68k_reloc_got_type, elf_m68k_reloc_got_offset_size): New static + functions. + (elf_m68k_reloc_got_n_entries, elf_m68k_reloc_tls_p): New static + functions. + (struct elf_m68k_got): merge rel_8o_n_entries and rel_8o_16o_n_entries + fields into n_entries array. Update comments. + (elf_m68k_init_got): Simplify, update all uses. + (elf_m68k_init_got_entry_key): Handle R_68K_TLS_LDM32 reloc, update. + (ELF_M68K_REL_8O_MAX_N_ENTRIES_IN_GOT): Adjust to handle 2-slot + GOT entries; update name, update all uses. + (ELF_M68K_REL_8O_16O_MAX_N_ENTRIES_IN_GOT): Ditto. + (elf_m68k_get_got_entry): Update. + (elf_m68k_update_got_entry_type): Rewrite to handle TLS GOT entries, + simplify. + (elf_m68k_remove_got_entry_type): Simplify. + (elf_m68k_add_entry_to_got, elf_m68k_can_merge_gots_1): Update. + (elf_m68k_can_merge_gots): Update. + (elf_m68k_merge_gots_1, elf_m68k_merge_gots): Update. + (struct elf_m68k_finalize_got_offsets_arg): Rewrite to handle 2-slot + GOT entries, simplify. + (elf_m68k_finalize_got_offsets_1, elf_m68k_finalize_got_offsets): Same. + (struct elf_m68k_partition_multi_got_arg): Add slots_relas_diff + field, remove obsoleted local_n_entries field. + (elf_m68k_partition_multi_got_2): New static function. + (elf_m68k_partition_multi_got_1, elf_m68k_partition_multi_got): Use it; + update. + (elf_m68k_remove_got_entry_type): Update. + (elf_m68k_install_rela, dtpoff_base, tpoff): New static functions. + (elf_m68k_check_relocs): Handle TLS relocations. Remove unnecessary + update of sgot->size and srelgot->size. + (elf_m68k_gc_sweep_hook): Update. + (elf_m68k_install_rela, dtpoff_base, tpoff): New static functions. + (elf_m68k_relocate_section, elf_m68k_finish_dynamic_symbol): Handle + TLS relocations. + * reloc.c (BFD_RELOC_68K_TLS_*): Declare TLS relocations. + * libbfd.h (bfd_reloc_code_real_names): Add BFD_RELOC_68K_TLS_*. + +2009-02-02 DJ Delorie + + * elf32-mep.c (config_names): Regenerate configuration. + +2009-02-02 Alan Modra + + * elf-bfd.h (bfd_elf_get_str_section): Don't declare. + (bfd_elf_find_section, _sh_elf_set_mach_from_flags): Likewise. + * elf.c (bfd_elf_get_str_section): Make static. + (bfd_elf_find_section): Delete. + * libbfd.h: Regenerate. + +2009-02-01 Jan Kratochvil + + * elf-eh-frame.c (REQUIRE_CLEARED_RELOCS) Remove. + (_bfd_elf_parse_eh_frame): Do not check relocations for removed FDEs. + +2009-01-31 Alan Modra + + * elflink.c (on_needed_list): New function. + (elf_link_add_object_symbols): Link in --as-needed libs if they + satisfy undefined symbols in other libs. + +2009-01-30 Julian Brown + + * elf32-arm.c (bfd_elf32_arm_vfp11_erratum_scan): Skip BFDs with + EXEC_P or DYNAMIC flags, and skip sections which are being linked + with --just-symbols (-R). + +2009-01-29 Adam Nemet + + * dwarf2.c (read_rangelist): Use read_address to read low_pc and + high_pc in order to properly sign-extend VMAs. + +2009-01-29 Daniel Jacobowitz + Mark Shinwell + Catherine Moore + + * elf-attrs.c, elflink.c, elfxx-mips.c: Correct typos in comments. + +2009-01-28 Catherine Moore + + * elf32-arm.c (elf32_arm_check_relocs): Set SEC_ALLOC and + SEC_LOAD for dynamic relocation sections. + +2009-01-27 Hans-Peter Nilsson + + * elf32-cris.c (cris_elf_relocate_section): Use elf_hash_table + (info)->tls_size, not elf_hash_table (info)->tls_sec->size for + the size of local TLS data. + +2009-01-27 Andreas Schwab + + * mach-o.c (bfd_mach_o_archive_p): Restrict the number of + architectures in the archive. + +2009-01-27 Hans-Peter Nilsson + + * elf32-cris.c (cris_elf_relocate_section) + : Correct relocation value. + + * elf32-cris.c (cris_elf_relocate_section) + : Don't call BFD_ASSERT for weak undefined + symbols with non-default visibility. + +2009-01-26 Nathan Sidwell + + * elf32-ppc.c (ppc_elf_relax_section): Add space for relocs + describing the trampolines. + (ppc_elf_relocate_section): Update relocs to describe the + trampolines. + +2009-01-25 John David Anglin + + * elf-hppa.h (elf_hppa_final_link_relocate): Add check to ensure that + branch targets can be reached for R_PARISC_PCREL22F, R_PARISC_PCREL17F + and R_PARISC_PCREL12F relocations. + +2009-01-24 Alan Modra + + PR 6022 + * elflink.c (find_version_for_sym): New function split out from, + but without export_dynamic test, .. + (_bfd_elf_link_assign_sym_version): ..here. + (_bfd_elf_export_symbol): Use it. + +2009-01-23 Alan Modra + + * elf-bfd.h (struct elf_assign_sym_version_info): Delete. + (struct elf_info_failed, struct elf_find_verdep_info): Move to.. + * elflink.c: ..here, somewhat modified. + * elf-bfd.h (_bfd_elf_add_default_symbol, _bfd_elf_export_symbol, + _bfd_elf_link_find_version_dependencies, + _bfd_elf_link_assign_sym_version, _bfd_elf_link_size_reloc_section, + _bfd_elf_fix_symbol_flags, _bfd_elf_adjust_dynamic_symbol, + _bfd_elf_link_sec_merge_syms, bfd_elf_link_mark_dynamic_symbol): Don't + declare.. + * elflink.c: ..and make static here. + (_bfd_elf_link_find_version_dependencies): Adjust for removal + of output_bfd from struct elf_find_verdep_info. + (_bfd_elf_link_assign_sym_version): Similarly adjust to use + struct elf_info_failed. + (bfd_elf_size_dynamic_sections): Adjust. + +2009-01-22 Alan Modra + + PR 6832 + * dwarf2.c (find_line): Don't update stash->sec_info_ptr until + after comp_unit_find_line call. + +2009-01-21 Nick Clifton + + PR 9769 + * vmsutil.c (vms_file_stats_name): Remove use of unsupported + tm_gmtoff field in struct tm. + +2009-01-21 Alan Modra + + * elf32-spu.h (struct spu_elf_params): Add non_ia_text. + * elf32-spu.c (mark_overlay_section): Only include .text.ia.* + sections in soft-icache lines unless non_ia_text. Don't add + rodata if doing so would exceed line size. + +2009-01-19 Hans-Peter Nilsson + + * elf32-cris.c (elf_cris_copy_indirect_symbol): For other symbol + types than bfd_link_hash_indirect, before early return, call + _bfd_elf_link_hash_copy_indirect. + +2009-01-19 Andrew Stubbs + + * elf-attrs.c (vendor_set_obj_attr_contents): Support tag ordering. + * elf-bfd.h (elf_backend_data): Add obj_attrs_order. + * elf32-arm.c (elf32_arm_obj_attrs_order): New function. + (elf_backend_obj_attrs_order): New define. + * elfxx-target.h (elf_backend_obj_attrs_order): New define. + (elfNN_bed): Add elf_backend_obj_attrs_order. + +2009-01-19 Andrew Stubbs + + * elf-attrs.c (is_default_attr): Substitute magic numbers with macros. + (obj_attr_size): Likewise. + (write_obj_attribute): Likewise. + (_bfd_elf_copy_obj_attributes): Likewise. + (_bfd_elf_parse_attributes): Likewise. + * elf-bfd.h (ATTR_TYPE_FLAG_INT_VAL): New define. + (ATTR_TYPE_FLAG_STR_VAL, ATTR_TYPE_FLAG_NO_DEFAULT): New defines. + (ATTR_TYPE_HAS_INT_VAL, ATTR_TYPE_HAS_STR_VAL): New defines. + (ATTR_TYPE_HAS_NO_DEFAULT): New define. + * elf32-arm.c (elf32_arm_obj_attrs_arg_type): Replace magic numbers + with macros. + +2009-01-19 Andrew Stubbs + + * elf-attrs.c (is_default_attr): Support defaultless attributes. + (bfd_elf_add_obj_attr_int): Get type from _bfd_elf_obj_attrs_arg_type. + (bfd_elf_add_obj_attr_string): Likewise. + (bfd_elf_add_obj_attr_int_string): Likewise. + (_bfd_elf_parse_attributes): Allow for unknown flag bits in type. + * elf-bfd.h (struct obj_attribute): Document new flag bit. + * elf32-arm.c (elf32_arm_obj_attrs_arg_type): Specify that + Tag_nodefaults has no default value. + (elf32_arm_merge_eabi_attributes): Modify the Tag_nodefaults + comment to reflect the new state. + +2009-01-19 Alan Modra + + PR 9695 + * pdp11.c (N_BADMAG): True for anything but OMAGIC, NMAGIC, ZMAGIC. + (some_aout_object_p): Delete dead code handling QMAGIC and BMAGIC. + (adjust_z_magix): Delete dead code handling QMAGIC. + +2009-01-16 Kai Tietz + + * coffcode.h (styp_to_sec_flags): Correct interpretation of + IMAGE_SCN_MEM_DISCARDABLE. + +2009-01-16 Alan Modra + + * Makefile.am (libbfd_la_LIBADD, libbfd_la_LDFLAGS): Substitute + SHARED_LIBADD and SHARED_LDFLAGS rather than WIN32LIBADD, WIN32LDFLAGS. + * configure.in (commonbfdlib): Delete. + (SHARED_LDFLAGS): Rename from WIN32LDFLAGS/ + (SHARED_LIBADD): Rename from WIN32LIBADD. Add pic libiberty if such + is available, not just for linux. + * po/SRC-POTFILES.in: Regenerate. + * Makefile.in: Regenerate. + * configure: Regenerate. + +2009-01-15 Andrew Stubbs + Julian Brown + + * elf-bfd.h (NUM_KNOWN_OBJ_ATTRIBUTES): Set to 71 to include all known + ARM attributes in ABI 2.07. + * elf32-arm.c (get_secondary_compatible_arch): New function. + (set_secondary_compatible_arch): New function. + (tag_cpu_arch_combine): New function. + (elf32_arm_copy_one_eabi_other_attribute): Delete function. + (elf32_arm_copy_eabi_other_attribute_list): Delete function. + (elf32_arm_merge_eabi_attributes): Rename order_312 to order_021 to + make it fit with order_01243. + Add support for Tag_also_compatible_with, + Tag_CPU_unaligned_access, Tag_T2EE_use, Tag_Virtualization_use, + Tag_MPextension_use, Tag_nodefaults and Tag_conformance. + Improve/tidy up support for Tag_CPU_raw_name, Tag_CPU_name, + Tag_CPU_arch, Tag_ABI_HardFP_use, Tag_VFP_HP_extension, + Tag_ABI_FP_denormal, Tag_ABI_PCS_GOT_use, Tag_ABI_align8_needed, + Tag_VFP_arch and Tag_ABI_FP_16bit_format. + Rework the way unknown attributes are handled. + Defer errors until all attributes have been processed. + +2009-01-15 Andrew Stubbs + + * elf-attrs.c (bfd_elf_add_obj_attr_compat): Rename to + bfd_elf_add_obj_attr_int_string. + Read Tag_compatibility from its new location in the attribute array, + rather than the attribute list. + (_bfd_elf_copy_obj_attributes): bfd_elf_add_obj_attr_compat -> + bfd_elf_add_obj_attr_int_string. + (_bfd_elf_parse_attributes): Likewise. + (_bfd_elf_merge_object_attributes): There's now only one + Tag_compatibility, and it's in the array, not the list. + * elf-bfd.h (NUM_KNOWN_OBJ_ATTRIBUTES): Set to 33 to include + Tag_compatibility. + (bfd_elf_add_obj_attr_compat): Rename to + bfd_elf_add_obj_attr_int_string. + (bfd_elf_add_proc_attr_compat): Rename to + bfd_elf_add_proc_attr_int_string. + * elf32-arm.c (elf32_arm_merge_eabi_attributes): Explicitly don't handle + Tag_compatibility. + +2009-01-15 Douglas B Rupp + + * Makefile.am (BFD32_BACKENDS): Add new object vmsutil.lo + (BFD32_BACKENDS_CFILES): Add new file vmsutil.c + (vmsutil.lo): Add dependency rule. + * Makefile.in: Regenerate. + * config.bfd (ia64*-*-*vms*): Add case. + * configure.in (bfd_elf64_ia64_vms_vec): Add case. + * configure: Regenerate. + * vmsutil.c: New file. + * vmsutil.h: New file. + * elf-bfd.h (struct bfd_elf_special_section): Change type of + attr to bfd_vma. + * elfxx-ia64.c (elfNN_vms_post_process_headers, + elfNN_vms_section_processing, elfNN_vms_final_write_processing, + elfNN_vms_close_and_cleanup, elfNN_vms_section_from_shdr, + elfNN_vms_object_p): New functions + * targets.c (bfd_elf64_ia64_vms_vec): New target. + +2009-01-14 H.J. Lu + + PR ld/9727 + * elflink.c (elf_gc_sweep): Exclude the group section if the + first member of the section group is excluded. + +2009-01-14 Alan Modra + + PR 9735 + * syms.c (_bfd_stab_section_find_nearest_line): Don't free + saved filename, use bfd_alloc rather than bfd_malloc for it. + +2009-01-13 Alan Modra + + * elf32-spu.c (spu_elf_build_stubs): Make __icache_base absolute. + +2009-01-13 Alan Modra + + * elf32-spu.c (remove_cycles): Always set call->max_depth. + 2009-01-12 Alan Modra * elf32-spu.c (spu_elf_auto_overlay): Correct vma mask.