12008-12-29 Arnold Metselaar <arnold.metselaar@planet.nl> 2 3 * coff-z80.c (r_imm32): Fix copy-paste bug that caused z80-objdump to 4 issue warnings about stabs debugging symbols rather than to show them. 5 62008-12-23 Jon Beniston <jon@beniston.com> 7 8 * Makefile.am: Add LM32 object files and dependencies. 9 * Makefile.in: Regenerate. 10 * archures.c: Add LM32 architechiture info. 11 * targets.c: Likewise. 12 * reloc.c: Likewise. 13 * bfd-in2.h: Regenerate. 14 * config.bfd: Add LM32 targets. 15 * configure.in: Likewise. 16 * configure: Regenerate. 17 * cpu-lm32.c: New file. 18 * elf32-lm32.c: New file. 19 202008-12-23 H.J. Lu <hongjiu.lu@intel.com> 21 22 PR ld/7036 23 * elfxx-ia64.c (elfNN_ia64_relax_section): Assume linker will 24 always insert 32byte between the .plt and .text sections after 25 the first relaxation pass. 26 272008-12-23 Nick Clifton <nickc@redhat.com> 28 29 PR 7093 30 * elf32-arm.c (bfd_elf32_arm_init_maps): Only process ARM ELF 31 object files. 32 332008-12-23 Tristan Gingold <gingold@adacore.com> 34 35 * mach-o.c (bfd_mach_o_make_bfd_section): Use the standard ELF name 36 .eh_frame for __TEXT.__eh_frame so that it is recognized by gdb. 37 Use shorter sections name for well known sections. 38 (bfd_mach_o_scan_read_dylinker): Only put dylinker name in the 39 section content. 40 (bfd_mach_o_scan_read_segment): Use shorter sections name for 41 well known segments. 42 (bfd_mach_o_scan_read_command): Ignore some new commands. 43 (bfd_mach_o_openr_next_archived_file): Use more descriptive names 44 for members filename. 45 (bfd_mach_o_fat_extract): New function to easily extract members 46 of a fat binary. 47 * mach-o.h (bfd_mach_o_load_command_type): Add new constants. 48 (bfd_mach_o_dylinker_command): Fix comment and reindent. 49 (bfd_mach_o_fat_extract): New prototype. 50 512008-12-23 Johan Olmutz Nielsen <jnielsen@ddci.com> 52 53 * coffcode.h (coff_write_object_contents): Always initialise 54 section.s_page. 55 562008-12-23 Andreas Schwab <schwab@suse.de> 57 58 * elf32-m68k.c (elf_m68k_discard_copies): Use SYMBOL_CALLS_LOCAL. 59 (elf_m68k_relocate_section): Use SYMBOL_CALLS_LOCAL and 60 SYMBOL_REFERENCES_LOCAL. 61 (elf_m68k_relocate_section): Likewise. 62 632008-12-23 Nick Clifton <nickc@redhat.com> 64 65 * elf-bfd.h (struct bfd_elf_section_data): Remove indirect_relocs 66 field. 67 (_bfd_elf_make_ifunc_reloc_section): Remove prototype. 68 * elf.c (swap_out_syms): Remove STT_IFUNC support. 69 (elf_find_function): Likewise. 70 * elf32-arm.c (arm_elf_find_function): Likewise. 71 (elf32_arm_adjust_dynamic_symbol): Likewise. 72 (elf32_arm_swap_symbol_in): Likewise. 73 (elf32_arm_is_function_type): Likewise. 74 * elf32-i386.c (is_indirect_symbol): Delete. 75 (elf_i386_check_relocs): Remove STT_IFUNC support. 76 (allocate_dynrelocs): Likewise. 77 (elf_i386_relocate_section): Likewise. 78 * elf64-x86-64.c (is_indirect_symbol): Delete. 79 (elf64_x86_64_check_relocs): Remove STT_IFUNC support. 80 (allocate_dynrelocs): Likewise. 81 (elf64_x86_64_relocate_section): Likewise. 82 * elfcode.h (elf_slurp_symbol_table): Likewise. 83 * elflink.c (_bfd_elf_adjust_symbol): Likewise. 84 (get_ifunc_reloc_section_name): Delete. 85 (_bfd_elf_make_ifunc_reloc_section): Delete. 86 * syms.c (BSF_INDIRECT_FUNCTION): Delete. 87 (bfd_print_symbol_vandf): Remove STT_IFUNC support. 88 (bfd_decode_symclass): Likewise. 89 * bfd-in2.h: Regenerate. 90 912008-12-20 Hans-Peter Nilsson <hp@axis.com> 92 93 * elf32-cris.c (cris_elf_howto_table): Add entry for R_CRIS_32_IE. 94 (cris_reloc_map): Similarly. 95 (cris_elf_relocate_section, cris_elf_gc_sweep_hook) 96 (cris_elf_check_relocs): Handle R_CRIS_32_IE. 97 * reloc.c (bfd_reloc_code_type): Add entry for R_CRIS_32_IE. 98 * bfd-in2.h, libbfd.h: Regenerate. 99 1002008-12-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 101 102 * configure: Regenerate. 103 1042008-12-17 Hans-Peter Nilsson <hp@axis.com> 105 106 * elf32-cris.c (elf_cris_copy_indirect_symbol): Return without 107 action for symbols other than bfd_link_hash_indirect. 108 (cris_elf_relocate_section) <R_CRIS_8, R_CRIS_16, R_CRIS_32>: Add missing 109 gate h != NULL for h->def_regular test. 110 1112008-12-15 Hans-Peter Nilsson <hp@axis.com> 112 113 * elf32-cris.c (elf_cris_copy_indirect_symbol): New function. 114 (elf_backend_copy_indirect_symbol): Define to above. 115 116 * elf32-cris.c (struct elf_cris_pcrel_relocs_copied): New member 117 r_type. Fix formatting. 118 (cris_elf_relocate_section) <R_CRIS_8_PCREL, R_CRIS_16_PCREL> 119 <R_CRIS_32_PCREL>: Also break early if the symbol doesn't get 120 emitted as a dynamic one. 121 (cris_elf_check_relocs) <R_CRIS_7, R_CRIS_16, R_CRIS_32>: Fork 122 from PCREL relocs code and simplify; don't fall through. 123 <R_CRIS_8_PCREL, R_CRIS_16_PCREL, R_CRIS_32_PCREL>: Simplify for 124 pcrel only. For non-local or overridable symbols in a DSO, always 125 keep count of relocs, not just when -Bsymbolic. Don't emit 126 message nor mark as TEXTREL here. 127 (elf_cris_discard_excess_dso_dynamics): Emit warning and mark as 128 TEXTREL here, if there are nondiscarded pcrel relocs. 129 130 * elf32-cris.c (elf_cris_got_elt_size) <symtab_hdr>: Initialize 131 using ibfd, not abfd. 132 1332008-12-11 Alan Modra <amodra@bigpond.net.au> 134 135 PR 7041 136 * elf64-ppc.c (func_desc_adjust): Correct logic making fake function 137 descriptors. Similarly correct making function descriptors dynamic. 138 1392008-12-10 Alan Modra <amodra@bigpond.net.au> 140 141 * elf32-spu.h (struct spu_elf_params): Add num_regions. 142 * elf32-spu.c (spu_elf_auto_overlay): Handle multiple overlay regions. 143 1442008-12-10 Alan Modra <amodra@bigpond.net.au> 145 146 * elf32-spu.g (struct spu_elf_params, enum _ovly_flavour): New. 147 (spu_elf_setup): Declare. 148 (spu_elf_create_sections, spu_elf_size_stubs): Update prototype. 149 (spu_elf_build_stubs, spu_elf_check_vma): Likewise. 150 * elf32-spu.c (struct spu_link_hash_table): Add "params". Remove 151 various other fields now in "params". Adjust code throughout. 152 (struct call_info, struct function_info): Move earlier in file. 153 (struct spu_elf_stack_info): Likewise. 154 (spu_elf_setup): New function. 155 (spu_elf_create_sections): Remove args other than "info". 156 (spu_elf_size_stubs, spu_elf_build_stubs, spu_elf_check_vma): Likewise. 157 (maybe_needs_stubs): Remove "output_bfd" arg. Adjust all calls. 158 (interesting_section): Similarly with "obfd" arg. 159 (needs_ovl_stub): Adjust output_section test. 160 (allocate_spuear_stubs): Likewise. 161 (OVL_STUB_SIZE): Don't define. 162 (ovl_stub_size): New function, use in place of OVL_STUB_SIZE. 163 (build_stub): Test params->ovly_flavour rather than OVL_STUB_SIZE. 164 (spu_elf_auto_overlay): Remove args other than "info". Make use 165 of size returned from spu_elf_load_ovl_mgr. 166 (spu_elf_stack_analysis): Remove args other than "info". 167 (spu_elf_relocate_section): Tidy setting of "ea". 168 1692008-12-10 Alan Modra <amodra@bigpond.net.au> 170 171 * elf32-spu.c (find_function_stack_adjust): Don't limit number 172 of insns scanned. Correct sp tests. Handle "fsmbi" and "andbi". 173 (mark_detached_root): New function. 174 (build_call_tree): Call it. 175 (sort_calls): Don't do void* arithmetic. 176 (define_ovtab_symbol): Don't abort on symbols defined in linker scripts. 177 (discover_functions): Consider STT_SECTION symbols too. 178 (collect_lib_sections): Don't cut short call tree traversal 179 when function size is too large. 180 1812008-12-09 Tom Tromey <tromey@redhat.com> 182 183 * pef.c (bfd_pef_parse_traceback_table): Add parens to placate gcc 184 4.4. 185 1862008-12-09 Tristan Gingold <gingold@adacore.com> 187 188 * cpu-avr.c (compatible): Makes avr-6 compatible only with itself. 189 1902008-12-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 191 192 * elf64-s390.c (elf_s390_check_relocs): Initialize 193 htab->elf.dynobj if necessary. 194 1952008-12-03 Nick Clifton <nickc@redhat.com> 196 197 * syms.c (struct bfd_symbol): Add new flag BSF_INDIRECT_FUNCTION. 198 Remove redundant flag BFD_FORT_COMM_DEFAULT_VALUE. Renumber flags 199 to remove gaps. 200 (bfd_print_symbol_vandf): Return 'i' for BSF_INDIRECT_FUNCTION. 201 (bfd_decode_symclass): Likewise. 202 * elf.c (swap_out_syms): Translate BSF_INDIRECT_FUNCTION into 203 STT_IFUNC. 204 (elf_find_function): Treat STT_IFUNC in the same way as STT_FUNC. 205 (_bfd_elf_is_function_type): Likewise. 206 * elf32-arm.c (arm_elf_find_function): Likewise. 207 (elf32_arm_adjust_dynamic_symbol): Likewise. 208 (elf32_arm_swap_symbol_in): Likewise. 209 (elf32_arm_additional_program_headers): Likewise. 210 * elf32-i386.c (is_indirect_symbol): New function. 211 (elf_i386_check_relocs): Also generate dynamic relocs for 212 relocations against STT_IFUNC symbols. 213 (allocate_dynrelocs): Likewise. 214 (elf_i386_relocate_section): Likewise. 215 * elf64-x86-64.c (is_indirect_symbol): New function. 216 (elf64_x86_64_check_relocs): Also generate dynamic relocs for 217 relocations against STT_IFUNC symbols. 218 (allocate_dynrelocs): Likewise. 219 (elf64_x86_64_relocate_section): Likewise. 220 * elfcode.h (elf_slurp_symbol_table): Translate STT_IFUNC into 221 BSF_INDIRECT_FUNCTION. 222 * elflink.c (_bfd_elf_adjust_dynamic_reloc_section): Add support 223 for STT_IFUNC symbols. 224 (get_ifunc_reloc_section_name): New function. 225 (_bfd_elf_make_ifunc_reloc_section): New function. 226 * elf-bfd.h (struct bfd_elf_section_data): Add indirect_relocs field. 227 * bfd-in2.h: Regenerate. 228 2292008-12-02 Tristan Gingold <gingold@adacore.com> 230 231 * config.bfd: Add x86_64-*-darwin* 232 2332008-11-28 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 234 235 * hpux-core.c: Don't include sys/file.h. 236 2372008-11-28 Joshua Kinard <kumba@gentoo.org> 238 239 * aoutx.h (NAME): Add case statements for bfd_mach_mips14000, 240 bfd_mach_mips16000. 241 * archures.c (bfd_architecture): Add .#defines for bfd_mach_mips14000, 242 bfd_mach_mips16000. 243 * bfd-in2.h: Regenerate. 244 * cpu-mips.c: Add enums I_mips14000, I_mips16000. 245 (arch_info_struct): Add refs to R14000, R16000. 246 * elfxx-mips.c (mips_set_isa_flags): Handle bfd_mach_mips14000, 247 bfd_mach_mips16000. 248 (mips_mach_extensions): Map R14000, R16000 to R10000. 249 2502008-11-27 M R Swami Reddy <MR.Swami.Reddy@nsc.com> 251 252 * Add PIC support for CR16 target. 253 * elf32-cr16.c (R_CR16_GOT_REGREL20, R_CR16_GOTC_REGREL20 and 254 R_CR16_GLOB_DAT): New macros 255 (cr16_elf_howto_table): Add entries for for R_CR16_GOT_REGREL20, 256 R_CR16_GOTC_REGREL20 and R_CR16_GLOB_DAT. 257 (cr16_reloc_map): Ditto 258 (_bfd_cr16_elf_create_got_section): New function to create GOT section. 259 (_bfd_cr16_elf_create_dynamic_sections): New function to create dynamic 260 section. 261 (_bfd_cr16_elf_adjust_dynamic_symbol): New function to adjust symbol 262 defined by dynamic object. 263 (_bfd_cr16_elf_size_dynamic_sections): New function to find the size of 264 dynamic sections. 265 (_bfd_cr16_elf_finish_dynamic_symbol): New function to handle dynamic 266 symbols. 267 (_bfd_cr16_elf_finish_dynamic_symbol): New function to handle dynamic 268 sections. 269 (bfd_cr16_elf32_create_embedded_relocs): New function to create 270 embedded relocs in .emreloc section in memory for .data.rel section. 271 (_bfd_cr16_elf_reloc_type_class): New function for classify reloc types. 272 (cr16_elf_check_relocs): New function for checking reloc types in first 273 phase. 274 (cr16_elf_final_link_relocate): Update for handling the new reloc types 275 R_CR16_GOT_REGREL20 and R_CR16_GOTC_REGREL20. 276 (elf32_cr16_relax_section): Update relax implementation. 277 * reloc.c (bfd_reloc_code_type): Add entries for R_CR16_GOT_REGREL20, 278 R_CR16_GOTC_REGREL20 and R_CR16_GLOB_DAT. 279 * bfd-in.h (bfd_boolean bfd_cr16_elf32_create_embedded_relocs): Declared 280 * libbfd.h, bfd-in2.h: Regenerate. 281 2822008-11-26 Alan Modra <amodra@bigpond.net.au> 283 284 PR 7047 285 * configure.in: Bump version. 286 * configure: Regenerate. 287 * elflink.c (_bfd_elf_link_assign_sym_version): Continue matching 288 against version nodes when a global match is a wildcard. Similarly 289 continue matching on local wildcard matches, rather than only 290 continuing for "*". Have any global wildcard match override a 291 local wildcard match. Correct logic hiding unversioned symbol. 292 (bfd_elf_size_dynamic_sections): Update for changes to struct 293 bfd_elf_version_expr. 294 2952008-11-25 Joel Brobecker <brobecker@adacore.com> 296 297 * configure.in: Deactivate large-file support on native x86-solaris 298 as well unless the user explicitly requested it. 299 * configure: Regenerate. 300 3012008-11-25 Joseph Myers <joseph@codesourcery.com> 302 303 * elf32-arm.c (elf32_arm_final_link_relocate): Do not turn 304 branches to undefine weak symbols into branches to the next 305 instruction if creating PLT entries for those symbols. 306 3072008-11-25 Nick Clifton <nickc@redhat.com> 308 309 * elflink.c (is_reloc_section): New function. Returns true if the 310 given name matches the name of the reloc-containing section 311 associated with the given section. 312 (get_dynamic_reloc_section_name): New function. Computes the name 313 of the section that contains the dynamic relocs associated with 314 the given section. 315 (_bfd_elf_get_dynamic_reloc_section): New function. Returns a 316 pointer to the section containing the dynamic relocs associated 317 with the given section. 318 (_bfd_elf_make_dynamic_reloc_section): New function. Creates a 319 section to contain the dynamic relocs associated with a given 320 section. 321 * elf-bfd.h: Prototype the new functions. 322 * elf-m10300.c (mn10300_elf_check_relocs): Use new functions. 323 (mn10300_elf_final_link_relocs): Likewise. 324 * elf32-arm.c (reloc_section_p): Delete - replaced by new 325 functions. 326 (elf32_arm_final_link_relocate): Use new functions. 327 (elf32_arm_check_relocs): Likewise. 328 * elf32-cris.c (cris_elf_relocate_section): Likewise. 329 (elf_cris_check_relocs): Likewise. 330 * elf32-hppa.c (elf32_hppa_check_relocs): Likewise. 331 * elf32-i370.c (i370_elf_check_relocs): Likewise. 332 (i370_elf_relocate_section): Likewise. 333 * elf32-i386.c (elf_i386_check_relocs): Likewise. 334 * elf32-m32r.c (m32r_elf_relocate_section): Likewise. 335 (m32r_elf_check_relocs): Likewise. 336 * elf32-m68k.c (elf_m68k_check_relocs): Likewise. 337 * elf32_ppc.c (ppc_elf_check_relocs): Likewise. 338 (ppc_elf_relocate_section): Likewise. 339 * elf32-s390.c (elf_s390_check_relocs): Likewise. 340 * elf32-sh.c (sh_elf_relocate_section): Likewise. 341 (sh_elf_check_relocs): Likewise. 342 * elf32-vax.c (elf_vax_check_relocs): Likewise. 343 (elf_vax_relocate_section): Likewise. 344 * elf64-alpha.c (elf64_alpha_check_relocs): Likewise. 345 * elf64-ppc.c (ppc64_elf_check_relocs): Likewise. 346 * elf64-s390.c (elf_s390_check_relocs): Likewise. 347 * elf64-sh64.c (sh_elf64_relocate_section): Likewise. 348 * elf64-x86-64.c (elf64_x86_64_check_relocs): Likewise. 349 * elfxx-sparc.c (_bfd_sparc_elf_check_relocs): Likewise. 350 * elf32-bfin.c (bfin_check_relocs): Remove redundant local 351 variable 'sreloc'. 352 (bfin_relocate_section): Likewise. 353 * elf32-v850.c (v850_elf_check_relocs): Likewise. 354 3552008-11-23 Hans-Peter Nilsson <hp@axis.com> 356 357 Implement TLS for CRIS. 358 * elf32-cris.c: Include limits.h. 359 (TLSHOWTO16): Redefine in terms of and move contents to... 360 (TLSHOWTO16X): New macro. 361 (TLSHOWTO16S, LGOT_REG_NDX, LGOT_DTP_NDX, LGOT_ALLOC_NELTS_FOR) 362 (elf_cris_hash_entry): New macros. 363 (cris_elf_howto_table): Make R_CRIS_16_DTPREL, 364 R_CRIS_16_GOT_TPREL, R_CRIS_16_TPREL check overflow for signed, 365 not unsigned values. 366 (cris_info_to_howto_rela): Make r_type a enum elf_cris_reloc_type, 367 not unsigned int. 368 (struct elf_cris_link_hash_entry): New members reg_got_refcount, 369 tprel_refcount, and dtp_refcount. 370 (struct elf_cris_link_hash_table): New member dtpmod_refcount. 371 (elf_cris_link_hash_newfunc): Initialize new members. 372 (elf_cris_link_hash_table_create): Similar. 373 (cris_final_link_relocate, elf_cris_reloc_type_class): Use a 374 temporary variable when testing the relocation type. 375 (cris_elf_gc_mark_hook): Ditto. Add default case where needed. 376 (cris_elf_gc_sweep_hook): Ditto. Handle reference-counting for 377 the new assembly-generated relocs. Rewrite refcount handling to 378 set temporary variables to pointers to reloc-specific variables 379 and entry size and common code for the update. 380 (additional_relocation_error_msg_count): New variable. 381 (cris_elf_relocate_section): Use a function-local variable srelgot 382 for the .rela.got section instead of looking it up for every need. 383 Make r_type a enum elf_cris_reloc_type, not int. Actually set 384 symname for non-local symbols. Handle new assembly-generated 385 relocs. For overflow, emit additional messages for the new 16-bit 386 relocs as well as R_CRIS_16_GOTPLT and R_CRIS_16_GOT. 387 (elf_cris_finish_dynamic_symbol): Use elf_cris_finish_dynamic_symbol 388 instead of plain casts. Check new hash entry member 389 reg_got_refcount when checking whether to emit a GOT entry. 390 (elf_cris_finish_dynamic_sections): Update head comment to warn 391 about emitting relocs here. Use a temporary variable when testing 392 the relocation type. 393 (elf_cris_discard_excess_program_dynamics) 394 (elf_cris_adjust_gotplt_to_got): Handle reference counting change 395 regarding h->reg_got_refcount. 396 (cris_elf_check_relocs): Rewrite refcount handling to set 397 temporary variables and entry size and common code for the update 398 for local symbols. Use new macro elf_cris_hash_entry. Adjust 399 allocation for change in reference counting of GOT entries for 400 local symbols. 401 (elf_cris_size_dynamic_sections): Adjust calculated size of 402 .got.plt and .rela.got if we need a GOT entry for a 403 R_CRIS_DTPMOD relocation. 404 (elf_cris_got_elt_size): New function. 405 (elf_backend_got_elt_size): Define. 406 4072008-11-21 Sterling Augustine <sterling@tensilica.com> 408 409 * xtensa-isa.c (xtensa_state_is_shared_or): New function. 410 4112008-11-21 Hans-Peter Nilsson <hp@axis.com> 412 413 * elf-bfd.h (struct elf_backend_data): New member got_elt_size. 414 (_bfd_elf_default_got_elt_size): Declare. 415 * elflink.c (struct alloc_got_off_arg): Replace member got_elt_size 416 by new member info. 417 (elf_gc_allocate_got_offsets): Adjust for calling bed->got_elt_size 418 to get the element size instead of using a gofarg entry. 419 (bfd_elf_gc_common_finalize_got_offsets): Similar. 420 (_bfd_elf_default_got_elt_size): New function. 421 * elfxx-target.h: New macro elf_backend_got_elt_size. 422 (elfNN_bed): Use it. 423 4242008-11-20 Tristan Gingold <gingold@adacore.com> 425 426 * bfdwin.c: Fix comment. 427 4282008-11-20 Tristan Gingold <gingold@adacore.com> 429 430 * bfd.c (is32bit): Use architecture information for non-ELF 431 targets. 432 4332008-11-20 Alan Modra <amodra@bigpond.net.au> 434 435 * elf32-ppc.c (allocate_dynrelocs): Always use tlsld_got for 436 TLS_LD even when symbol is used with other TLS reloc types. 437 (ppc_elf_relocate_section): Bypass symbol checks when using tlsld_got. 438 Leave addend zero on LD DTPMOD dynamic reloc. 439 4402008-11-19 Bob Wilson <bob.wilson@acm.org> 441 442 * xtensa-modules.c (sysregs): Add MMID, VECBASE, EPC5, EPC6, EPC7, 443 EXCSAVE5, EXCSAVE6, EXCSAVE7, EPS5, EPS6, EPS7, CPENABLE, 444 SCOMPARE1, and THREADPTR registers. 445 (NUM_SYSREGS, MAX_USER_REG): Update. 446 (states): Change width of INTERRUPT, WindowBase, WindowStart, and 447 INTENABLE. Add VECBASE, EPC5, EPC6, EPC7, EXCSAVE5, EXCSAVE6, 448 EXCSAVE7, EPS6, EPS6, EPS7, THREADPTR, CPENABLE, and SCOMPARE1 states. 449 (NUM_STATES): Update. 450 (enum xtensa_state_id): Add entries for new states. 451 (enum xtensa_field_id): Add entries for xt_wbr15_imm and xt_wbr18_imm 452 fields, along with functions to extract and set them. 453 (regfiles): Change number of AR registers to 32. 454 (Operand_ar0_encode, Operand_ar4_encode, Operand_ar8_encode, 455 Operand_ar12_encode, Operand_ars_entry_encode): Update register mask. 456 (operands): Add entries for tp7, xt_wbr15_label, xt_wbr18_label, 457 xt_wbr15_imm, and xt_wbr18_imm operands, along with functions to 458 encode and decode them. 459 (enum xtensa_operand_id): Add entries for new operands. 460 (Iclass_xt_iclass_rfi_stateArgs): Add EPC5, EPC6, EPC7, EPS5, EPS6, and 461 EPC7 states. 462 (Iclass_xt_iclass_rfdo_stateArgs): Replace EPC4 and EPS4 by EPC6 and 463 EPS6, respectively. 464 (iclasses): Add entries for rur_threadptr, wur_threadptr, 465 xt_iclass_wsr_176, xt_iclass_rsr_epc5, xt_iclass_wsr_epc5, 466 xt_iclass_xsr_epc5, xt_iclass_rsr_excsave5, xt_iclass_wsr_excsave5, 467 xt_iclass_xsr_excsave5, xt_iclass_rsr_epc6, xt_iclass_wsr_epc6, 468 xt_iclass_xsr_epc6, xt_iclass_rsr_excsave6, xt_iclass_wsr_excsave6, 469 xt_iclass_xsr_excsave6, xt_iclass_rsr_epc7, xt_iclass_wsr_epc7, 470 xt_iclass_xsr_epc7, xt_iclass_rsr_excsave7, xt_iclass_wsr_excsave7, 471 xt_iclass_xsr_excsave7, xt_iclass_rsr_eps5, xt_iclass_wsr_eps5, 472 xt_iclass_xsr_eps5, xt_iclass_rsr_eps6, xt_iclass_wsr_eps6, 473 xt_iclass_xsr_eps6, xt_iclass_rsr_eps7, xt_iclass_wsr_eps7, 474 xt_iclass_xsr_eps7, xt_iclass_rsr_vecbase, xt_iclass_wsr_vecbase, 475 xt_iclass_xsr_vecbase, xt_iclass_mul16, xt_iclass_wsr_mmid, 476 xt_iclass_icache_lock, xt_iclass_dcache_lock, xt_iclass_rsr_cpenable, 477 xt_iclass_wsr_cpenable, xt_iclass_xsr_cpenable, xt_iclass_clamp, 478 xt_iclass_minmax, xt_iclass_sx, xt_iclass_l32ai, xt_iclass_s32ri, 479 xt_iclass_s32c1i, xt_iclass_rsr_scompare1, xt_iclass_wsr_scompare1, 480 xt_iclass_xsr_scompare1, xt_iclass_div, and xt_iclass_mul32, along 481 with corresponding argument and state argument arrays. Change 482 number of state arguments for xt_iclass_rfi. Add arguments for 483 xt_iclass_rfdo. 484 (enum xtensa_iclass_id): Add entries for new iclasses. 485 (opcodes): Add entries for RUR_THREADPTR, WUR_THREADPTR, WSR_176, 486 RSR_EPC5, WSR_EPC5, XSR_EPC5, RSR_EXCSAVE5, WSR_EXCSAVE5, XSR_EXCSAVE5, 487 RSR_EPC6, WSR_EPC6, XSR_EPC6, RSR_EXCSAVE6, WSR_EXCSAVE6, XSR_EXCSAVE6, 488 RSR_EPC7, WSR_EPC7, XSR_EPC7, RSR_EXCSAVE7, WSR_EXCSAVE7, XSR_EXCSAVE7, 489 RSR_EPS5, WSR_EPS5, XSR_EPS5, RSR_EPS6, WSR_EPS6, XSR_EPS6, RSR_EPS7, 490 WSR_EPS7, XSR_EPS7, RSR_VECBASE, WSR_VECBASE, XSR_VECBASE, MUL16U, 491 MUL16S, WSR_MMID, IPFL, IHU, IIU, DPFL, DHU, DIU, RSR_CPENABLE, 492 WSR_CPENABLE, XSR_CPENABLE, CLAMPS, MIN, MAX, MINU, MAXU, SEXT, L32AI, 493 S32RI, S32C1I, RSR_SCOMPARE1, WSR_SCOMPARE1, XSR_SCOMPARE1, QUOU, QUOS, 494 REMU, REMS, and MULL opcodes, along with the corresponding functions 495 to encode them. 496 (enum xtensa_opcode_id): Add entries for new opcodes. 497 (Slot_inst_decode): Handle new opcodes. 498 (Slot_inst_get_field_fns, Slot_inst_set_field_fns): Add entries for 499 xt_wbr15_imm and xt_wbr18_imm fields. 500 (Slot_inst16a_get_field_fns, Slot_inst16a_set_field_fns): Likewise. 501 (Slot_inst16b_get_field_fns, Slot_inst16b_set_field_fns): Likewise. 502 (xtensa_modules): Update number of fields, operands, iclasses and 503 opcodes. 504 5052008-11-19 Nix <nix@esperi.org.uk> 506 507 * elf.c (swap_out_syms) [USE_STT_COMMON]: Fix syntax error. 508 5092008-11-19 Nick Clifton <nickc@redhat.com> 510 511 PR 7027 512 * elfxx-sparc.c (_bfd_sparc_elf_check_relocs): Treat WPLT30 relocs 513 against local symbols in 64-bit binaries as if they were WDISP30 514 relocs. 515 (_bfd_sparc_elf_relocate_section): Likewise. 516 5172008-11-18 Catherine Moore <clm@codesourcery.com> 518 519 * elf32-arm.c (elf32_arm_merge_eabi_attributes): Merge 520 half-precision attributes. 521 (elf32_arm_copy_one_eabi_other_attribute): New. 522 (elf32_arm_copy_other_attribute_list): New. 523 5242008-11-18 Nick Clifton <nickc@redhat.com> 525 526 * dwarf2.c (read_section): Fix formatting. 527 (read_n_bytes): Remove unhelpful comment. 528 (read_indirect_string): Pass symbol table to read_section in case 529 the .debug_str section needs relocating. 530 531 PR 7037 532 * elf32-cr16.c (cr16_elf_howto_table): Zero the src_mask field of 533 the reloc descriptions. 534 5352008-11-14 Eric B. Weddington <eric.weddington@atmel.com> 536 537 PR 7022 538 * elf32-avr.c (bfd_elf_avr_final_write_processing): 539 Add missing break statements. 540 5412008-11-14 Bob Wilson <bob.wilson@acm.org> 542 543 * xtensa-modules.c (xtensa_state_id): New enum, replacing STATE macros. 544 (xtensa_field_id, xtensa_regfile_id, xtensa_operand_id) 545 (xtensa_iclass_id, xtensa_opcode_id): New enums. 546 Replace hardcoded constants throughout this file with enum values. 547 5482008-11-14 Nathan Sidwell <nathan@codesourcery.com> 549 550 * elf.c (assign_file_positions_for_load_sections): Use header_size 551 to avoid moving the load address of file headers. 552 (assign_file_positions_for_load_sections): Set header_size for 553 segments containing the file header. 554 5552008-11-14 Tristan Gingold <gingold@adacore.com> 556 557 * configure.com: Handle bfd_default_target_size, BFD_HOST_LONG_LONG, 558 BFD_HOST_64BIT_LONG_LONG, BFD_HOSTPTR_T, bfd_file_ptr. 559 Generate bfdver.h. 560 * vms-hdr.c (_bfd_vms_write_hdr): Use strdup/free instead of alloca. 561 * hosts/alphavms.h: Defines macros to bypass i18n. 562 * makefile.vms (OBJS): Update file list. 563 (DEFS): Remove VMS_DEBUG, const, add DEBUGDIR. 564 (CFLAGS): Update flags. 565 * bfdio.c (real_fopen): Add code specific to VMS: extract attributes 566 from modes. 567 5682008-11-13 Joel Brobecker <brobecker@adacore.com> 569 570 * configure.in: Deactivate large-file support on native 32bit 571 sparc-solaris unless the user explicitly requested it. 572 * configure: Regenerate. 573 5742008-11-13 Hans-Peter Nilsson <hp@axis.com> 575 576 PR ld/7028 577 * elf.c (assign_file_positions_for_load_sections): Allocate phrds 578 with bfd_zalloc2 instead of bfd_alloc2. For the amount, use 579 the possibly-preset header-size, not the computed one. 580 5812008-11-13 Alan Modra <amodra@bigpond.net.au> 582 583 PR 7023 584 * elf.c (bfd_section_from_shdr <SHT_SYMTAB>): Fail on invalid sh_info. 585 5862008-11-11 Alan Modra <amodra@bigpond.net.au> 587 588 * elf.c (assign_file_positions_for_non_load_sections): Consolidate 589 PT_GNU_RELRO handling. 590 5912008-11-11 Alan Modra <amodra@bigpond.net.au> 592 593 PR 7012 594 * dwarf2.c (find_line): Don't keep stale pointers into realloc'd 595 memory. Return on errors. Fix memory leak. 596 (_bfd_dwarf2_cleanup_debug_info): Free dwarf_str_buffer. 597 5982008-11-10 Andreas Schwab <schwab@suse.de> 599 600 PR 7011 601 * elf.c (assign_file_positions_for_non_load_sections): Handle 602 PT_GNU_RELRO specially. 603 6042008-11-06 Joel Sherrill <joel.sherrill@oarcorp.com> 605 606 * config.bfd: Add m32c-*-rtems* and m32r-*-rtems*. 607 6082008-11-06 Tom Tromey <tromey@redhat.com> 609 610 * configure, config.in: Rebuild. 611 * configure.in: Check for fileno. 612 * bfdio.c (close_on_exec): New function. 613 (real_fopen): Use it. 614 (FD_CLOEXEC): New define. 615 6162008-11-06 Tristan Gingold <gingold@adacore.com> 617 618 * mach-o.h (BFD_MACH_O_NO_SECT): Add; reorders the macros. 619 (BFD_MACH_O_SYM_NTYPE, BFD_MACH_O_SYM_NSECT, 620 BFD_MACH_O_SYM_NDESC): New macros. 621 (bfd_mach_o_i386_thread_flavour): Define according to the latest 622 definition from system header. 623 (bfd_mach_o_load_command_type): Add BFD_MACH_O_LC_RPATH, 624 BFD_MACH_O_LC_CODE_SIGNATURE. 625 (BFD_MACH_O_SECTION_TYPE_MASK, BFD_MACH_O_SECTION_ATTRIBUTES_MASK, 626 BFD_MACH_O_SECTION_ATTRIBUTES_SYS, BFD_MACH_O_SECTION_ATTRIBUTES_USR, 627 BFD_MACH_O_S_ATTR_LOC_RELOC, BFD_MACH_O_S_ATTR_EXT_RELOC, 628 BFD_MACH_O_S_ATTR_SOME_INSTRUCTIONS, BFD_MACH_O_S_ATTR_DEBUG, 629 BFD_MACH_O_S_ATTR_PURE_INSTRUCTIONS): Add. 630 (bfd_mach_o_segment_command): Add room for a nul terminator in 631 segname field. 632 (BFD_MACH_O_PROT_READ, BFD_MACH_O_PROT_WRITE, 633 BFD_MACH_O_PROT_EXECUTE): Add. 634 (INDIRECT_SYMBOL_LOCAL): Renames to BFD_MACH_O_INDIRECT_SYMBOL_LOCAL. 635 (INDIRECT_SYMBOL_ABS): Renames to BFD_MACH_O_INDIRECT_SYMBOL_ABS. 636 (bfd_mach_o_uuid_command): Add the structure. 637 (bfd_mach_o_load_command): Add uuid field. 638 (bfd_get_mach_o_data): New macro. 639 * mach-o.c (bfd_mach_o_bfd_print_private_bfd_data): New function which 640 replaces the macro. 641 (SECTION_TYPE, SECTION_ATTRIBUTES, SECTION_ATTRIBUTES_USR, 642 S_ATTR_PURE_INSTRUCTIONS, SECTION_ATTRIBUTES_SYS, 643 S_ATTR_SOME_INSTRUCTIONS, S_ATTR_EXT_RELOC, S_ATTR_LOC_RELOC): Renamed 644 and moved to mach-o.h. 645 (N_STAB, N_TYPE, N_EXT, N_UNDF, N_ABS, N_TEXT, N_DATA, N_BSS, 646 N_SECT, N_INDR): Removed as they duplicated macros in mach-o.h. 647 (bfd_mach_o_print_symbol): Print much more details. 648 (bfd_mach_o_make_bfd_section): Add prot argument, use canonical 649 dwarf name for dwarf sections. Precisely set section flags. 650 (bfd_mach_o_scan_read_section_32): Add prot argument. 651 (bfd_mach_o_scan_read_section_64): Ditto. 652 (bfd_mach_o_scan_read_section): Ditto. 653 (bfd_mach_o_scan_read_symtab_symbol): Set section for debugging 654 stabs, set BSF_GLOBAL and LOCAL flags correctly. Fix section 655 for N_SECT symbols. 656 (bfd_mach_o_i386_flavour_string): Reindent and adjust for new 657 names. 658 (bfd_mach_o_scan_read_symtab): Set HAS_SYMS flags on bfd if there 659 are symbols. 660 (bfd_mach_o_scan_read_uuid): New function. 661 (bfd_mach_o_scan_read_segment): Add a trailing nul. Segments 662 flags are now simply HAS_CONTENTS. Pass protection to 663 bfd_mach_o_scan_read_section. 664 (bfd_mach_o_scan_read_command): Decode UUID command. 665 (bfd_mach_o_flatten_sections): Add comments. Fix flavour names. 666 (bfd_mach_o_scan): Set flags according to file type. 667 (mach_o_fat_archentry): Remove abfd field. 668 (bfd_mach_o_archive_p): Remove initialization of abfd field. 669 (bfd_mach_o_openr_next_archived_file): Find previous archive 670 by position and not by bfd (as former bfds may have been freed). 671 Give architecture name to archived file. 672 * mach-o-target.c (TARGET_NAME): Use generic archive for non fat 673 targets. 674 6752008-10-30 Jay Krell <jay.krell@cornell.edu> 676 677 * cache.c (cache_bread): Cast void * pointer before performing 678 arithmetic on it. 679 6802008-10-20 Alan Modra <amodra@bigpond.net.au> 681 682 * elf64-ppc.c (ppc64_elf_process_dot_syms): Renamed from 683 ppc64_elf_check_directives. 684 * elf32-sh-symbian.c (sh_symbian_process_directives): Combine.. 685 (sh_symbian_check_directives): ..this 686 (bfd_elf32_sh_symbian_process_directives) ..and this function. 687 6882008-10-20 Alan Modra <amodra@bigpond.net.au> 689 690 * elflink.c (bfd_elf_final_link): Move code reading relocs to.. 691 * elf32-spu.c (spu_elf_count_relocs): ..here. Adjust params. 692 * elf-bfd.h (struct elf_backend_data): Update elf_backend_count_relocs 693 params. 694 6952008-10-20 Alan Modra <amodra@bigpond.net.au> 696 697 * elflink.c (bfd_elf_final_link): Use d_ptr rather than d_val 698 where Elf_Internal_Dyn holds an address. 699 7002008-10-10 Nathan Froyd <froydnj@codesourcery.com> 701 702 * elf32-ppc.c (ppc_elf_merge_obj_attributes): Merge 703 Tag_GNU_Power_ABI_Struct_Return. 704 7052008-10-09 Kai Tietz <kai.tietz@onevision.com> 706 707 * cofflink.c (_bfd_coff_generic_relocate_section): Dump bfd_vma 708 sized addresses instead of long sized. 709 7102008-10-09 Alan Modra <amodra@bigpond.net.au> 711 712 * elf64-ppc.c (ppc64_elf_get_synthetic_symtab): Don't attempt to 713 read plt relocs if no dynamic syms. 714 7152008-10-08 Nick Clifton <nickc@redhat.com> 716 717 * configure.in (ALL_LINGUAS): Add "id". 718 * configure: Regenerate. 719 * po/id.po: New Indonesian translation. 720 7212008-10-08 Alan Modra <amodra@bigpond.net.au> 722 723 * elf.c (assign_file_positions_for_load_sections): When checking 724 a segment for contents, don't assume that a non-TLS nobits section 725 must only be followed by nobits sections. 726 7272008-10-04 Hans-Peter Nilsson <hp@axis.com> 728 729 * elf32-cris.c (TLSHOWTO32, TLSHOWTO16): New macros. 730 (cris_elf_howto_table): Add entries for R_CRIS_32_GOT_GD, 731 R_CRIS_16_GOT_GD, R_CRIS_32_GD, R_CRIS_DTP, R_CRIS_32_DTPREL, 732 R_CRIS_16_DTPREL, R_CRIS_DTPMOD, R_CRIS_32_GOT_TPREL, 733 R_CRIS_16_GOT_TPREL, R_CRIS_32_TPREL, R_CRIS_16_TPREL. 734 (cris_reloc_map): Similarly. 735 * reloc.c (bfd_reloc_code_type): Add entries for 736 BFD_RELOC_CRIS_32_GOT_GD, BFD_RELOC_CRIS_16_GOT_GD, 737 BFD_RELOC_CRIS_32_GD, BFD_RELOC_CRIS_DTP, 738 BFD_RELOC_CRIS_32_DTPREL, BFD_RELOC_CRIS_16_DTPREL, 739 BFD_RELOC_CRIS_DTPMOD, BFD_RELOC_CRIS_32_GOT_TPREL, 740 BFD_RELOC_CRIS_16_GOT_TPREL, BFD_RELOC_CRIS_32_TPREL, 741 BFD_RELOC_CRIS_16_TPREL. 742 * libbfd.h, bfd-in2.h: Regenerate. 743 7442008-10-03 Alan Modra <amodra@bigpond.net.au> 745 746 PR 6931 747 * elf.c (bfd_elf_set_group_contents): Assign sh_info for ld -r when 748 the signature symbol is global. 749 * elflink.c (elf_link_input_bfd): Ensure group signature symbol 750 is output when ld -r. Set group sh_info when local. 751 * linker.c (default_indirect_link_order): Handle group sections 752 specially. 753 7542008-09-30 Wesley W. Terpstra <wesley@terpstra.ca> 755 Nick Clifton <nickc@redhat.com> 756 757 * coffgen.c (coff_write_symbols): Check to see if a symbol's flags 758 do not match it class and if necessary update the class. 759 (null_error_handler): New function. Suppresses the generation of 760 bfd error messages. 761 * coff64-rs6000.c (bfd_xcoff_backend_data): Update comment. 762 7632008-09-30 Alan Modra <amodra@bigpond.net.au> 764 765 * Makefile.am: Run "make dep-am". 766 * Makefile.in: Regenerate. 767 7682008-09-30 Alan Modra <amodra@bigpond.net.au> 769 770 * elflink.c (elf_link_add_object_symbols): Don't ignore returned 771 value of check_directives. 772 7732008-09-29 Peter O'Gorman <pogma@thewrittenword.com> 774 Steve Ellcey <sje@cup.hp.com> 775 776 * configure: Regenerate for new libtool. 777 * aclocal.m4: Ditto. 778 * Makefile.in: Ditto. 779 * doc/Makefile.in: Ditto. 780 7812008-09-29 Alan Modra <amodra@bigpond.net.au> 782 783 PR 6789 784 * elf.c (assign_file_positions_for_load_sections): Call 785 _bfd_elf_map_sections_to_segments, not elf_modify_segment_map. 786 (get_program_header_size): Protect against NULL info. 787 (_bfd_elf_map_sections_to_segments): Likewise. 788 * elf32-spu.c (spu_elf_additional_program_headers): Likewise. 789 7902008-09-29 Nick Clifton <nickc@redhat.com> 791 792 * po/vi.po: Updated Vietnamese translation. 793 7942008-09-28 Alan Modra <amodra@bigpond.net.au> 795 796 * elf.c (_bfd_elf_init_private_section_data): Tweak union copy. 797 (bfd_section_from_shdr): Don't change SHT_GROUP section name. 798 * elflink.c (section_signature): New function. 799 (_bfd_elf_section_already_linked): Use it. 800 8012008-09-19 Alan Modra <amodra@bigpond.net.au> 802 803 * elf32-ppc.c (ppc_elf_finish_dynamic_sections): Handle vxworks 804 _GLOBAL_OFFSET_TABLE_ in .got.plt section. Add BFD_ASSERTs. 805 8062008-09-17 Bob Wilson <bob.wilson@acm.org> 807 808 * elf32-xtensa.c (elf_xtensa_check_relocs): Check for negative 809 refcount. 810 8112008-09-17 Jan Kratochvil <jan.kratochvil@redhat.com> 812 813 PR 6893 - Do not consider FDEs for discarded sections as invalid. 814 * elf-eh-frame.c (_bfd_elf_parse_eh_frame): New REQUIRE_CLEARED_RELOCS. 815 Consider FDEs with cleared relocations as valid and ignorable. 816 8172008-09-16 H.J. Lu <hongjiu.lu@intel.com> 818 819 PR ld/6877 820 * elflink.c (_bfd_elf_merge_symbol): Allow a common symbol to 821 override the function in a shared library. 822 8232008-09-16 Alan Modra <amodra@bigpond.net.au> 824 825 PR 6844 826 * elf32-ppc.c (SYM_VAL): Define. Use throughout to find symbol vma. 827 (ppc_elf_relocate_section): Correct GOT offset calculation. 828 (ppc_elf_finish_dynamic_symbol): Use PPC_HA and PPC_LO. 829 (ppc_elf_finish_dynamic_sections): Likewise. Error if 830 htab->elf.hgot symbol is not defined in htab->got section. 831 8322008-09-16 Alan Modra <amodra@bigpond.net.au> 833 834 PR 6888 835 * elf32-ppc.c (ppc_elf_relocate_section): Handle NULL symbol section 836 on R_PPC_TOC16, R_PPC_SDAREL16, R_PPC_EMB_SDA2REL, R_PPC_EMB_SDA21, 837 R_PPC_EMB_RELSDA, R_PPC_SECTOFF* relocs. 838 8392008-09-11 Jan Kratochvil <jan.kratochvil@redhat.com> 840 841 Fix loading large elf64 binaries on 32bit hosts. 842 * configure.in: Call AC_SYS_LARGEFILE. 843 * config.in: Regenerate. 844 * configure: Regenerate. 845 8462008-09-08 Tom Tromey <tromey@redhat.com> 847 848 * elfxx-mips.c (mips16_stub_symndx) <sec>: Mark argument as 849 unused. 850 8512008-09-08 H.J. Lu <hongjiu.lu@intel.com> 852 Daniel Jacobowitz <dan@codesourcery.com> 853 854 PR ld/3191 855 * dwarf2.c (struct adjusted_section): Renamed from struct 856 loadable_section. 857 (struct dwarf2_debug): Adjust for renaming. Add version field. 858 (read_attribute_value): Correctly handle DW_FORM_ref_addr for 859 DWARF3. 860 (find_abstract_instance_name): Pass a pointer to 861 attribute instead of offset. For DW_FORM_ref_addr, get the 862 entry at the offset from the .debug_info section. 863 (scan_unit_for_symbols): Update. 864 (parse_comp_unit): Allow DWARF3. Save the version. 865 (unset_sections): Update for renaming. 866 (place_sections): Likewise. Set new VMAs for DWARF sections 867 also. 868 8692008-09-08 Tristan Gingold <gingold@adacore.com> 870 871 * configure.in: Update version to 2.19.50 872 * configure: Regenerated. 873 8742008-09-05 Daniel Jacobowitz <dan@codesourcery.com> 875 876 * dwarf2.c: Change leading whitespace to tabs. 877 8782008-09-05 Tristan Gingold <gingold@adacore.com> 879 880 Add MacOSX 64 bits support. 881 * mach-o.h (bfd_mach_o_ppc_thread_flavour): Add 882 BFD_MACH_O_PPC_THREAD_STATE_64. 883 (bfd_mach_o_i386_thread_flavour): Add BFD_MACH_O_x86_THREAD_STATE64, 884 BFD_MACH_O_x86_FLOAT_STATE64, BFD_MACH_O_x86_EXCEPTION_STATE64, 885 BFD_MACH_O_x86_THREAD_STATE, BFD_MACH_O_x86_FLOAT_STATE, 886 BFD_MACH_O_x86_EXCEPTION_STATE. 887 (bfd_mach_o_load_command_type): Add 888 BFD_MACH_O_LC_SEGMENT_64, BFD_MACH_O_LC_ROUTINES_64, 889 BFD_MACH_O_LC_UUID. 890 (BFD_MACH_O_CPU_IS64BIT): Added. 891 (bfd_mach_o_cpu_type): Add BFD_MACH_O_CPU_TYPE_POWERPC_64, 892 BFD_MACH_O_CPU_TYPE_X86_64. 893 (bfd_mach_o_header): Add version field. 894 (bfd_mach_o_section) Add reserved3 field. 895 (bfd_mach_o_segment_command): Add initprot and maxprot fields. 896 897 * mach-o.c (N_TEXT, N_DATA, N_BSS): Added. 898 (bfd_mach_o_version): New function. 899 (bfd_mach_o_valid): Handle 64bits cpus. 900 (bfd_mach_o_write_header): handler 64bits headers. 901 (bfd_mach_o_scan_write_section_32, bfd_mach_o_scan_write_section_64): 902 New functions (from bfd_mach_o_scan_write_section) to handle both 903 flavors. 904 (bfd_mach_o_scan_write_segment): Parameter wide added to support 905 both flavors. 906 (bfd_mach_o_write_contents): Support both flavors. 907 (bfd_mach_o_read_header): Ditto. 908 (bfd_mach_o_scan_read_section_32, bfd_mach_o_scan_read_section_64): 909 New functions (from bfd_mach_o_scan_read_section) to support both 910 flavors. 911 (bfd_mach_o_scan_read_symtab_symbol): Support both flavors. 912 (bfd_mach_o_scan_read_symtab): Ditto. 913 (bfd_mach_o_scan_read_segment): Parameter wide added to support 914 both flavors. 915 (bfd_mach_o_scan_read_segment_32, bfd_mach_o_scan_read_segment_64): 916 New functions to call bfd_mach_o_scan_read_segment. 917 (bfd_mach_o_flatten_sections): Support both flavors. 918 (bfd_mach_o_scan_start_address): Ditto. 919 (bfd_mach_o_scan): Ditto. 920 (bfd_mach_o_lookup_section): Ditto. 921 9222008-08-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 923 924 * elf-hppa.h (elf_hppa_reloc_final_type): Handle R_PARISC_GPREL64, 925 R_PARISC_SEGREL32 and R_PARISC_SEGREL64. 926 * som.c (som_fixup_formats): Add R_DATA_GPREL fixup. 927 (som_hppa_howto_table): Likewise. 928 (hppa_som_gen_reloc_type): In case R_HPPA_GOTOFF, detect R_DATA_GPREL 929 final type. 930 (som_write_fixups): Handle R_DATA_GPREL. 931 9322008-08-26 Nick Clifton <nickc@redhat.com> 933 934 * elf32-arm.c: Fix up comment describing Thumb to ARM interworking 935 stub. 936 9372008-08-25 Christophe Lyon <christophe.lyon@st.com> 938 939 * elf32-arm.c (arm_thumb_arm_v4t_short_branch_stub): Define. 940 (elf32_arm_stub_type): Add arm_thumb_arm_v4t_stub_short_branch. 941 (arm_type_of_stub): Handle armv4t short branches. Update 942 prototype. 943 (arm_stub_is_thumb): Handle arm_thumb_arm_v4t_stub_short_branch. 944 (arm_build_one_stub): Likewise. 945 (arm_size_one_stub): Likewise. 946 (elf32_arm_size_stubs): Use new arm_type_of_stub prototype. 947 (arm_map_one_stub): Handle arm_thumb_arm_v4t_stub_short_branch. 948 9492008-08-24 Andreas Schwab <schwab@suse.de> 950 951 * elf-eh-frame.c (_bfd_elf_write_section_eh_frame): Do proper 952 extension when calculating difference of offsets. 953 9542008-08-24 Alan Modra <amodra@bigpond.net.au> 955 956 * configure.in: Update a number of obsolete autoconf macros. 957 * aclocal.m4: Regenerate. 958 9592008-08-23 Andreas Schwab <schwab@suse.de> 960 961 * opncls.c (find_separate_debug_file): Use the canonical 962 absolute name of the bfd object for finding the debug file in 963 the global debugfile directory. 964 9652008-08-22 Jakub Jelinek <jakub@redhat.com> 966 967 Fix PR ld/3290 regression for cross-files DW_FORM_ref_addr relocations. 968 * elflink.c (elf_link_add_object_symbols): Make debug symbols local 969 now only for non-RELOCATABLE targets. 970 9712008-08-20 Bob Wilson <bob.wilson@acm.org> 972 973 * elf-bfd.h (elf_object_id): Add XTENSA_ELF_TDATA. 974 * elf32-xtensa.c (elf_howto_table): Add TLS relocations. 975 (elf_xtensa_reloc_type_lookup): Likewise. 976 (TCB_SIZE): Define. 977 (elf_xtensa_link_hash_entry): New. 978 (GOT_UNKNOWN, GOT_NORMAL, GOT_TLS_GD, GOT_TLS_IE, GOT_TLS_ANY): Define. 979 (elf_xtensa_hash_entry): Define. 980 (elf_xtensa_obj_tdata): New. 981 (elf_xtensa_tdata): Define. 982 (elf_xtensa_local_got_tls_type): Define. 983 (elf_xtensa_local_tlsfunc_refcounts): Define. 984 (is_xtensa_elf): Define. 985 (elf_xtensa_mkobject): New. 986 (elf_xtensa_link_hash_table): Add tlsbase field. 987 (elf_xtensa_link_hash_newfunc): New. 988 (elf_xtensa_link_hash_table_create): Use elf_xtensa_link_hash_newfunc. 989 Create an entry for "_TLS_MODULE_BASE_" and save it in tlsbase field. 990 (elf_xtensa_copy_indirect_symbol): New. 991 (elf_xtensa_check_relocs): Rewrite to handle TLS relocations. 992 (elf_xtensa_gc_sweep_hook): Likewise. 993 (elf_xtensa_allocate_dynrelocs): Optimize away GOT entries for 994 TLSDESC_FN relocations when an IE reference is seen. 995 (elf_xtensa_allocate_local_got_size): Likewise. 996 (elf_xtensa_always_size_sections): New. 997 (dtpoff_base, tpoff): New. 998 (elf_xtensa_do_reloc): Handle TLS relocations. 999 (replace_tls_insn): New. 1000 (IS_XTENSA_TLS_RELOC): Define. 1001 (elf_xtensa_relocate_section): Handle TLS relocations. 1002 (get_indirect_call_dest_reg): New. 1003 (bfd_elf32_mkobject): Define. 1004 (elf_backend_always_size_sections): New. 1005 (elf_backend_copy_indirect_symbol): New. 1006 * reloc.c (BFD_RELOC_XTENSA_TLSDESC_FN, BFD_RELOC_XTENSA_TLSDESC_ARG) 1007 (BFD_RELOC_XTENSA_TLS_DTPOFF, BFD_RELOC_XTENSA_TLS_TPOFF) 1008 (BFD_RELOC_XTENSA_TLS_FUNC, BFD_RELOC_XTENSA_TLS_ARG) 1009 (BFD_RELOC_XTENSA_TLS_CALL): New. 1010 * bfd-in2.h: Regenerate. 1011 * libbfd.h: Regenerate. 1012 10132008-08-18 Richard Sandiford <rdsandiford@googlemail.com> 1014 1015 * elfxx-mips.c (_bfd_mips_elf_copy_indirect_symbol): Copy MIPS16 1016 stub information. 1017 10182008-08-17 Nick Clifton <nickc@redhat.com> 1019 1020 * elf32-arm.c: Tidy up the code. 1021 (bfd_elf32_arm_allocate_interworking_sections): Move common code 1022 into... 1023 (arm_allocate_glue_section_space): ... New function. 1024 (bfd_elf32_arm_add_glue_sections_to_bfd): Move common code 1025 into... 1026 (arm_make_glue_section): ... New function. 1027 1028 * elfxx-mips.c (_bfd_mips_elf_check_relocs): Handle the situation 1029 where the sym_hashes are not available. 1030 10312008-08-17 Alan Modra <amodra@bigpond.net.au> 1032 1033 * bfd.c (struct _bfd): Correct outsymbols comment. 1034 * bfd-in2.h: Regenerate. 1035 * linker.c (bfd_generic_link_read_symbols): Renamed from.. 1036 (generic_link_read_symbols): ..this, and made global. 1037 10382008-08-15 Alan Modra <amodra@bigpond.net.au> 1039 1040 PR 6526 1041 * configure.in: Invoke AC_USE_SYSTEM_EXTENSIONS. 1042 * Makefile.in: Regenerate. 1043 * aclocal.m4: Regenerate. 1044 * config.in: Regenerate. 1045 * configure: Regenerate. 1046 10472008-08-14 Jaka Močnik <jaka@xlab.si> 1048 1049 * coffgen.c (coff_find_nearest_line): Correct cached line index. 1050 10512008-08-12 Alan Modra <amodra@bigpond.net.au> 1052 1053 * elf32-ppc.c (allocate_dynrelocs): Ignore dyn_relocs when 1054 !dynamic_sections_created. Don't make symbols with got 1055 references dynamic if !dynamic_sections_created. 1056 * elf64-ppc.c (allocate_dynrelocs): Likewise. Alloc dynamic 1057 relocs on undefined symbols. 1058 (ppc64_elf_relocate_section): Allow dynamic relocs on 1059 undefined symbols. 1060 10612008-08-11 Alan Modra <amodra@bigpond.net.au> 1062 1063 * elf64-ppc.c (toc_adjusting_stub_needed): Any call via the plt 1064 needs r2 valid, not just those to external syms. 1065 10662008-08-09 Pedro Alves <pedro@codesourcery.com> 1067 1068 * archive.c (_bfd_archive_bsd_update_armap_timestamp): Cast stat 1069 st_mtime to long before comparison. 1070 10712008-08-08 Anatoly Sokolov <aesok@post.ru> 1072 1073 * archures.c (bfd_mach_avr25, bfd_mach_avr31, bfd_mach_avr35, 1074 bfd_mach_avr51): New. 1075 * bfd-in2.h: Regenerate. 1076 * cpu-avr.c (arch_info_struct): Add avr25, avr31, avr35, and avr51 1077 architectures. Change comments to match architecture comments in GCC. 1078 (compatible): Add test for new AVR architectures. 1079 * elf32-avr.c (bfd_elf_avr_final_write_processing): Recognize 1080 bfd_mach_avr25, bfd_mach_avr31, bfd_mach_avr35 and bfd_mach_avr51. 1081 (elf32_avr_object_p): Recognize E_AVR_MACH_AVR25, E_AVR_MACH_AVR31, 1082 E_AVR_MACH_AVR35 and E_AVR_MACH_AVR51. 1083 1084 10852008-08-08 Richard Sandiford <rdsandiford@googlemail.com> 1086 Daniel Jacobowitz <dan@codesourcery.com> 1087 Catherine Moore <clm@codesourcery.com> 1088 Mark Shinwell <shinwell@codesourcery.com> 1089 Maxim Kuvyrkov <maxim@codesourcery.com> 1090 1091 * elf32-mips.c (mips_vxworks_copy_howto_rela): Replace with... 1092 (elf_mips_copy_howto): ...this howto. Clear the size fields. 1093 (mips_vxworks_jump_slot_howto_rela): Replace with... 1094 (elf_mips_jump_slot_howto): ...this howto. 1095 (bfd_elf32_bfd_reloc_type_lookup): Handle BFD_RELOC_MIPS_COPY 1096 and BFD_RELOC_MIPS_JUMP_SLOT. 1097 (bfd_elf32_bfd_reloc_name_lookup): Handle "R_MIPS_COPY" and 1098 "R_MIPS_JUMP_SLOT". 1099 (mips_elf32_rtype_to_howto): Handle R_MIPS_COPY and R_MIPS_JUMP_SLOT. 1100 (elf_backend_plt_readonly): Define. 1101 (elf_backend_plt_sym_val): Define for non-VxWorks targets. 1102 (mips_vxworks_bfd_reloc_type_lookup): Delete. 1103 (mips_vxworks_bfd_reloc_name_lookup): Likewise. 1104 (mips_vxworks_rtype_to_howto): Likewise. 1105 (elf_backend_want_dynbss): Don't define for VxWorks. 1106 (elf_backend_plt_readonly): Likewise. 1107 (bfd_elf32_bfd_reloc_type_lookup): Likewise. 1108 (bfd_elf32_bfd_reloc_name_lookup): Likewise. 1109 (elf_backend_mips_rtype_to_howto): Likewise. 1110 (elf_backend_adjust_dynamic_symbol): Likewise. 1111 (elf_backend_got_symbol_offset): Don't define. 1112 * elfn32-mips.c (elf_mips_copy_howto, elf_mips_jump_slot_howto): New. 1113 (bfd_elf32_bfd_reloc_type_lookup): Handle BFD_RELOC_MIPS_COPY 1114 and BFD_RELOC_MIPS_JUMP_SLOT. 1115 (bfd_elf32_bfd_reloc_name_lookup): Handle "R_MIPS_COPY" and 1116 "R_MIPS_JUMP_SLOT". 1117 (mips_elf32_n32_rtype_to_howto): Handle R_MIPS_COPY and 1118 R_MIPS_JUMP_SLOT. 1119 (elf_backend_rela_plts_and_copies_p, elf_backend_plt_readonly) 1120 (elf_backend_plt_sym_val): Define. 1121 * elf64-mips.c (elf_mips_copy_howto, elf_mips_jump_slot_howto): New. 1122 (bfd_elf64_bfd_reloc_type_lookup): Handle BFD_RELOC_MIPS_COPY 1123 and BFD_RELOC_MIPS_JUMP_SLOT. 1124 (bfd_elf64_bfd_reloc_name_lookup): Handle "R_MIPS_COPY" and 1125 "R_MIPS_JUMP_SLOT". 1126 (mips_elf64_rtype_to_howto): Handle R_MIPS_COPY and R_MIPS_JUMP_SLOT. 1127 (elf_backend_rela_plts_and_copies_p, elf_backend_plt_readonly) 1128 (elf_backend_plt_sym_val): Define. 1129 * elfxx-mips.h (_bfd_mips_vxworks_adjust_dynamic_symbol): Delete. 1130 (_bfd_mips_elf_use_plts_and_copy_relocs, _bfd_mips_elf_init_stubs) 1131 (_bfd_mips_elf_plt_sym_val, _bfd_mips_post_process_headers): Declare. 1132 * elfxx-mips.c (mips_elf_la25_stub): New structure. 1133 (LA25_LUI, LA25_J, LA25_ADDIU): New macros. 1134 (mips_elf_link_hash_entry): Add "la25_stubs", "has_static_relocs" 1135 and "has_nonpic_branches" fields. Remove "is_relocation_target" and 1136 "is_branch_target". 1137 (mips_elf_link_hash_table): Add blank lines. Add 1138 "use_plts_and_copy_relocs", "reserved_gotno", "strampoline", 1139 "la25_stubs" and "add_stub_section" fields. 1140 (mips_htab_traverse_info): New structure. 1141 (PIC_OBJECT_P, MIPS_ELF_LOAD_WORD): New macros. 1142 (MIPS_RESERVED_GOTNO): Delete. 1143 (mips_o32_exec_plt0_entry, mips_n32_exec_plt0_entry) 1144 (mips_n64_exec_plt0_entry, mips_exec_plt_entry): New tables. 1145 (mips_elf_link_hash_newfunc): Update after the changes to 1146 mips_elf_link_hash_entry. 1147 (mips_elf_check_mips16_stubs): Replace the DATA parameter with 1148 an INFO parameter. Don't look through warnings symbols here; 1149 do it in mips_elf_check_symbols instead. 1150 (mips_elf_create_stub_symbol): New function. 1151 (mips_elf_la25_stub_hash, mips_elf_la25_stub_eq): New functions. 1152 (_bfd_mips_elf_init_stubs, mips_elf_local_pic_function_p): Likewise. 1153 (mips_elf_add_la25_intro, mips_elf_add_la25_trampoline): Likewise. 1154 (mips_elf_add_la25_stub, mips_elf_check_symbols): New functions. 1155 (mips_elf_gotplt_index): Check for VxWorks. 1156 (mips_elf_output_dynamic_relocation): Take the relocation index 1157 as an extra parameter. Do not increment reloc_count here. 1158 (mips_elf_initialize_tls_slots): Update the calls to 1159 mips_elf_output_dynamic_relocation accordingly. 1160 (mips_elf_multi_got): Use htab->reserved_gotno instead of 1161 MIPS_RESERVED_GOTNO. 1162 (mips_elf_create_got_section): Don't allocate reserved GOT 1163 entries here. Unconditionally create .got.plt, but don't 1164 set its alignment here. 1165 (mips_elf_relocation_needs_la25_stub): New function. 1166 (mips_elf_calculate_relocation): Redirect branches and jumps to 1167 a non-PIC stub if one exists. Check !h->has_static_relocs instead 1168 of !htab->is_vxworks when deciding whether to create dynamic 1169 relocations for R_MIPS_32, R_MIPS_REL32 and R_MIPS_64. 1170 (_bfd_mips_elf_create_dynamic_sections): Unconditionally call 1171 _bfd_elf_create_dynamic_sections. Unconditionally set up 1172 htab->splt and htab->sdynbss. Set htab->srelplt to ".rel.plt" 1173 if !htab->is_vxworks. Add non-VxWorks values of 1174 htab->plt_header_size and htab->plt_entry_size. 1175 (_bfd_mips_elf_check_relocs): Set pointer_equality_needed for 1176 non-branch static relocations. Set has_nonpic_branches when an la25 1177 stub might be required. Set can_make_dynamic_p to TRUE if R_MIPS_32, 1178 R_MIPS_REL32 and R_MIPS_64 relocations can be made dynamic, 1179 rather than duplicating the condition. Do not make them dynamic 1180 for read-only sections in non-PIC executable objects. 1181 Do not protect this code with dynobj == NULL || htab->sgot == NULL; 1182 handle each group of cases separately. Add a default case that 1183 sets has_static_relocs for non-GOT relocations that cannot be 1184 made dynamic. Don't set is_relocation_target and is_branch_target. 1185 Reject non-PIC static relocations in shared objects. 1186 (_bfd_mips_vxworks_adjust_dynamic_symbol): Fold into... 1187 (_bfd_mips_elf_adjust_dynamic_symbol): ...here, using 1188 htab->use_plts_and_copy_relocs instead of htab->is_vxworks 1189 to select PLT and copy-reloc handling. Set the alignment of 1190 .plt and .got.plt when allocating the first entry. Generalize 1191 code to handle REL as well as RELA sections and 64-bit as well as 1192 32-bit GOT entries. Complain if we find a static-only reloc 1193 against an externally-defined symbol and if we cannot create 1194 dynamic relocations for it. Allocate copy relocs using 1195 mips_elf_allocate_dynamic_relocations on non-VxWorks targets. 1196 Set possibly_dynamic_relocs to 0 when using PLTs or copy relocs. 1197 Skip reserved .got.plt entries. 1198 (_bfd_mips_elf_always_size_sections): Use mips_elf_check_symbols 1199 instead of mips_elf_check_mips16_stubs to process each symbol. 1200 Do the traversal for relocatable objects too. 1201 (mips_elf_lay_out_got): Use htab->reserved_gotno instead of 1202 MIPS_RESERVED_GOTNO. 1203 (_bfd_mips_elf_size_dynamic_sections): Exclude sdynbss if it 1204 is empty. Extend the DT_PLTREL, DT_JMPREL and DT_PLTRELSZ handling 1205 to non-VxWorks targets. Only add DT_REL{,A}, DT_REL{,A}SZ and 1206 DT_REL{,A}ENT if .rel.dyn is nonempty. Create a symbol for the 1207 PLT. Allocate a nop at the end of the PLT. Allocate DT_MIPS_PLTGOT. 1208 (mips_elf_create_la25_stub_info): New function. 1209 (_bfd_mips_elf_finish_dynamic_symbol): Write out PLT entries 1210 and copy relocs where necessary. Check pointer_equality_needed. 1211 (mips_finish_exec_plt): New function. 1212 (_bfd_mips_elf_finish_dynamic_sections): Always set DT_PLTGOT 1213 to the beginning of htab->sgot. Use htab->reserved_gotno instead 1214 of MIPS_RESERVED_GOTNO. Assert htab->use_plts_and_copy_relocs 1215 instead of htab->is_vxworks for DT_PLTREL, DT_PLTRELSZ and DT_JMPREL. 1216 Set DT_PLTREL to DT_REL instead of DT_RELA on non-VxWorks targets. 1217 Use mips_finish_exec_plt to create non-VxWorks PLT headers. Set 1218 DT_MIPS_PLTGOT. 1219 (_bfd_mips_elf_copy_indirect_symbol): Copy has_static_relocs 1220 from the indirect symbol to the direct symbol. Also copy 1221 has_nonpic_branches for indirect symbols. 1222 (_bfd_mips_elf_get_target_dtag): Handle DT_MIPS_PLTGOT and 1223 DT_MIPS_RWPLT. 1224 (_bfd_mips_elf_link_hash_table_create): Initialize the new 1225 mips_elf_link_hash_table fields. 1226 (_bfd_mips_vxworks_link_hash_table_create): Set 1227 use_plts_and_copy_relocs to TRUE. Use TRUE rather than 1 1228 when setting is_vxworks. 1229 (_bfd_mips_elf_use_plts_and_copy_relocs): New function. 1230 (_bfd_mips_elf_final_link): Call mips_elf_create_la25_stub for 1231 each la25_stub. 1232 (_bfd_mips_elf_merge_private_bfd_data): Treat dynamic objects 1233 as PIC. Generalize message about linking PIC and non-PIC. 1234 (_bfd_mips_elf_plt_sym_val, _bfd_mips_post_process_headers): New 1235 functions. 1236 * reloc.c: Update comment near BFD_RELOC_MIPS_JUMP_SLOT. 1237 * bfd-in2.h: Regenerated. 1238 12392008-08-08 Alan Modra <amodra@bigpond.net.au> 1240 1241 * elf.c (bfd_elf_get_elf_syms): Don't leak memory on error. 1242 * elflink.c (_bfd_elf_link_read_relocs): bfd_release on error. 1243 (elf_link_add_object_symbols): Don't leak memory on error. 1244 (bfd_elf_size_dynsym_hash_dynstr): Likewise. 1245 (elf_fixup_link_order): Free sections. 1246 12472008-08-07 Richard Sandiford <rdsandiford@googlemail.com> 1248 1249 * elf-bfd.h (elf_backend_data): Add a "rela_plts_and_copies_p" field. 1250 * elfxx-target.h (elf_backend_rela_plts_and_copies_p): New macro. 1251 (elfNN_bed): Use it. 1252 * elf.c (_bfd_elf_get_synthetic_symtab): Use rela_plts_and_copies_p 1253 instead of default_use_rela_p to choose between ".rel.plt" and 1254 ".rela.plt". 1255 * elflink.c (_bfd_elf_create_dynamic_sections): Use 1256 rela_plts_and_copies_p instead of default_use_rela_p to choose 1257 between ".rel.plt" and ".rela.plt", and between ".rel.bss" and 1258 ".rela.bss". 1259 12602008-08-07 Richard Sandiford <rdsandiford@googlemail.com> 1261 1262 * elf-bfd.h (MIPS_ELF_TDATA): New elf_object_id. 1263 * elf32-mips.c (bfd_elf32_mkobject): Define. 1264 * elf64-mips.c (bfd_elf64_mkobject): Likewise. 1265 * elfn32-mips.c (bfd_elf32_mkobject): Likewise. 1266 * elfxx-mips.h (_bfd_mips_elf_mkobject): Declare. 1267 * elfxx-mips.c (is_mips_elf): New macro. 1268 (_bfd_mips_elf_mkobject): New function. 1269 (_bfd_mips_elf_final_link): Use is_mips_elf. 1270 (_bfd_mips_elf_merge_private_bfd_data): Likewise. 1271 12722008-08-07 Richard Sandiford <rdsandiford@googlemail.com> 1273 1274 * elfxx-mips.c (mips_elf_record_relocs): Defer allocation of a 1275 global GOT entry when deferring allocation of dynamic relocations. 1276 (allocate_dynrelocs): When allocating deferred dynamic relocations, 1277 also do the deferred allocation of a GOT entry. 1278 12792008-08-07 Richard Sandiford <rdsandiford@googlemail.com> 1280 1281 * elfxx-mips.c (mips_got_info): Add a "reloc_only_gotno" field. 1282 (mips_elf_got_section): Delete. 1283 (mips_elf_sort_hash_table): Use g->reloc_only_gotno to decide 1284 how many reloc-only entries there are. 1285 (mips_elf_count_got_symbols): Adjust g->reloc_only_gotno as 1286 well as g->global_gotno. 1287 (mips_elf_make_got_per_bfd): Initialize reloc_only_gotno. 1288 (mips_elf_multi_got): Likewise. Use gg->reloc_only_gotno 1289 rather than gg->assigned_gotno to store the number of 1290 reloc-only GOT entries. 1291 (mips_elf_create_got_section): Remove the MAYBE_EXCLUDE parameter. 1292 Initialize reloc_only_gotno. 1293 (mips_elf_calculate_relocation): Check htab->got_info instead of 1294 dynobj when deciding whether to call mips_elf_adjust_gp, 1295 (_bfd_mips_elf_create_dynamic_sections): Adjust the call 1296 to mips_elf_create_got_section. 1297 (mips_elf_record_relocs): Likewise. Remove redundant 1298 "dynobj == NULL" code. Do not use mips_elf_create_got_section 1299 or mips_elf_record_global_got_symbol for R_MIPS_32, R_MIPS_REL32 1300 and R_MIPS_64; limit global_got_area to GGA_RELOC_ONLY instead. 1301 (_bfd_mips_elf_finish_dynamic_symbol): Use htab->sgot instead 1302 of mips_elf_got_section. 1303 (_bfd_mips_vxworks_finish_dynamic_symbol): Likewise. 1304 (_bfd_mips_elf_finish_dynamic_sections): Likewise. 1305 Move the initial assignment of G to the block that uses it; 1306 it is used for an unrelated purpose later. 1307 13082008-08-07 Richard Sandiford <rdsandiford@googlemail.com> 1309 1310 * elfxx-mips.c (count_section_dynsyms): Move before the new first use. 1311 (mips_elf_sort_hash_table): Take the output bfd as a parameter. 1312 Remove the MAX_LOCAL parameter. Exit early if there are no 1313 dynamic symbols, if there is no dynobj, or if there is no 1314 GOT section. Use count_section_dynsyms instead of MAX_LOCAL. 1315 Assert == rather than <= when checking hsd.max_unref_got_dynindx. 1316 Also assert that g->global_gotno is right. 1317 (mips_elf_count_forced_local_got_symbols): Rename to... 1318 (mips_elf_count_got_symbols): ...and count global GOT entries too. 1319 Set the global_got_area of a forced-local GGA_RELOC_ONLY symbol 1320 to GGA_NONE. 1321 (mips_elf_multi_got): Don't sort the symbol table. 1322 (mips_elf_lay_out_got): Likewise. Use mips_elf_count_got_symbols 1323 to count the number of global GOT entries. 1324 (_bfd_mips_elf_final_link): Unconditionally call 1325 mips_elf_sort_hash_table. 1326 13272008-08-07 Richard Sandiford <rdsandiford@googlemail.com> 1328 1329 * elfxx-mips.c (GGA_NORMAL, GGA_RELOC_ONLY, GGA_NONE): New macros. 1330 (mips_elf_link_hash_entry): Add a "global_got_area" field. 1331 (mips_elf_link_hash_newfunc): Initialize it. 1332 (mips_elf_sort_hash_table_f): Use h->global_got_area instead of 1333 h->root.got.offset. Do not handle forced_local symbols specially. 1334 (mips_elf_record_global_got_symbol): Set h->global_got_area 1335 instead of h->root.got.offset. 1336 (mips_elf_recreate_got): Assert that h->global_got_area == GGA_NONE 1337 for indirect and warning symbols. 1338 (mips_elf_count_forced_local_got_symbols): Change the argument 1339 from a "elf_link_hash_entry" to "mips_elf_link_hash_entry". 1340 Use and set h->global_got_area instead of h->root.got.offset. 1341 Set it to GGA_NONE for all forced-local symbols. 1342 (mips_elf_set_global_got_offset): Set h->global_got_area 1343 instead of h->root.got.offset. Use g->global_got_area instead 1344 of a combination of dynindx, forced_local and tls_type. 1345 (mips_elf_multi_got): Remove disabled code. Pass GGA_* values to 1346 mips_elf_set_global_got_offset. 1347 (mips_elf_lay_out_got): Use mips_elf_link_hash_traverse instead 1348 of elf_link_hash_traverse. 1349 (_bfd_mips_elf_copy_indirect_symbol): Copy the indirect symbol's 1350 global_got_area to the direct symbol if the latter's value is higher. 1351 Set the indirect symbol's area to GGA_NONE. 1352 13532008-08-07 Richard Sandiford <rdsandiford@googlemail.com> 1354 1355 * elf32-mips.c (elf_backend_hide_symbol): Delete. 1356 * elfn32-mips.c (elf_backend_hide_symbol): Likewise. 1357 * elf64-mips.c (elf_backend_hide_symbol): Likewise. 1358 * elfxx-mips.h (elf_backend_hide_symbol): Likewise. 1359 * elfxx-mips.c (mips_elf_link_hash_entry): Remove "forced_local" 1360 and add "needs_lazy_stub". 1361 (mips_elf_link_hash_newfunc): Update accordingly. 1362 (mips_elf_link_hash_table): Remove "computed_got_sizes" and 1363 add "lazy_stub_count". 1364 (_bfd_mips_elf_link_hash_table_create): Update accordingly. 1365 (mips_elf_output_extsym): Use hd->needs_lazy_stub to detect 1366 cases where a lazy stub is being used. 1367 (mips_elf_sort_hash_table_f): Use h->root.forced_local instead 1368 of h->forced_local. 1369 (mips_elf_record_global_got_symbol): Use _bfd_elf_link_hash_hide_symbol 1370 instead of _bfd_mips_elf_hide_symbol. Do not increment local_gotno 1371 here. 1372 (mips_elf_allocate_dynamic_relocations): Move before new first use. 1373 (mips_elf_check_recreate_got, mips_elf_recreate_got): New functions. 1374 (mips_elf_resolve_final_got_entries): Move earlier in file. Make at 1375 most two passes over the hash table. Use mips_elf_check_recreate_got 1376 to see if there are any indirect or warning entries and 1377 mips_elf_recreate_got to create a new GOT without them. 1378 Return a boolean success value. 1379 (mips_elf_count_forced_local_got_entries): New function. 1380 (mips_elf_make_got_per_bfd): Check h->root.forced_local instead of 1381 h->forced_local. 1382 (mips_elf_set_global_got_offset): Likewise. 1383 (mips_elf_set_no_stub): Replace with... 1384 (mips_elf_forbid_lazy_stubs): ...this new function. 1385 (mips_elf_resolve_final_got_entry): Delete. 1386 (mips_elf_multi_got): Fix formatting. Use mips_elf_forbid_lazy_stubs 1387 instead of mips_elf_set_no_stub. Move the code that sets 1388 global offsets and allocates dynamic relocations from the main 1389 _bfd_mips_elf_size_dynamic_sections loop to here. 1390 (_bfd_mips_elf_adjust_dynamic_symbol): Do not allocate room in 1391 .MIPS.stubs here; just set hmips->needs_lazy_stub and increment 1392 htab->lazy_stub_count. 1393 (_bfd_mips_elf_always_size_sections): Move the stub-estimation 1394 code to mips_elf_estimate_stub_size and the GOT-sizing code to 1395 mips_elf_lay_out_got. Do not call these functions here. 1396 (mips_elf_estimate_stub_size): New function, split 1397 out from _bfd_mips_elf_always_size_sections. Call 1398 mips_elf_resolve_final_got_entries earlier. Count the number 1399 of forced-local entries. Do not add stub sizes to loadable_size; 1400 after this patch, the stub sizes are already included in the main 1401 estimate. Allocate dynamic relocations here rather than in the 1402 main _bfd_mips_elf_size_dynamic_sections loop. 1403 (mips_elf_estimate_stub_size): New function, split out from 1404 _bfd_mips_elf_always_size_sections. 1405 (mips_elf_allocate_lazy_stub): New function. 1406 (mips_elf_lay_out_lazy_stubs): Likewise. 1407 (_bfd_mips_elf_size_dynamic_sections): Call mips_elf_estimate_stub_size, 1408 mips_elf_lay_out_got and mips_elf_lay_out_lazy_stubs. Do not handle 1409 the allocation of sreldyn specially. 1410 (_bfd_mips_elf_hide_symbol): Delete. 1411 14122008-08-07 Richard Sandiford <rdsandiford@googlemail.com> 1413 1414 * elfxx-mips.c (allocate_dynrelocs): Ignore indirect and warning 1415 symbols. 1416 14172008-08-06 Richard Sandiford <rdsandiford@googlemail.com> 1418 1419 * elfxx-mips.c (mips_elf_link_hash_entry): Move bfd_boolean 1420 fields to the end of the structure and make them single-bit 1421 bitfields. 1422 (mips_elf_link_hash_newfunc): Make the initialization statements 1423 follow the new field order. 1424 14252008-08-06 Richard Sandiford <rdsandiford@googlemail.com> 1426 1427 * elfxx-mips.c (_mips_elf_section_data): Remove the "u.got_info" field. 1428 (mips_elf_link_hash_table): Add "sgot" and "got_info" fields. 1429 (_bfd_mips_elf_link_hash_table_create): Initialize them. 1430 (mips_elf_got_section): Always apply the !maybe_excluded behavior. 1431 (mips_elf_got_info): Delete. 1432 (mips_elf_initialize_tls_slots): Remove the DYNOBJ local variable. 1433 Adjust the call to mips_elf_got_section. 1434 (mips_elf_local_got_index): Don't call mips_elf_got_info. 1435 Update the call to mips_elf_create_local_got_entry. 1436 Use htab->got_info. 1437 (mips_elf_global_got_index): Don't call mips_elf_got_info; 1438 use htab->got_info and htab->sgot instead. 1439 (mips_elf_got_page): Don't call mips_elf_got_info. Update the 1440 call to mips_elf_create_local_got_entry. 1441 (mips_elf_got16_entry): Likewise. 1442 (mips_elf_got_offset_from_index): Replace with DYNOBJ parameter 1443 with an INFO parameter. Don't call mips_elf_got_info; use htab->sgot 1444 and htab->got_info instead. 1445 (mips_elf_create_local_got_entry): Remove the GG and SGOT parameters. 1446 Use htab->sgot and htab->got_info. 1447 (mips_elf_sort_hash_table): Remove the DYNOBJ local variable. 1448 Don't call mips_elf_got_info; use htab->got_info instead. 1449 (mips_elf_record_global_got_symbol): Turn G from a paramter to 1450 a local variable and read it from htab->got_info. 1451 (mips_elf_record_local_got_symbol): Replace the G parameter with 1452 an INFO parameter. Make G a local variable and read it from 1453 htab->got_info instead. 1454 (mips_elf_record_got_page_entry): Likewise. 1455 (mips_elf_multi_got): Remove the G parameter and make it a local 1456 variable instead. Read it from htab->got_info. 1457 (mips_elf_create_got_section): Cache the GOT section in htab->sgot. 1458 Store the GOT information in htab->got_info. 1459 (mips_elf_calculate_relocation): Don't call mips_elf_got_section 1460 and mips_elf_got_info; use htab->sgot and htab->got_info instead. 1461 Adjust the calls to mips_elf_got_offset_from_index and 1462 mips_elf_adjust_gp. 1463 (_bfd_mips_elf_check_relocs): Remove the G and SGOT local variables. 1464 Adjust the calls to mips_elf_record_local_got_symbol, 1465 mips_elf_record_global_got_symbol and mips_elf_record_got_page_entry. 1466 Use htab->sgot. 1467 (_bfd_mips_elf_always_size_sections): Remove the DYNOBJ local variable. 1468 Don't call mips_elf_got_info; use htab->sgot and htab->got_info instead. 1469 Update the call to mips_elf_multi_got. 1470 (_bfd_mips_elf_size_dynamic_sections): Don't call mips_elf_got_info; 1471 use htab->got_info instead. 1472 (_bfd_mips_elf_finish_dynamic_symbol): Update the call to 1473 mips_elf_got_section. Get the got_info from the hash table 1474 rather than the GOT section. 1475 (_bfd_mips_vxworks_finish_dynamic_symbol): Likewise. 1476 (_bfd_mips_elf_finish_dynamic_sections): Likewise. 1477 (_bfd_mips_elf_hide_symbol): Don't call mips_elf_got_section; 1478 get the got_info from the hash table instead. Remove the GOT 1479 local variable. 1480 (_bfd_mips_elf_final_link): Likewise. Also remove the DYNOBJ 1481 local variable. 1482 14832008-08-06 Richard Sandiford <rdsandiford@googlemail.com> 1484 1485 * elfxx-mips.c (mips_elf_link_hash_table): Add an "sstubs" field. 1486 (_bfd_mips_elf_create_dynamic_sections): Use it to cache the stubs 1487 section. Don't check whether the section already exists. 1488 (_bfd_mips_elf_adjust_dynamic_symbol): Use htab->sstubs. 1489 (_bfd_mips_elf_finish_dynamic_symbol): Likewise. 1490 (_bfd_mips_elf_finish_dynamic_sections): Likewise. 1491 (_bfd_mips_elf_size_dynamic_sections): Likewise. Don't add the 1492 dummy stub to an empty section. 1493 (_bfd_mips_elf_link_hash_table_create): Initialize the "sstubs" field. 1494 14952008-08-06 Richard Sandiford <rdsandiford@googlemail.com> 1496 1497 * reloc.c (BFD_RELOC_MIPS16_GOT16, BFD_RELOC_MIPS16_CALL16): Declare. 1498 * libbfd.h, bfd-in2.h: Regenerate. 1499 * elf32-mips.c (elf_mips16_howto_table_rel): Fill in reserved 1500 R_MIPS16_GOT16 and R_MIPS16_CALL16 entries. 1501 (mips16_reloc_map): Add mappings. 1502 * elf64-mips.c (mips16_elf64_howto_table_rel): Fill in reserved 1503 R_MIPS16_GOT16 and R_MIPS16_CALL16 entries. 1504 (mips16_elf64_howto_table_rela): Likewise. 1505 (mips16_reloc_map): Add mappings. 1506 * elfn32-mips.c (elf_mips16_howto_table_rel): Fill in reserved 1507 R_MIPS16_GOT16 and R_MIPS16_CALL16 entries. 1508 (elf_mips16_howto_table_rela): Likewise. 1509 (mips16_reloc_map): Add mappings. 1510 * elfxx-mips.c (mips_elf_create_shadow_symbol): New function. 1511 (section_allows_mips16_refs_p): Likewise. 1512 (mips16_stub_symndx): Likewise. 1513 (mips_elf_check_mips16_stubs): Treat the data argument as a 1514 bfd_link_info. Mark every dynamic symbol as needing MIPS16 stubs 1515 and create a "shadow" symbol for the original MIPS16 definition. 1516 (mips16_reloc_p, got16_reloc_p, call16_reloc_p, hi16_reloc_p) 1517 (lo16_reloc_p, mips16_call_reloc_p): New functions. 1518 (_bfd_mips16_elf_reloc_unshuffle): Use mips16_reloc_p to generalize 1519 relocation checks. 1520 (_bfd_mips16_elf_reloc_shuffle): Likewise. 1521 (_bfd_mips_elf_lo16_reloc): Handle R_MIPS16_GOT16. 1522 (mips_elf_got16_entry): Add comment. 1523 (mips_elf_calculate_relocation): Use hi16_reloc_p, 1524 lo16_reloc_p, mips16_call_reloc_p, call16_reloc_p and got16_reloc_p 1525 to generalize relocation checks. Use section_allows_mips16_refs_p 1526 instead of mips16_stub_section_p. Handle R_MIPS16_CALL16 and 1527 R_MIPS16_GOT16, allowing the former to refer directly to a 1528 MIPS16 function if its stub is not needed. 1529 (mips16_stub_section_p): Delete. 1530 (_bfd_mips_elf_symbol_processing): Convert odd-valued function 1531 symbols into even MIPS16 symbols. 1532 (mips_elf_add_lo16_rel_addend): Use mips16_reloc_p to generalize 1533 a relocation check. 1534 (_bfd_mips_elf_check_relocs): Calculate "bed" and "rel_end" 1535 earlier in the function. Use mips16_stub_symndx to identify 1536 the target function. Avoid out-of-bounds accesses when the 1537 stub has no relocations; report an error instead. Use 1538 section_allows_mips16_refs_p instead of mips16_stub_section_p. 1539 Use mips16_call_reloc_p and got16_reloc_p to generalize relocation 1540 checks. Handle R_MIPS16_CALL16 and R_MIPS16_GOT16. Don't create 1541 dynamic relocations for absolute references to __gnu_local_gp. 1542 (_bfd_mips_elf_always_size_sections): Pass a bfd_link_info as 1543 the argument to mips_elf_check_mips16_stubs. Generalize comment. 1544 (_bfd_mips_elf_relocate_section): Use hi16_reloc_p and got16_reloc_p 1545 to generalize relocation checks. 1546 (_bfd_mips_elf_finish_dynamic_symbol): If a dynamic MIPS16 function 1547 symbol has a non-MIPS16 stub, redirect the symbol to the stub. 1548 Fix an overly long line. Don't give dynamic symbols type STO_MIPS16. 1549 (_bfd_mips_elf_gc_sweep_hook): Handle R_MIPS16_CALL16 and 1550 R_MIPS16_GOT16. 1551 15522008-08-06 Alan Modra <amodra@bigpond.net.au> 1553 1554 * elf32-ppc.c (ppc_elf_relax_section): Clear R_PPC_PLTREL24 addend. 1555 (ppc_elf_relocate_section <R_PPC_RELAX32_PLT>): Don't bother here. 1556 15572008-08-05 Alan Modra <amodra@bigpond.net.au> 1558 Jaka Močnik <jaka@xlab.si> 1559 1560 * coffcode.h (coff_slurp_line_table): bfd_alloc lineno_cache first 1561 so that we don't inadvertently free it. Use bfd_alloc for sort 1562 arrays, and memcpy sorted line table. 1563 15642008-08-04 Alan Modra <amodra@bigpond.net.au> 1565 1566 * elf32-spu.c (spu_elf_auto_overlay): Use the maximum possible 1567 if --fixed-space request is too large. 1568 15692008-08-04 Alan Modra <amodra@bigpond.net.au> 1570 1571 * Makefile.am (SRC-POTFILES.in, BLD-POTFILES.in): Set LC_ALL=C. 1572 * Makefile.in: Regenerate. 1573 * po/SRC-POTFILES.in: Regenerate. 1574 15752008-08-02 Alan Modra <amodra@bigpond.net.au> 1576 1577 * elf32-spu.c (mark_overlay_section): Move code calculating 1578 max_overlay_size to correct block. 1579 (spu_elf_auto_overlay): Don't use %x in einfo error message. 1580 15812008-08-01 Alan Modra <amodra@bigpond.net.au> 1582 Jan Kratochvil <jan.kratochvil@redhat.com> 1583 1584 * elfcore.h (elf_core_file_p): Ensure we have a backend match 1585 with the correct arch size before rejecting the generic fallback. 1586 * elfcode.h (elf_object_p): Likewise. Ensure arch size matches 1587 before accepting a target. 1588 15892008-08-01 Alan Modra <amodra@bigpond.net.au> 1590 1591 PR 6774 1592 * elf.c (rewrite_elf_program_header): Don't wrap p_paddr to 1593 include file or program headers. 1594 15952008-07-30 Alan Modra <amodra@bigpond.net.au> 1596 1597 * coff-ppc.c, coffgen.c, ecoff.c, ecofflink.c, elf.c, elf32-frv.c, 1598 elf32-iq2000.c, elf32-m32c.c, elf32-mep.c, elf32-mt.c, 1599 elf32-sh-symbian.c, elf64-hppa.c, mach-o.c, peXXigen.c, pef.c, 1600 ppcboot.c, vms-misc.c, xsym.c: Silence gcc warnings. 1601 16022008-07-28 Daniel Jacobowitz <dan@codesourcery.com> 1603 1604 * elfxx-mips.c (mips_elf_calculate_relocation): Avoid generating 1605 relocations for undefined weak symbols with non-default visibility. 1606 (_bfd_mips_elf_check_relocs): Use possibly_dynamic_relocs for 1607 global symbols in shared libraries. 1608 (allocate_dynrelocs): New function. 1609 (_bfd_mips_elf_adjust_dynamic_symbol): Do not handle 1610 possibly_dynamic_relocs here. 1611 (_bfd_mips_elf_size_dynamic_sections): Call allocate_dynrelocs. 1612 16132008-07-28 Alexandre Oliva <aoliva@redhat.com> 1614 1615 * elf32-i386.c (struct elf_i386_link_hash_table): Added field 1616 tls_module_base. 1617 (elf_i386_link_hash_table_create): Initialize it. 1618 (elf_i386_always_size_sections): Set it. 1619 (set_tls_module_base): New. 1620 (elf_i386_relocate_sections): Call it. 1621 * elf64-x86-64.c (struct elf64_x86_64_link_hash_table): Added 1622 field tls_module_base. 1623 (elf64_x86_64_link_hash_table_create): Initialize it. 1624 (elf64_x86_64_always_size_sections): Set it. 1625 (set_tls_module_base): New. 1626 (elf64_x86_64_relocate_sections): Call it. 1627 Reported by Cary Coutant <ccoutant@google.com> 1628 16292008-07-28 Ineiev <ineiev@yahoo.co.uk> 1630 1631 * elf32-arm.c (arm_map_one_stub): Declare variables at beginning 1632 of block. 1633 * elf32-avr.c (get_local_syms): Likewise. 1634 16352008-07-28 Alan Modra <amodra@bigpond.net.au> 1636 1637 PR 6769 1638 * bfd-in.h (BFD_VMA_FMT): Define. 1639 (printf_vma, sprintf_vma): Use the above. 1640 (_bfd_int64_low, _bfd_int64_high): Delete. 1641 * bfd-in2.h: Regenerate. 1642 16432008-07-27 Alan Modra <amodra@bigpond.net.au> 1644 1645 * elf.c (_bfd_elf_make_section_from_shdr): Ignore return from 1646 elf_parse_notes. Use bfd_malloc_and_get_section. 1647 (elf_parse_notes): Validate note namesz and descsz. 1648 16492008-07-26 Michael Eager <eager@eagercon.com> 1650 1651 * elf32-ppc.c (ppc_elf_merge_obj_attributes): Check compatibility 1652 between single-float, double-float, and soft-float. 1653 16542008-07-24 Daniel Jacobowitz <dan@codesourcery.com> 1655 1656 * elf32-mips.c (elf_backend_write_section): Define. 1657 16582008-07-24 Nick Clifton <nickc@redhat.com> 1659 1660 * elf.c (_bfd_elf_map_sections_to_segments): Catch off by one 1661 error assigning sections to segments. 1662 16632008-07-22 Nick Clifton <nickc@redhat.com> 1664 1665 * elf.c (_bfd_elf_map_sections_to_segments): Allow sections in 1666 adjoining pages to be included in the same segment. 1667 16682008-07-22 Simon Baldwin <simonb@google.com> 1669 1670 * elflink.c (elf_link_output_extsym): Set st_size to zero for 1671 symbols from dynamic libraries. 1672 16732008-07-21 H.J. Lu <hongjiu.lu@intel.com> 1674 1675 PR ld/4424 1676 * elflink.c (_bfd_elf_merge_symbol): Call bed->relocs_compatible 1677 to check if 2 inputs are compatible. 1678 16792008-07-21 Sterling Augustine <sterling@tensilica.com> 1680 1681 * elf.c (assign_file_positions_for_load_sections): Print vma in 1682 error message about overlapping section vmas. 1683 16842008-07-21 H.J. Lu <hongjiu.lu@intel.com> 1685 1686 PR ld/6747 1687 * elf32-frv.c (elf32_frv_relocate_section): Revert the change 1688 for PR ld/6446 checked in by accident on May 21, 2008. 1689 16902008-07-21 Nick Clifton <nickc@redhat.com> 1691 1692 * coff-sh.c (bfd_pe_print_pdata): Define to NULL for non 1693 COFF_WITH_PE based SH ports. 1694 * libpei.h (_bfd_XX_print_ce_compressed_pdata): Prototype. 1695 * arm-wince-pe.c (bfd_pe_print_pdata): Use 1696 _bfd_pe_print_ce_compressed_pdata. 1697 (slurp_symcache, cleanup_syms, pe_print_ce_compressed_pdata): Move 1698 to... 1699 * peXXigen.c: ... here and rename pe_print_ce_compressed_pdata to 1700 _bfd_XX_print_ce_compressed_pdata. 1701 17022008-07-21 Alan Modra <amodra@bigpond.net.au> 1703 1704 * elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Drop 1705 unwanted zero terminators. 1706 17072008-07-21 Alan Modra <amodra@bigpond.net.au> 1708 1709 * elf32-spu.c (spu_elf_relocate_section): Expand 1710 RELOC_FOR_GLOBAL_SYMBOL. Don't warn about undefined symbols for 1711 R_SPU_PPU32 and R_SPU_PPU64 relocations. 1712 17132008-07-21 Luis Machado <luisgpm@br.ibm.com> 1714 1715 * elf-bfd.h: Declare elfcore_write_ppc_vsx. 1716 * elf.c (elfcore_grok_ppc_vsx): New function. 1717 (elfcore_write_ppc_vsx): New function 1718 (elfcore_grok_note): Handle VSX notes. 1719 (elfcore_write_register_note): Handle VSX notes. 1720 17212008-07-18 Joseph Myers <joseph@codesourcery.com> 1722 1723 * bfd-in.h (bfd_elf32_arm_set_target_relocs): Add new parameter. 1724 * bfd-in2.h: Regenerate. 1725 * elf32-arm.c (struct elf_arm_obj_tdata): Add field 1726 no_wchar_size_warning. 1727 (bfd_elf32_arm_set_target_relocs): Add new parameter 1728 no_wchar_warn. 1729 (elf32_arm_merge_eabi_attributes): Give a warning, not an error, 1730 for conflicting wchar_t attributes. Do not warn if 1731 --no-wchar-size-warning. Make diagnostic text more specific. 1732 17332008-07-18 H.J. Lu <hongjiu.lu@intel.com> 1734 1735 PR ld/6748 1736 * elf32-arm.c (elf32_arm_link_hash_table_create): Initialize 1737 new fields added for ARM long call support. 1738 17392008-07-18 Danny Backx <dannybackx@users.sourceforge.net> 1740 1741 * pe-arm-wince.c (pe_print_compressed_pdata): Define new function to 1742 print compressed pdata structure as described on MSDN. This only 1743 applies to a limited set of architectures (ARM, SH4). 1744 (slurp_symtab, my_symbol_for_address): Define static helper 1745 functions for pe_print_compressed_pdata. 1746 * coffcode.h (bfd_coff_backend_data): Add _bfd_coff_print_pdata field. 1747 (bfd_coff_have_print_pdata, bfd_coff_print_pdata): Define. 1748 * bfd/peXXigen.c (_bfd_XX_print_private_bfd_data_common): Add check on 1749 bfd_coff_backend_data, call the function if non-null. 1750 * pei-mcore.c: Add target dependent initialisation for 1751 bfd_coff_backend_data. 1752 * coff-sh.c: Likewise. 1753 * coff64-rs6000.c: Likewise. 1754 * coff-rs6000.c: Likewise. 1755 * libcoff-in.h: Likewise. 1756 * cf-i386lynx.c: Likewise. 1757 * coff-alpha.c: Likewise. 1758 * coff-apollo.c: Likewise. 1759 * coff-arm.c: Likewise. 1760 * coff-aux.c: Likewise. 1761 * coff-h8300.c: Likewise. 1762 * coff-h8500.c: Likewise. 1763 * coff-i386.c: Likewise. 1764 * coff-i860.c: Likewise. 1765 * coff-i960.c: Likewise. 1766 * coff-ia64.c: Likewise. 1767 * coff-m68k.c: Likewise. 1768 * coff-m88k.c: Likewise. 1769 * coff-maxq.c: Likewise. 1770 * coff-mips.c: Likewise. 1771 * coff-or32.c: Likewise. 1772 * coff-sparc.c: Likewise. 1773 * coff-tic30.c: Likewise. 1774 * coff-tic4x.c: Likewise. 1775 * coff-tic54x.c: Likewise. 1776 * coff-tic80.c: Likewise. 1777 * coff-w65.c: Likewise. 1778 * coff-we32k.c: Likewise. 1779 * coff-x86_64.c: Likewise. 1780 * coff-z80.c: Likewise. 1781 * coff-z8k.c: Likewise. 1782 * pe-mcore.c: Likewise. 1783 * pe-mips.c: Likewise. 1784 * pe-ppc.c: Likewise. 1785 * peXXigen.c: Likewise. 1786 * pei-ppc.c: Likewise. 1787 * libcoff.h: Regenerate. 1788 17892008-07-16 Bernd Schmidt <bernd.schmidt@analog.com> 1790 1791 * elf32-bfin.c (bfin_check_relocs, bfin_relocate_section, 1792 bfin_final_link_relocate, bfin_gc_mark_hook, bfin_gc_sweep_hook, 1793 ELF_DYNAMIC_INTERPRETER, DEFAULT_STACK_SIZE, 1794 struct _bfinfdpic_dynamic_got_info): Moved around to keep FD-PIC code 1795 separate from non-FD-PIC. 1796 17972008-07-14 DJ Delorie <dj@redhat.com> 1798 1799 * elf-m10300.c (mn10300_elf_final_link_relocate): Correct overflow 1800 checks for PCREL8, PCREL16, GOTPC16, GOTOFF16, PLT16, and GOT16 1801 relocs. 1802 (mn10300_elf_relax_section): Correct jump offset check when target 1803 is in a different section. 1804 18052008-07-15 Jie Zhang <jie.zhang@analog.com> 1806 1807 * elf32-bfin.c (elf32_bfin_special_sections[]): New. 1808 (elf_backend_special_sections): Define. 1809 18102008-07-13 Craig Silverstein <csilvers@google.com> 1811 1812 PR binutils/6743 1813 * dwarf2.c (struct dwarf2_debug): New variable info_ptr_memory. 1814 (find_line): Use info_ptr_memory instead of sec_info_ptr. 1815 (_bfd_dwarf2_cleanup_debug_info): Likewise. 1816 18172008-07-12 Jie Zhang <jie.zhang@analog.com> 1818 1819 Revert 1820 2008-07-12 Jie Zhang <jie.zhang@analog.com> 1821 * elf.c (_bfd_elf_map_sections_to_segments): Don't put 1822 executable sections into the same segment with other 1823 read only sections if --sep-code. 1824 * elf32-bfin.c (elf32_bfin_code_in_l1): New variable. 1825 (elf32_bfin_data_in_l1): New variable. 1826 (elf32_bfin_final_write_processing): New. 1827 (elf32_bfin_special_sections[]): New. 1828 (elf_backend_final_write_processing): Define. 1829 (elf_backend_special_sections): Define. 1830 18312008-07-12 Jie Zhang <jie.zhang@analog.com> 1832 1833 * elf.c (_bfd_elf_map_sections_to_segments): Don't put 1834 executable sections into the same segment with other 1835 read only sections if --sep-code. 1836 * elf32-bfin.c (elf32_bfin_code_in_l1): New variable. 1837 (elf32_bfin_data_in_l1): New variable. 1838 (elf32_bfin_final_write_processing): New. 1839 (elf32_bfin_special_sections[]): New. 1840 (elf_backend_final_write_processing): Define. 1841 (elf_backend_special_sections): Define. 1842 18432008-07-11 Andreas Schwab <schwab@suse.de> 1844 1845 * dwarf2.c (read_section): Take pointer to bfd_size_type instead 1846 of unsigned long as last parameter. 1847 (struct dwarf2_debug): Define dwarf_abbrev_size, dwarf_line_size, 1848 dwarf_str_size and dwarf_ranges_size as bfd_size_type instead of 1849 unsigned long. 1850 18512008-07-10 Richard Sandiford <rdsandiford@googlemail.com> 1852 1853 * elfxx-mips.c (mips_elf_calculate_relocation): Calculate GP and GP0 1854 for all relocation types. Allow any type of relocation to refer to 1855 __gnu_local_gp. 1856 18572008-07-10 Richard Sandiford <rdsandiford@googlemail.com> 1858 1859 * elfxx-mips.c (mips_elf_check_mips16_stubs): Use ELF_ST_IS_MIPS16. 1860 (mips_elf_calculate_relocation): Likewise. 1861 (_bfd_mips_elf_add_symbol_hook): Likewise. 1862 (_bfd_mips_elf_finish_dynamic_symbol): Likewise. 1863 (_bfd_mips_vxworks_finish_dynamic_symbol): Likewise. 1864 18652008-07-10 Andreas Schwab <schwab@suse.de> 1866 1867 * elfxx-mips.c (_bfd_mips_elf_section_from_shdr): Add missing 1868 paren. 1869 18702008-07-09 Craig Silverstein <csilvers@google.com> 1871 1872 * Makefile.am (BFD32_LIBS): Add compress.lo. 1873 (BFD32_LIBS_CFILES): Add compress.c. 1874 (BFD_H_FILES): Likewise. 1875 * Makefile.in: Regenerate. 1876 * bfd-in2.h: Regenerate. 1877 * config.in: Add HAVE_ZLIB_H 1878 * configure.in: Add test for libz and zlib.h 1879 * configure: Regenerate. 1880 * dwarf2.c (read_section): New function. 1881 (read_indirect_string): Call new function read_section. 1882 (read_abbrevs): Likewise. 1883 (decode_line_info): Likewise. 1884 (read_debug_ranges): Likewise. 1885 (find_line): Call new function read_section when just one 1886 .zdebug_info section is found, otherwise read and compress 1887 multiple sections. 1888 (_bfd_dwarf2_cleanup_debug_info): Free sec_info_ptr. 1889 * elf.c (_bfd_elf_make_section_from_shdr): Add zdebug prefix. 1890 (special_sections_z): New struct. 1891 (special_sections): Refer to special_sections_z. 1892 * elfxx-mips.c (_bfd_mips_elf_section_from_shdr): Recognize 1893 sections named .zdebug_*. 1894 (_bfd_mips_elf_fake_sections): Likewise. 1895 * compress.c: New file. 1896 (bfd_uncompress_section_contents): New function. 1897 18982008-07-07 Christophe Lyon <christophe.lyon@st.com> 1899 1900 * elf32-arm.c (arm_type_of_stub): Don't crash on local symbols in 1901 the presence of a PLT. 1902 19032008-07-07 Alan Modra <amodra@bigpond.net.au> 1904 1905 * bfd.c (bfd_demangle): Always trim off bfd_get_symbol_leading_char. 1906 19072008-07-02 Alan Modra <amodra@bigpond.net.au> 1908 1909 * elf32-ppc.c (is_pic_glink_stub): New function. 1910 (ppc_elf_get_synthetic_symtab): Don't generate symbols when 1911 multiple shared/pie stubs per plt entry. 1912 19132008-06-30 Richard Sandiford <rdsandiford@googlemail.com> 1914 1915 * elf.c (_bfd_elf_get_synthetic_symtab): Increment p by 1916 bed->s->int_rels_per_ext_rel. 1917 19182008-06-30 Richard Sandiford <rdsandiford@googlemail.com> 1919 1920 * syms.c (BSF_SYNTHETIC): New flag. 1921 * elf.c (_bfd_elf_get_synthetic_symtab): Set it. 1922 * elf32-ppc.c (ppc_elf_get_synthetic_symtab): Likewise. 1923 * elf64-ppc.c (ppc64_elf_get_synthetic_symtab): Likewise. 1924 * bfd-in.h (bfd_asymbol_flavour): Return bfd_target_unknown_flavour 1925 for synthetic symbols. 1926 * bfd-in2.h: Regenerate. 1927 19282008-06-30 Daniel Jacobowitz <dan@codesourcery.com> 1929 1930 * elf32-arm.c (record_arm_to_thumb_glue, record_thumb_to_arm_glue): 1931 Expand comments. 1932 (arm_map_one_stub): Use | 1 when setting the low bit. 1933 19342008-06-29 Andreas Schwab <schwab@suse.de> 1935 1936 * elf32-m68k.c (elf_m68k_relocate_section): Don't ignore existing 1937 addend on _GLOBAL_OFFSET_TABLE_. 1938 19392008-06-24 Daniel Jacobowitz <dan@codesourcery.com> 1940 1941 * elf32-arm.c (STUB_ENTRY_NAME): Define. 1942 (arm_thumb_thumb_long_branch_stub): Use bx instead of b.n. 1943 (arm_pic_long_branch_stub): Mention R_ARM_REL32 instead of 1944 R_ARM_ABS32. 1945 (struct elf32_arm_stub_hash_entry): Add output_name. 1946 (arm_build_one_stub): Move offsets into the offset argument 1947 of _bfd_final_link_relocate. Correct offset for 1948 arm_thumb_arm_v4t_stub_long_branch. 1949 (elf32_arm_size_stubs): Set stub_entry->output_name. 1950 (elf32_arm_ouput_plt_map_sym): Rename to elf32_arm_output_map_sym. 1951 Update all callers. 1952 (elf32_arm_output_stub_sym): New. 1953 (arm_map_one_stub): Correct formatting. Use elf32_arm_output_stub_sym. 1954 19552008-06-20 Alan Modra <amodra@bigpond.net.au> 1956 1957 * elf32-spu.c (needs_ovl_stub): Correctly return nonovl_stub for 1958 non-branch insns. 1959 19602008-06-20 Alan Modra <amodra@bigpond.net.au> 1961 1962 * elf32-spu.c (build_stub): Allow wraparound on stub branches. 1963 (allocate_spuear_stubs, build_spuear_stubs): Return value from 1964 count_stub/build_stub. 1965 (spu_elf_build_stubs): Correct location of stub reloc error message. 1966 19672008-06-18 M R Swami Reddy <MR.Swami.Reddy@nsc.com> 1968 1969 * elf32-cr16.c (ELF_MACHINE_ALT1): Define to EM_CR16_OLD. 1970 19712008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 1972 1973 * configure: Regenerate. 1974 19752008-06-17 Alan Modra <amodra@bigpond.net.au> 1976 1977 * elf32-spu.c (struct spu_link_hash_table): Add extra_stack_space. 1978 (spu_elf_check_vma): Add extra_stack_space param, copy to htab. 1979 (spu_elf_auto_overlay): Use it. 1980 (RECURSE_UNMARK): Define as 0. 1981 (unmark_overlay_section): Heed RECURSE_UNMARK. 1982 * elf32-spu.h (spu_elf_check_vma): Update prototype. 1983 19842008-06-12 DJ Delorie <dj@redhat.com> 1985 1986 * elf32-m32c.c (ELF_MACHINE_ALT1): Define as EM_M32C_OLD. 1987 19882008-06-09 Paul Brook <paul@codesourcery.com> 1989 1990 bfd/ 1991 * elf32-arm.c (elf32_arm_merge_private_bfd_data): Allow BE8 shared 1992 libraries. 1993 19942008-06-09 Christophe Lyon <christophe.lyon@st.com> 1995 1996 * elf32-arm.c (arm_stub_is_thumb): Define. 1997 (elf32_arm_final_link_relocate): Handle near mode switching stubs. 1998 19992008-06-07 Alan Modra <amodra@bigpond.net.au> 2000 2001 * elf32-spu.c (spu_elf_auto_overlay): Add valid area below sp 2002 to stack calculation. 2003 20042008-06-06 Paul Brook <paul@codesourcery.com> 2005 2006 bfd/ 2007 * elf32-arm.c (elf32_arm_merge_private_bfd_data): Reject BE8 input. 2008 20092008-06-06 Alan Modra <amodra@bigpond.net.au> 2010 2011 * elf32-spu.c (spu_elf_auto_overlay): Relax requirement that 2012 file names be unique. Specify archive:path in overlay script. 2013 20142008-06-05 Alan Modra <amodra@bigpond.net.au> 2015 2016 PR ld/6590 2017 * elf64-ppc.c (ppc_build_one_stub): Correct reloc offsets. 2018 20192008-06-04 Alan Modra <amodra@bigpond.net.au> 2020 2021 * elf.c (ignore_section_sym): Don't test section sym value here. 2022 (elf_map_symbols): Instead check zero value here as was done prior 2023 to 2006-05-26 change. 2024 20252008-06-04 Nick Clifton <nickc@redhat.com> 2026 2027 PR ld/6019 2028 * elf32-avr.c (elf32_avr_relax_section): Handle the case where 2029 there are no local symbols. 2030 20312008-06-04 Alan Modra <amodra@bigpond.net.au> 2032 2033 * elf32-spu.c (get_sym_h): Don't attempt to read global syms. 2034 (process_stubs): Likewise. 2035 (discover_functions): Don't used cached symbols. 2036 (maybe_insert_function): Correct condition under which function 2037 array is realloc'd. 2038 (mark_functions_via_relocs): Delete unused variable. 2039 20402008-05-30 Frediano Ziglio <frediano.ziglio@vodafone.com> 2041 Nick Clifton <nickc@redhat.com> 2042 2043 PR ld/6511 2044 * elf64-hppa.c (allocate_global_data_opd): Default to using the 2045 dynamic symbol table for local function names in shared libraries. 2046 20472008-05-29 Jan Kratochvil <jan.kratochvil@redhat.com> 2048 2049 * elf.c (assign_file_positions_for_load_sections): Adjust pre-section 2050 gaps based on VMA and P_VADDR instead of LMA and P_PADDR addresses. 2051 20522008-05-28 Alan Modra <amodra@bigpond.net.au> 2053 2054 * elf32-spu.c (spu_elf_object_p): New function. 2055 (elf_backend_object_p): Define. 2056 (build_stub): Correct second word of 8 byte overlay stubs. 2057 (spu_elf_relocate_section): Formatting. 2058 20592008-05-24 Carlos Eduardo Seo <cseo@linux.vnet.ibm.com> 2060 2061 * elf.c (elfcore_write_register_note): New function. 2062 * elf-bfd.h (elfcore_write_register_note): New prototype. 2063 20642008-05-22 Christophe Lyon <christophe.lyon@st.com> 2065 2066 * elf32-arm.c (arm_type_of_stub): Ignore STT_SECTION symbols. 2067 (elf32_arm_stub_add_mapping_symbol): Remove. 2068 (elf32_arm_add_stub): Don't generate mapping symbols. Change 2069 prototype. 2070 (elf32_arm_size_stubs): Use new elf32_arm_add_stub 2071 prototype. Don't generate thumb to arm glue for calls. 2072 (arm_map_one_stub): Define. 2073 (elf32_arm_output_arch_local_syms): Generate mapping symbols for 2074 long calls stubs. 2075 20762008-05-21 Nick Clifton <nickc@redhat.com> 2077 2078 * elf32-arm.c (group_sections): Reformat comments. 2079 2080 PR ld/6446 2081 * elf32-frv.c (elf32_frv_relocate_section): Set EF_FRV_PIC by 2082 default (for FDPIC). Clear it if any inter-segment relocations 2083 are found. 2084 2085 * elf64-hppa.c (elf64_hppa_finalize_opd): Check NULL return 2086 from elf_link_hash_lookup. 2087 20882008-05-21 Maxim Kuvyrkov <maxim@codesourcery.com> 2089 2090 Add multi-GOT support for m68k. 2091 * elf32-m68k.c (struct elf_m68k_link_hash_entry: got_entry_key, 2092 glist): New fields. 2093 (struct elf_m68k_got_entry_key, struct elf_m68k_got_entry, 2094 struct elf_m68k_got, struct elf_m68k_bfd2got_entry, 2095 struct elf_m68k_multi_got): New data structures. 2096 (struct elf_m68k_link_hash_table: local_gp_p, use_neg_got_offsets_p, 2097 allow_multigot_p, multi_got_): New fields. 2098 (elf_m68k_multi_got): New macro. 2099 (elf_m68k_link_hash_newfunc): Initialize new fields of 2100 struct elf_m68k_link_hash_entry. 2101 (elf_m68k_link_hash_table_create): Initialize new fields of 2102 struct elf_m68k_link_hash_table. 2103 (elf_m68k_link_hash_table_free): New static function implementing hook. 2104 (elf_m68k_init_got, elf_m68k_clear_got, elf_m68k_create_empty_got): New 2105 static functions for struct elf_m68k_got. 2106 (elf_m68k_init_got_entry_key, elf_m68k_got_entry_hash, 2107 elf_m68k_got_entry_eq): New static functions for 2108 struct elf_m68k_got_entry. 2109 (ELF_M68K_REL_8O_MAX_N_ENTRIES_IN_GOT, 2110 ELF_M68K_REL_8O_16O_MAX_N_ENTRIES_IN_GOT): New macros. 2111 (enum elf_m68k_get_entry_howto): New enum. 2112 (elf_m68k_get_got_entry, elf_m68k_update_got_entry_type, 2113 elf_m68k_remove_got_entry_type): New static functions for 2114 struct elf_m68k_got_entry. 2115 (elf_m68k_add_entry_to_got): New static function. 2116 (elf_m68k_bfd2got_entry_hash, elf_m68k_bfd2got_entry_eq, 2117 elf_m68k_bfd2got_entry_del, elf_m68k_get_bfd2got_entry): New static 2118 functions for struct elf_m68k_bfd2got_entry. 2119 (struct elf_m68k_can_merge_gots_arg, elf_m68k_can_merge_gots_1, 2120 elf_m68k_can_merge_gots): New traversal. 2121 (struct elf_m68k_merge_gots_arg, elf_m68k_merge_gots_1, 2122 elf_m68k_merge_gots): Ditto. 2123 (struct elf_m68k_finalize_got_offsets_arg, 2124 elf_m68k_finalize_got_offsets_1, elf_m68k_finalize_got_offsets): Ditto. 2125 (struct elf_m68k_partition_multi_got_arg, 2126 elf_m68k_partition_multi_got_1, elf_m68k_init_symndx2h_1, 2127 elf_m68k_partition_multi_got): Ditto. 2128 (elf_m68k_find_got_entry_ptr, elf_m68k_remove_got_entry): New static 2129 functions. 2130 (elf_m68k_copy_indirect_symbol): New static function implementing 2131 a hook. 2132 (elf_m68k_check_relocs): Update to add entries to multi-GOT. 2133 (elf_m68k_gc_sweep_hook): Update to remove entries from multi-GOT. 2134 (elf_m68k_always_size_sections): Assign BFDs to GOTs. 2135 (elf_m68k_relocate_section): Update to properly handle GOT relocations. 2136 (elf_m68k_finish_dynamic_symbol): Update to traverse all GOT entries 2137 of a global symbol. 2138 (bfd_elf_m68k_set_target_options): New function. 2139 (bfd_elf32_bfd_link_hash_table_free): Define hook. 2140 (bfd_elf32_bfd_final_link): Change expansion to bfd_elf_final_link 2141 to skip generic calculation of GOT offsets. 2142 (elf_backend_copy_indirect_symbol): Define hook. 2143 * bfd-in.h (bfd_elf_m68k_set_target_options): Declare function. 2144 * bfd-in2.h: Regenerate. 2145 21462008-05-21 André Johansen <andrejoh@gmail.com> 2147 2148 PR 868 2149 * dwarf2.c (_bfd_dwarf2_cleanup_debug_info): Free memory allocated 2150 for filenames in function tables and variable tables. 2151 21522008-05-19 Alan Modra <amodra@bigpond.net.au> 2153 2154 PR 2995, PR 6473 2155 * elf.c (_bfd_elf_make_section_from_shdr): Leave lma equal to 2156 vma when all p_paddr fields are zero and there is more than 2157 one PT_LOAD header. 2158 21592008-05-15 Christophe Lyon <christophe.lyon@st.com> 2160 2161 Add long call support for ARM. 2162 * elf32-arm.c (THM2_MAX_FWD_BRANCH_OFFSET): Define. 2163 (THM2_MAX_BWD_BRANCH_OFFSET): Define. 2164 (ARM_MAX_FWD_BRANCH_OFFSET): Define. 2165 (ARM_MAX_BWD_BRANCH_OFFSET): Define. 2166 (THM_MAX_FWD_BRANCH_OFFSET): Define. 2167 (THM_MAX_BWD_BRANCH_OFFSET): Define. 2168 (arm_long_branch_stub): Define. 2169 (arm_pic_long_branch_stub): Define. 2170 (arm_thumb_v4t_long_branch_stub): Define. 2171 (arm_thumb_thumb_long_branch_stub): Define. 2172 (arm_thumb_arm_v4t_long_branch_stub): Define. 2173 (STUB_SUFFIX): Define. 2174 (elf32_arm_stub_type): Define. 2175 (elf32_arm_stub_hash_entry): Define. 2176 (elf32_arm_link_hash_entry): Add stub_cache field. 2177 (arm_stub_hash_lookup): Define. 2178 (elf32_arm_link_hash_table): Add stub_hash_table, stub_bfd, 2179 add_stub_section, layout_sections_again, stub_group, bfd_count, 2180 top_index, input_list fields. 2181 (elf32_arm_link_hash_newfunc): Init new field. 2182 (stub_hash_newfunc): New function. 2183 (elf32_arm_link_hash_table_create): Init stub_hash_table. 2184 (elf32_arm_hash_table_free): New function. 2185 (arm_type_of_stub): New function. 2186 (elf32_arm_stub_name): New function. 2187 (elf32_arm_get_stub_entry): New function. 2188 (elf32_arm_stub_add_mapping_symbol): New function. 2189 (elf32_arm_add_stub): New function. 2190 (arm_build_one_stub): New function. 2191 (arm_size_one_stub): New function. 2192 (elf32_arm_setup_section_lists): New function. 2193 (elf32_arm_next_input_section): New function. 2194 (group_sections): New function. 2195 (elf32_arm_size_stubs): New function. 2196 (elf32_arm_build_stubs): New function. 2197 (bfd_elf32_arm_add_glue_sections_to_bfd): Skip stub sections. 2198 (bfd_elf32_arm_process_before_allocation): No longer handle 2199 R_ARM_CALL and R_ARM_THM_CALL. 2200 (using_thumb_only): New function. 2201 (elf32_arm_final_link_relocate): Redirect calls to stub if range 2202 exceeds encoding capabilities. 2203 (bfd_elf32_bfd_link_hash_table_free): Define. 2204 * bfd-in.h (R_ARM_max): Fix value to 130. 2205 (elf32_arm_setup_section_lists): Protype. 2206 (elf32_arm_next_input_section): Protype. 2207 (elf32_arm_size_stubs): Protype. 2208 (elf32_arm_build_stubs): Protype. 2209 * bfd-in2.h: Regenerate. 2210 22112008-05-14 Ulrich Weigand <uweigand@de.ibm.com> 2212 2213 * elf32-ppc.c (ppc_elf_get_synthetic_symtab): Fix memset calls. 2214 * elf64-ppc.c (ppc64_elf_get_synthetic_symtab): Likewise. 2215 22162008-05-14 Alan Modra <amodra@bigpond.net.au> 2217 2218 * Makefile.am: Run "make dep-am". 2219 * Makefile.in: Regenerate. 2220 22212008-05-14 Ulrich Weigand <uweigand@de.ibm.com> 2222 Alan Modra <amodra@bigpond.net.au> 2223 2224 * elf32-ppc.c (section_covers_vma): New function. 2225 (ppc_elf_get_synthetic_symtab): New function. 2226 (bfd_elf32_get_synthetic_symtab): Define. 2227 * elf64-ppc.c (section_covers_vma): New function. 2228 (ppc64_elf_get_synthetic_symtab): Generate sym@plt on glink branch 2229 table entries, and __glink_PLTresolve on resolver stub. 2230 (ppc64_elf_build_stubs): Rename __glink sym to __glink_PLTresolve. 2231 22322008-05-12 Alan Modra <amodra@bigpond.net.au> 2233 2234 PR 6443 2235 * elf32-ppc.c (MUST_BE_DYN_RELOC): Delete. 2236 (must_be_dyn_reloc): New function. 2237 (ppc_elf_check_relocs): Don't set DF_STATIC_TLS for tprel relocs 2238 in pies. 2239 (ppc_elf_tls_optimize): Optimise pies. 2240 (ppc_elf_relocate_section): Use a section symbol rather than no 2241 symbol if possible for LD->IE TLS sequence, but don't error if 2242 we must use no symbol. 2243 * elf64-ppc.c (MUST_BE_DYN_RELOC): As for elf32-ppc.c. 2244 (must_be_dyn_reloc): Likewise. 2245 (ppc64_elf_check_relocs): Likewise. 2246 (ppc64_elf_tls_optimize): Likewise. 2247 (ppc64_elf_relocate_section): Likewise. 2248 22492008-05-12 Alan Modra <amodra@bigpond.net.au> 2250 2251 * elf32-spu.c (spu_elf_relocate_section): Rename is_ea to is_ea_sym. 2252 22532008-05-10 Paul Pluzhnikov <ppluzhnikov@google.com> 2254 2255 * elfcore.h (elf_core_file_p): Warn about core truncation. 2256 22572008-05-07 Bob Wilson <bob.wilson@acm.org> 2258 2259 * elf32-xtensa.c (xtensa_property_section_name): New. 2260 (xtensa_make_property_section): New. 2261 (xtensa_get_property_section): Make static. Do not create a new 2262 section if it does not exist. 2263 22642008-05-08 Alan Modra <amodra@bigpond.net.au> 2265 2266 * elf32-spu.c (spu_elf_special_sections): Add "._ea". 2267 (spu_elf_relocate_section): Handle relocations against symbols 2268 defined in ._ea specially. 2269 22702008-05-03 Daniel Jacobowitz <dan@codesourcery.com> 2271 2272 * elf32-arm.c (elf32_arm_symbian_link_hash_table_create): Use 2273 ARRAY_SIZE. 2274 (elf32_arm_symbian_plt_sym_val): New. 2275 (elf_backend_plt_sym_val): Define. 2276 22772008-05-03 Alan Modra <amodra@bigpond.net.au> 2278 2279 PR 2995, PR 6473 2280 * elf.c (rewrite_elf_program_header): Rather than clearing 2281 p_paddr_valid at end, don't set it in the first place. Delete 2282 comment no longer relevant. When not p_paddr_valid, don't set 2283 paddr from vaddr, and don't set p_vaddr_offset. 2284 22852008-05-01 Cary Coutant <ccoutant@google.com> 2286 2287 * elf.c (bfd_elf_get_str_section): Fix memory leak caused by 2288 corrupt string table. 2289 22902008-05-01 Joel Brobecker <brobecker@adacore.com> 2291 2292 * cache.c (cache_bread_1): Renames cache_bread. 2293 (cache_bread): New function. 2294 22952008-05-01 Alan Modra <amodra@bigpond.net.au> 2296 2297 PR 2995, PR 6473 2298 * elf.c (_bfd_elf_make_section_from_shdr): Always set lma from p_paddr. 2299 (assign_file_positions_for_load_sections): Combine nested "if". 2300 (copy_elf_program_header): Don't set p_paddr_valid or p_vaddr_offset 2301 when all header p_paddr fields are zero. 2302 23032008-04-30 Edmar Wienskoski <edmar@freescale.com> 2304 2305 * cpu-powerpc.c (bfd_powerpc_archs): Add e500mc entry. 2306 23072008-04-29 Daniel Jacobowitz <dan@codesourcery.com> 2308 2309 * elf.c (_bfd_elf_get_dynamic_reloc_upper_bound) 2310 (_bfd_elf_canonicalize_dynamic_reloc): Find dynamic relocations 2311 even if they are not loaded. 2312 * elflink.c (_bfd_elf_init_2_index_sections): Set data_index_section 2313 first. 2314 23152008-04-25 Jay Foad <jay.foad@gmail.com> 2316 2317 * reloc16.c (bfd_coff_reloc16_get_value): Add support for 2318 undefined weak symbols. 2319 23202008-04-25 Nick Clifton <nickc@redhat.com> 2321 2322 * po/vi.po: Updated Vietnamese translation. 2323 23242008-04-23 Paolo Bonzini <bonzini@gnu.org> 2325 2326 * aclocal.m4: Regenerate. 2327 * configure: Regenerate. 2328 23292008-04-21 Cary Coutant <ccoutant@google.com> 2330 2331 * archive.c (_bfd_write_archive_contents): Fix incorrect use of 2332 ARFMAG. 2333 23342008-04-21 Nathan Sidwell <nathan@codesourcery.com> 2335 2336 * elfxx-mips.c (_bfd_mips_vxworks_adjust_dynamic_symbol): Don't 2337 set the value of undefined symbols in shared objects. 2338 (_bfd_mips_vxworks_finish_dynamic_symbol): Clear value for 2339 undefined symbols unless pointer equality is needed. 2340 23412008-04-18 Dennis Roberts <dennis.roberts@sunquestinfo.com> 2342 2343 * aix5ppc-core.c: Define macros for the default architecture and 2344 machine for matching core files. 2345 (xcoff64_core_p): Set the architecture and machine to the default 2346 values defined in the macros mentioned above. 2347 * rs6000-core.c: Define macros to determine whether or not the 2348 core file header uses the core_dumpxx header format. 2349 (rs6000coff_core_p): Don't match core files that use the 2350 core_dumpxx header format. 2351 23522008-04-16 Pedro Alves <pedro@codesourcery.com> 2353 2354 * config.bfd (i[3-7]86-*-dicos*, x86_64-*-dicos*): Add. 2355 23562008-04-16 David S. Miller <davem@davemloft.net> 2357 2358 * reloc.c (BFD_RELOC_SPARC_GOTDATA_HIX22, 2359 BFD_RELOC_SPARC_GOTDATA_LOX10, BFD_RELOC_SPARC_GOTDATA_OP_HIX22, 2360 BFD_RELOC_SPARC_GOTDATA_OP_LOX10, BFD_RELOC_SPARC_GOTDATA_OP): New. 2361 * libbfd.h: Regnerate. 2362 * bfd-in2.h: Regenerate. 2363 * elfxx-sparc.c (_bfd_sparc_elf_howto_table): Add entries for 2364 GOTDATA relocations. 2365 (sparc_reloc_map): Likewise. 2366 (_bfd_sparc_elf_check_relocs): Handle R_SPARC_GOTDATA_* like 2367 R_SPARC_GOT*. 2368 (_bfd_sparc_elf_gc_sweep_hook): Likewise. 2369 (_bfd_sparc_elf_relocate_section): Transform R_SPARC_GOTDATA_HIX22, 2370 R_SPARC_GOTDATA_LOX10, R_SPARC_GOTDATA_OP_HIX22, and 2371 R_SPARC_GOTDATA_OP_LOX10 into the equivalent R_SPARC_GOT* reloc. 2372 Simply ignore R_SPARC_GOTDATA_OP relocations. 2373 23742008-04-14 Aurelien Jarno <aurelien@aurel32.net> 2375 2376 * configure.in: Link with the PIC version of libiberty on 2377 Linux/MIPS hosts. 2378 * configure: Regenerate. 2379 23802008-04-14 Edmar Wienskoski <edmar@freescale.com> 2381 2382 * archures.c: Add bfd_mach_ppc_e500mc. 2383 * bfd-in2.h: Regenerate. 2384 23852008-04-08 Alan Modra <amodra@bigpond.net.au> 2386 2387 * elf32-spu.c (spu_elf_build_stubs): Correct error message. 2388 (mark_functions_via_relocs): Remove premature init of symtab_hdr. 2389 (collect_overlays): Commment typo fix. 2390 23912008-04-08 Kees Cook <kees@canonical.com> 2392 2393 * elflink.c (bfd_elf_size_dynamic_sections): Ignore GNU-stack note 2394 in EXEC_P bfds. 2395 23962008-04-08 Alan Modra <amodra@bigpond.net.au> 2397 2398 * elf32-spu.c: Include libiberty.h. 2399 (struct spu_link_hash_table): Add local_stire, overlay_fixed, reserved, 2400 non_ovly_stub, spu_elf_load_ovl_mgr, spu_elf_open_overlay_script, 2401 spu_elf_relink, auto_overlay fields. 2402 (AUTO_OVERLAY, AUTO_RELINK, OVERLAY_RODATA): Define. 2403 (needs_ovl_stub): Flip test so that call to non-function warning 2404 is emitted during relocate_section rather than earlier. 2405 (spu_elf_check_vma): Stash --auto-overlay parameters, and clear 2406 auto_overlay if no section exceeds local store. 2407 (struct call_info): Add count, max_depth, is_pasted fields. 2408 (struct function_info): Add rodata, last_caller, call_count, 2409 depth, new visit flags. 2410 (insert_callee): Increment call count. 2411 (copy_callee): New function. 2412 (mark_functions_via_relocs): Investigate all reloc types to count 2413 possible function pointer stubs for --auto-overlay. Track 2414 last_caller and increment function call_count. 2415 (pasted_function): Insert a "call" into call info for pasted section. 2416 (remove_cycles): Track max depth of calls. Don't emit call graph 2417 pruning warning for --auto-overlay. 2418 (build_call_tree): Don't transfer_calls for --auto-overlay. 2419 Adjust remove_cycles call. 2420 (sort_calls, sort_lib, sort_bfds): New functions. 2421 (struct _mos_param, struct _uos_param, struct _cl_param): New. 2422 (mark_overlay_section, unmark_overlay_section): New functions. 2423 (collect_lib_sectios, auto_ovl_lib_functions): New functions. 2424 (collect_overlays, find_pasted_call): New functions. 2425 (sum_stack): Deal with is_pasted "calls". Exit before printing 2426 when --auto-overlay. 2427 (spu_elf_auto_overlay): New function. 2428 (spu_elf_final_link): Call spu_elf_auto_overlay. 2429 * elf32-spu.h (spu_elf_check_vma): Update prototype. 2430 24312008-04-07 Alan Modra <amodra@bigpond.net.au> 2432 2433 * elf32-spu.c (allocate_spuear_stubs): Ensure _SPUEAR_ symbol 2434 is defined in overlay section before creating a stub. 2435 (build_spuear_stubs): Likewise. 2436 (spu_elf_size_stubs, spu_elf_build_stubs): Adjust calls. 2437 24382008-04-02 Alan Modra <amodra@bigpond.net.au> 2439 2440 * elf32-spu.c (insert_callee): Reorder call list so most recent 2441 call is always first. 2442 (interesting_section): Move. 2443 (mark_functions_via_relocs): Fold interesting_section and 2444 reloc_count tests in callers to here. Simplify output section 2445 owner test. 2446 (discover_functions): Set "gaps" when no symbols and some 2447 "interesting_section". Run pasted_function loop for no symbol 2448 bfds. 2449 (for_each_node, transfer_calls): New functions. 2450 (mark_non_root): Adjust to suit for_each_node. 2451 (call_graph_traverse): Likewise. Fix memory leak. Rename to.. 2452 (remove_cycles): ..this. 2453 (build_call_tree): Use for_each_node and transfer_calls. 2454 (struct _sum_stack_param): New. 2455 (sum_stack): Adjust to suit for_each_node. Return error on 2456 malloc failure. Move code to print root node cumulative stack from.. 2457 (spu_elf_stack_analysis): ..here. Use for_each_node. 2458 24592008-03-31 Cary Coutant <ccoutant@google.com> 2460 2461 PR 6006 2462 * archive.c (_bfd_slurp_extended_name_table): Change 2463 ARFMAG[0] to ARFMAG[1]. 2464 (_bfd_construct_extended_name_table): Likewise. 2465 24662008-03-31 Daniel Jacobowitz <dan@codesourcery.com> 2467 2468 * elfxx-mips.c (mips_elf_record_got_page_entry): Update comment. 2469 (_bfd_mips_elf_check_relocs): Update comments. Always call 2470 mips_elf_record_got_page_entry for R_MIPS_GOT_PAGE. 2471 24722008-03-27 Cary Coutant <ccoutant@google.com> 2473 2474 Add support for thin archives. 2475 * archive.c (_bfd_find_nested_archive): New function. 2476 (get_extended_arelt_filename): Add origin parameter. 2477 (_bfd_generic_read_ar_hdr_mag): Deal with extended name 2478 combined with a file offset. 2479 (append_relative_path): New function. 2480 (_bfd_get_elt_at_filepos): Deal with external members and 2481 nested archives. 2482 (bfd_generic_openr_next_archived_file): Thin archives. 2483 (bfd_generic_archive_p): Recognize new magic string. 2484 (adjust_relative_path): New function. 2485 (_bfd_construct_extended_name_table): Construct extended 2486 names for thin archive members. 2487 (_bfd_write_archive_contents): Emit new magic string, skip 2488 copying files for thin archives. 2489 * bfd-in.h (bfd_is_thin_archive): New macro. 2490 * bfd.c (struct bfd): New fields for thin archives. 2491 * libbfd-in.h (struct areltdata): New field for thin archives. 2492 * opncls.c (bfd_close): Delete BFDs for nested archives. 2493 24942008-03-25 Bernd Schmidt <bernd.schmidt@analog.com> 2495 2496 * elf32-bfin.c (bfin_final_link_relocate): New function, wrapper around 2497 _bfd_final_link_relocate that also handles R_pcrel24 relocs. 2498 (bfinfdpic_relocate_section, bfin_relocate_section): Use it. 2499 25002008-03-25 Nathan Sidwell <nathan@codesourcery.com> 2501 2502 * elf32-arm.c (elf32_arm_final_link_relocate): Skip dynamic relocs 2503 in vxworks tls_vars sections. 2504 (allocate_dynrelocs, elf32_arm_size_dynamic_sections): Likewise. 2505 * elf32-i386.c (allocate_dynrelocs, 2506 elf_i386_size_dynamic_sections, elf_i386_relocate_section): Likewise. 2507 * elf32-ppc.c (allocate_dynrelocs, ppc_elf_size_dynamic_sections, 2508 ppc_elf_relocate_section): Likewise. 2509 * elf32-sh.c (allocate_dynrelocs, sh_elf_size_dynamic_sections, 2510 sh_elf_relocate_section): Likewise. 2511 * elfxx-sparc.c (allocate_dynrelocs, 2512 _bfd_sparc_elf_size_dynamic_sections, 2513 _bfd_sparc_elf_relocate_section): Likewise. 2514 25152008-03-21 Adam Nemet <anemet@caviumnetworks.com> 2516 2517 * elf.c (_bfd_elf_print_private_bfd_data): Use bfd_fprintf_vma to 2518 print the values from the dynamic section. 2519 25202008-03-20 Richard Sandiford <rsandifo@nildram.co.uk> 2521 2522 * elfxx-mips.c (MIPS_ELF_GNU_GOT1_MASK): New macro. 2523 (_bfd_mips_elf_finish_dynamic_sections): Use it instead of 0x80000000. 2524 25252008-03-20 Alan Modra <amodra@bigpond.net.au> 2526 2527 * elf32-spu.c (spu_elf_create_sections): Remove output_bfd parameter. 2528 (spu_elf_find_overlays, spu_elf_size_stubs): Likewise 2529 (process_stubs, discover_functions, build_call_tree): Likewise. 2530 (spu_elf_stack_analysis): Likewise. 2531 (spu_elf_check_vma): Likewise. Move. 2532 (struct call_info): Make "is_tail" a bitfield. 2533 (insert_callee): Clear fun->start and set fun->is_func if we find 2534 a non-tail call. 2535 * elf32-spu.h (spu_elf_create_sections): Update prototype. 2536 (spu_elf_find_overlays, spu_elf_size_stubs, spu_elf_check_vma): Ditto. 2537 25382008-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 2539 2540 * aclocal.m4: Regenerate. 2541 * configure: Likewise. 2542 * Makefile.in: Likewise. 2543 25442008-03-16 H.J. Lu <hongjiu.lu@intel.com> 2545 2546 PR ld/5789 2547 PR ld/5943 2548 * elf32-i386.c (elf_i386_relocate_section): Issue an error 2549 for R_386_GOTOFF relocaton against undefined hidden/internal 2550 symbols when building a shared object. 2551 2552 * elf64-x86-64.c (elf64_x86_64_relocate_section): Issue an 2553 error for R_X86_64_PC8/R_X86_64_PC16/R_X86_64_PC32 2554 relocaton against undefined hidden/internal symbols when 2555 building a shared object. 2556 (elf64_x86_64_finish_dynamic_symbol): Return FALSE when symbol 2557 is referenced locally, but isn't defined in a regular file. 2558 25592008-03-15 H.J. Lu <hongjiu.lu@intel.com> 2560 2561 * bfd-in.h (BFD_NO_FLAGS, HAS_RELOC, EXEC_P, HAS_LINENO, 2562 HAS_DEBUG, HAS_SYMS, HAS_LOCALS, DYNAMIC, WP_TEXT, D_PAGED, 2563 BFD_IS_RELAXABLE, BFD_TRADITIONAL_FORMAT, BFD_IN_MEMORY, 2564 HAS_LOAD_PAGE, BFD_LINKER_CREATED): Moved to ... 2565 * bfd.c: Here. 2566 2567 * bfd.c (bfd): Change cacheable, target_defaulted, opened_once, 2568 mtime_set, no_export, output_has_begun and has_armap to bit 2569 field. 2570 2571 * bfd-in2.h: Regenerated. 2572 25732008-03-14 Daniel Jacobowitz <dan@codesourcery.com> 2574 2575 * cache.c (close_one): Remove mtime hack. 2576 25772008-03-14 H.J. Lu <hongjiu.lu@intel.com> 2578 2579 PR ld/5913 2580 * elfxx-ia64.c (elfNN_ia64_tprel_base): Remove BFD_ASSERT. 2581 (elfNN_ia64_dtprel_base): Likewise. 2582 (elfNN_ia64_relocate_section): Go to missing_tls_sec if 2583 tls_sec is NULL before calling elfNN_ia64_tprel_base or 2584 elfNN_ia64_dtprel_base. Report unsupported TLS relocations. 2585 25862008-03-14 Alan Modra <amodra@bigpond.net.au> 2587 2588 * elf32-spu.c (process_stubs, spu_elf_relocate_section): Move 2589 common code to.. 2590 (maybe_needs_stub): ..here, a new function that also omits stubs 2591 for .eh_frame, and.. 2592 (needs_ovl_stub): ..here. Create stubs for labels in code section 2593 referenced by switch jump table. 2594 (spu_elf_find_overlays): Set htab->ovly_load and htab->ovly_return. 2595 (enum _insn_type): Delete. 2596 (enum _stub_type): New. 2597 (count_stub, build_stub): Adjust. 2598 (allocate_spuear_stubs, build_spuear_stubs): Adjust. 2599 26002008-03-13 Alan Modra <amodra@bigpond.net.au> 2601 2602 * elf.c (_bfd_elf_make_section_from_shdr): Remove unnecessary cast. 2603 (_bfd_elf_assign_file_position_for_section): Simplify align. 2604 (_bfd_elf_init_reloc_shdr): Ensure shift expression wide enough 2605 for sh_addralign. 2606 (elf_fake_sections, swap_out_syms): Likewise. 2607 * elflink.c (bfd_elf_final_link): Likewise. 2608 26092008-03-13 Alan Modra <amodra@bigpond.net.au> 2610 2611 * Makefile.am: Run "make dep-am". 2612 * Makefile.in: Regenerate. 2613 * po/SRC-POTFILES.in: Regenerate. 2614 26152008-03-12 Bernd Schmidt <bernd.schmidt@analog.com> 2616 2617 From Jie Zhang <jie.zhang@analog.com> 2618 * elf32-bfin.c (struct bfinfdpic_relocs_info): Make got17m4, 2619 gothilo, fd, fdgot17m4, fdgothilo, fdgoff17m4, fdgoffhilo, 2620 gotoff, call and sym not bitfields. 2621 (bfinfdpic_gc_sweep_hook): New function; update the relocation 2622 information for the relocations of the section being removed. 2623 (bfinfdpic_check_relocs): Accumulate the number of relocations 2624 which set got17m4, gothilo, fd, fdgot17m4, fdgothilo, fdgoff17m4, 2625 fdgoffhilo, gotoff, call and sym fields. 2626 (elf_backend_gc_sweep_hook): Redefine for FD-PIC. 2627 26282008-03-12 Alan Modra <amodra@bigpond.net.au> 2629 2630 PR 5900 2631 * elf-bfd.h: Include elf/internal.h after elf/external.h. 2632 * elfcode.h (elf_swap_symbol_in): Map reserved shndx range. 2633 (elf_swap_symbol_out): Adjust SHN_XINDEX test. 2634 (elf_swap_ehdr_out): Mask SHN_LORESERVE and SHN_XINDEX to values 2635 seen in external structs. 2636 (valid_section_index_p): Delete. 2637 (elf_object_p): Don't increment section numbers over reserved range. 2638 Simplify test for valid sh_link, sh_info and e_shstrndx fields. 2639 (elf_write_shdrs_and_ehdr): Mask SHN_LORESERVE and SHN_XINDEX to values 2640 seen in external structs. Don't increment section numbers over 2641 reserved range. 2642 * elf.c (bfd_elf_sym_name): Remove redundant tests on st_shndx. 2643 (bfd_section_from_shdr): Likewise. 2644 (group_signature): Range check before accessing elf_elfsections. 2645 (_bfd_elf_setup_sections): Likewise. 2646 (bfd_section_from_shdr): Likewise. 2647 (bfd_section_from_shdr): Don't increment section number over 2648 reserved sections. 2649 (assign_file_positions_for_non_load_sections): Likewise. 2650 (assign_file_positions_except_relocs): Likewise. 2651 (_bfd_elf_write_object_contents): Likewise. 2652 (assign_section_numbers): Likewise. Adjust for changed SHN_*. 2653 (prep_headers): Delete unused variable. 2654 * elflink.c (bfd_elf_link_record_local_dynamic_symbol): Adjust 2655 for changed SHN_* values. 2656 (check_dynsym, elf_link_input_bfd): Likewise. 2657 (bfd_elf_final_link): Likewise. Don't skip over reserved section 2658 range. 2659 (elf_fixup_link_order): Check that sh_link field is valid. 2660 * elf-hppa.h (elf_hppa_add_symbol_hook): Make "index" unsigned. 2661 * elf32-arm.c (elf32_arm_gc_mark_extra_sections): Range check before 2662 accesssing elf_elfsections. 2663 * elf32-avr.c (elf32_avr_size_stubs): Likewise. 2664 * elf32-hppa.c (elf32_hppa_size_stubs): Likewise. 2665 * elf32-m68hc1x.c (elf32_m68hc11_size_stubs): Likewise. 2666 * elf64-hppa.c (elf64_hppa_check_relocs): Adjust for changed 2667 SHN_* defines. Test for SHN_BAD return from 2668 _bfd_elf_section_from_bfd_section 2669 26702008-03-12 Alan Modra <amodra@bigpond.net.au> 2671 2672 * elf-bfd.h (_bfd_elf_section_from_bfd_section): Update prototype. 2673 * elf.c (_bfd_elf_section_from_bfd_section): Return unsigned int, 2674 SHN_BAD on error. 2675 (_bfd_elf_print_private_bfd_data): Test for SHN_BAD result from 2676 _bfd_elf_section_from_bfd_section, not -1. 2677 (swap_out_syms): Likewise. 2678 * elflink.c (elf_link_add_object_symbols): Likewise. 2679 (bfd_elf_get_bfd_needed_list): Likewise. 2680 (bfd_elf_match_symbols_in_sections): Likewise. 2681 (elf_link_add_object_symbols): Don't bother testing for symbols 2682 using normal sections before calling bfd_section_from_elf_index. 2683 (elf_link_input_bfd, bfd_elf_final_link): Likewise. 2684 (bfd_elf_reloc_symbol_deleted_p): Likewise. 2685 * elfcode.h (elf_slurp_symbol_table): Likewise. 2686 * elf32-spu.c (get_sym_h): Likewise. 2687 * elf32-xtensa.c (get_elf_r_symndx_section): Likewise. 2688 * elf64-ppc.c (opd_entry_value, get_sym_h, ppc64_elf_edit_toc): Ditto. 2689 * elf64-sh64.c (sh_elf64_get_relocated_section_contents): Likewise. 2690 26912008-03-11 Alan Modra <amodra@bigpond.net.au> 2692 2693 * elf32-spu.c (spu_elf_relocate_section): Test identical conditions 2694 to those in process_stubs for overlay symbols. 2695 26962008-03-09 Paul Brook <paul@codesourcery.com> 2697 2698 * elf32-arm.c (elf32_arm_merge_eabi_attributes): Handle new 2699 Tag_VFP_arch values. 2700 27012008-03-08 Paul Brook <paul@codesourcery.com> 2702 2703 * elf32-arm.c (insert_thumb_branch): Rewrite. 2704 (elf32_thumb_to_arm_stub): Use new insert_thumb_branch. 2705 27062008-03-07 Paul Brook <paul@codesourcery.com> 2707 2708 * elf32-arm.c (elf32_arm_howto_table_1): Fix bitmasks for MOVW and 2709 MOVT relocations. 2710 (elf32_arm_final_link_relocate): Fix off by one MOVW/MOVT sign 2711 extension. 2712 (elf32_arm_relocate_section): Handle MOVW and MOVT 2713 relocations. Improve safety check for other weird relocations. 2714 (elf32_arm_check_relocs): Only set h->needs_plt for branch/call 2715 relocations. 2716 27172008-03-03 Bob Wilson <bob.wilson@acm.org> 2718 2719 * xtensa-isa.c (xtensa_isa_num_pipe_stages): Make max_stage static and 2720 only compute its value once. 2721 27222008-03-03 Alan Modra <amodra@bigpond.net.au> 2723 2724 * elf32-spu.c (struct got_entry): Add "addend" field. 2725 (count_stub, build_stub): Use a new stub if relocation addend 2726 differs from existing stubs for this symbol. 2727 (process_stubs): Deal with addends. 2728 (spu_elf_relocate_section, spu_elf_output_symbol_hook): Likewise. 2729 27302008-03-02 H.J. Lu <hongjiu.lu@intel.com> 2731 2732 PR ld/5789 2733 * elflink.c (_bfd_elf_symbol_refs_local_p): Always return true 2734 for hidden and local symbols. 2735 27362008-03-03 Alan Modra <amodra@bigpond.net.au> 2737 2738 * elf32-ppc.c (allocate_dynrelocs): Discard relocs on 2739 undefined symbols with internal or hidden visibility. 2740 (ppc_elf_relocate_section): Likewise. Use SYMBOL_CALLS_LOCAL 2741 rather than SYMBOL_REFERENCES_LOCAL on branches. Don't 2742 return immediately on dynamic reloc error. 2743 27442008-03-01 Alan Modra <amodra@bigpond.net.au> 2745 2746 * elf64-ppc.c (build_plt_stub): Add relocs on plt call stubs 2747 if emitrelocations. 2748 (get_relocs): New function, split out from.. 2749 (ppc_build_one_stub): ..here. Add relocs on plt_branch stubs if 2750 emitrelocations. Remove indx temp. 2751 (ppc_size_one_stub): Count new stub relocs. 2752 (ppc64_elf_size_stubs): Count new glink reloc. 2753 (ppc64_elf_build_stubs): Emit glink reloc if emitrelocations. 2754 (ppc64_elf_finish_dynamic_sections): Output glink relocs. 2755 * elf32-ppc.c (ppc_elf_finish_dynamic_sections): Describe non-pic 2756 glink code. 2757 27582008-02-28 Alan Modra <amodra@bigpond.net.au> 2759 2760 * elf32-spu.c (mark_functions_via_relocs): Don't assume that 2761 the "->start" pointer reaches to function origin, so that we 2762 can handle functions split over more than two sections. 2763 (build_call_tree): Likewise. 2764 (pasted_function): Don't attempt to set fun->start back to the 2765 function origin, just go back one section. 2766 27672008-02-27 Catherine Moore <clm@codesourcery.com> 2768 2769 * elf.c ( _bfd_elf_print_private_bfd_data): Call 2770 elf_backend_get_target_dtag if defined. 2771 * elf32-mips.c (elf_backend_get_target_dtag): Define. 2772 * elf64-mips.c: Likewise. 2773 * elfn32-mips.c: Likewise. 2774 * elfxx-mips.c (_bfd_mips_elf_get_target_dtag): New. 2775 * elfxx-mips.h (_bfd_mips_elf_get_target_dtag): Declare. 2776 * elf-bfd.h (elf_backend_get_target_dtag): Add prototype. 2777 * elfxx-target.h (elf_backend_get_target_dtag): Add default. 2778 (elf_backend_data): Add elf_backend_get_target_dtag. 2779 27802008-02-26 Alan Modra <amodra@bigpond.net.au> 2781 2782 * elf32-ppc.c (ppc_elf_check_relocs): Set pointer_equality_needed 2783 for R_PPC_REL32 syms. Don't set non_got_ref on branch reloc syms, 2784 and assume branch relocs are not dynamic when non-shared. 2785 (readonly_dynrelocs): New function, split out from.. 2786 (maybe_set_textrel): ..here, renamed from old readonly_dynrelocs. 2787 (ppc_elf_adjust_dynamic_symbol): For symbols generating plt entries, 2788 clear non_got_ref.. 2789 (allocate_dynrelocs): ..and don't set u.def for undefined weak. 2790 Do allow dynamic relocs on undefined symbols. 2791 (ppc_elf_adjust_dynamic_symbol): Use readonly_dynrelocs. 2792 (ppc_elf_relocate_section): Mirror dynamic reloc changes in 2793 check_relocs. 2794 (ppc_elf_finish_dynamic_symbol): Don't give a warning on weak 2795 plt symbols needing pointer_equality_needed. 2796 27972008-02-23 Alan Modra <amodra@bigpond.net.au> 2798 2799 * elf32-ppc.c (ppc_elf_check_relocs): Revert non_got_ref change. 2800 28012008-02-23 Alan Modra <amodra@bigpond.net.au> 2802 2803 * elf32-ppc.c (ppc_elf_copy_indirect_symbol): Copy 2804 pointer_equality_needed. 2805 (ppc_elf_check_relocs): Split out non-branch relocs from others 2806 that might emit dynamic relocs. Set pointer_equality_needed 2807 for their symbols. Don't set non_got_ref on branch reloc symbols. 2808 (ppc_elf_hash_symbol): New function. 2809 (elf_backend_hash_symbol): Define. 2810 (ppc_elf_finish_dynamic_symbol): Handle pointer_equality_needed. 2811 Error if pointer_equality_needed on weak plt symbol. 2812 28132008-02-22 H.J. Lu <hongjiu.lu@intel.com> 2814 2815 PR ld/5788 2816 * elflink.c (elf_create_symbuf): Correct buffer size and 2817 position. 2818 28192008-02-22 Nick Clifton <nickc@redhat.com> 2820 2821 PR 868 2822 * dwarf2.c: Revert previous patch. All of the allocate memory is 2823 on an obstack which will be freed at some other time. 2824 28252008-02-20 Nick Clifton <nickc@redhat.com> 2826 2827 PR 868 2828 * libbfd.c (bfd_realloc_or_free): New function. Performs like 2829 bfd_realloc, but if the (re)allocation fails, the pointer is 2830 freed. 2831 * libbfd-in.h: Prototype. 2832 * libbfd.h: Regenerate. 2833 * bfdio.c (bfd_bwrite): Use the new function. 2834 (bfd_seek): Likewise. 2835 * bfdwin.c:(bfd_get_file_window): Likewise. 2836 * elf-strtab.c (_bfd_elf_strtab_add): Likewise. 2837 * elf32-ppc.c (ppc_elf_relax_section): Likewise. 2838 * elf32-xtensa.c (vsprintf_msg): Likewise. 2839 * mach-o.c (bfd_mach_o_core_fetch_environment): Likewise. 2840 * stabs.c (_bfd_link_seciton_stabs): Likewise. 2841 * vms-misc.c (_bfd_vms_get_record): Likewise. 2842 * vms-tir.c (check_section): Likewise. 2843 * vms.c (vms_new_section_hook): Likewise. 2844 * elf32-arm.c (elf32_arm_section_map_add): Check that the 2845 allocation of sec_data->map succeeded before using it. 2846 * elflink.c (elf_link_output_sym): Do not overwrite finfo-> 2847 symshndxbuf until it is known that the reallocation succeeded. 2848 28492008-02-20 Diogo de Carvalho Kraemer <diogo@kraemer.eng.br> 2850 Nick Clifton <nickc@redhat.com> 2851 2852 PR 868 2853 * dwarf2.c (read_abbrevs): Free the abbreviation table if we run 2854 out of memory. 2855 (decode_line_info): Free the line_info_table before returning a 2856 failure result. 2857 (_bfd_dwarf2_cleanup_debug_info): Free the abbreviation table. 2858 Free the line table. Free the function table. Free the variable 2859 table. 2860 28612008-02-17 Mark Kettenis <kettenis@gnu.org> 2862 2863 * elf.c (swap_out_syms): Avoid preprocessing directive within 2864 macro arg. 2865 28662008-02-17 Jan Kratochvil <jan.kratochvil@redhat.com> 2867 2868 * elf.c (assign_file_positions_for_load_sections): Set the type of 2869 PT_NOTE sections to SHT_NOTE. 2870 28712008-02-17 Ulrich Weigand <uweigand@de.ibm.com> 2872 2873 * simple.c (bfd_simple_get_relocated_section_contents): Set 2874 link_info.output_bfd. 2875 28762008-02-16 Nathan Sidwell <nathan@codesourcery.com> 2877 2878 * dwarf2.c (find_line): Don't trust debug information after an 2879 unparseable compilation unit. 2880 28812008-02-15 Alan Modra <amodra@bigpond.net.au> 2882 2883 PR 5765 2884 * section.c (SEC_LINK_DUPLICATES): Correct. Renumber following flags. 2885 * bfd-in2.h: Regenerate. 2886 28872008-02-15 Alan Modra <amodra@bigpond.net.au> 2888 2889 * elf-bfd.h (enum elf_object_id): Add HPPA_ELF_TDATA. 2890 * elf.c (bfd_elf_allocate_object): Don't check for already allocated 2891 tdata. 2892 * elf32-hppa.c (elf32_hppa_mkobject): New function. 2893 (bfd_elf32_mkobject): Define. 2894 * elf32-ppc.c (is_ppc_elf_target): Delete. Replace all uses with.. 2895 (is_ppc_elf): ..this new macro. 2896 * elf64-ppc.c (is_ppc64_elf_target): Delete. Replace all uses with.. 2897 (is_ppc64_elf): ..this new macro. 2898 28992008-02-15 Alan Modra <amodra@bigpond.net.au> 2900 2901 * elflink.c: Replace all accesses to hash->creator field with 2902 output_bfd->xvec. 2903 * cofflink.c: Likewise. 2904 * coff-h8300.c: Likewise. 2905 * ecoff.c: Likewise. 2906 * elf32-m68hc1x.c: Likewise. 2907 * elf32-ppc.c: Likewise. 2908 * elf64-alpha.c: Likewise. 2909 * elf64-ppc.c: Likewise. 2910 * elf64-sparc.c: Likewise. 2911 * elfxx-mips.c: Likewise. 2912 * i386linux.c: Likewise. 2913 * m68klinux.c: Likewise. 2914 * sparclinux.c: Likewise. 2915 * sunos.c: Likewise. 2916 * xcofflink.c: Likewise. 2917 * linker.c: Likewise. 2918 (_bfd_link_hash_table_init): Don't store creator. 2919 29202008-02-14 Peter Jones <pjones@redhat.com> 2921 2922 * efi-rtdrv-ia32.c: New file. 2923 * efi-bsdrv-ia32.c: New file. 2924 * efi-rtdrv-ia64.c: New file. 2925 * efi-bsdrv-ia64.c: New file. 2926 * efi-rtdrv-x86_64.c: New file. 2927 * efi-bsdrv-x86_64.c: New file. 2928 * peicode.h (pe_bfd_object_p): Add support for boot service and 2929 runtime service drivers. 2930 * libpei.h: Add macros for EFI formats, and rename the efi application 2931 format macros to disambiguate. 2932 * targets.c: Add bfd_target _vec externs. 2933 (_bfd_tar): Add EFI _vec entries. 2934 * config.bfd: Add EFI vectors into the selection routines. 2935 * configure.in: add EFI _vec entries. 2936 * configure: Regenerate. 2937 * Makefile.am: Add EFI files. 2938 * Makefile.in: Regenerate. 2939 29402008-02-14 Nathan Sidwell <nathan@codesourcery.com> 2941 2942 * dwarf1.c (struct dwarf1_debug): Add syms member. 2943 (alloc_dwarf1_unit, alloc_dwarf1_func): Check for out of memory. 2944 (parse_line_table, _bfd_dwarf1_find_nearest_line): Relocate 2945 section contents, check for out of memory. 2946 2947 * dwarf1.c (struct dwarf1_debug): Change data pointers to bfd_byte. 2948 (parse_die): Change data pointers to bfd_byte. 2949 (parse_line_table, parse_functions_in_unit): Likewise. 2950 29512008-02-14 Alan Modra <amodra@bigpond.net.au> 2952 2953 * elflink.c (compute_bucket_count): Warning fixes. 2954 29552008-02-12 DJ Delorie <dj@redhat.com> 2956 2957 * elf32-iq2000.c (iq2000_elf_relocate_section): Adjust addend of 2958 relocation pointing to local symbol in merged section. 2959 2960 * elf32-iq2000.c (iq2000_elf_relocate_offset16): New. 2961 (iq2000_elf_relocate_section): Call it. 2962 29632008-02-12 Nick Clifton <nickc@redhat.com> 2964 2965 PR ld/5692 2966 * elf-bfd.h (enum elf_object_id): New enum, used to identify 2967 target specific extensions to the elf_obj_tdata structure. 2968 (struct elf_obj_tdata): New field 'object_id'. 2969 (elf_object_id, elf_program_header_size, elf_symtab_hdr): New 2970 macros for accessing fields in the elf_obj_tdata structure. 2971 (bfd_elf_mkobject): Rename to bfd_elf_make_generic_object. 2972 (bfd_elf_allocate_object): New function. 2973 * elf.c (bfd_elf_mkobject): Rename to bfd_elf_make_generic_object 2974 and implement by calling bfd_elf_allocate_object. 2975 (bfd_elf_allocate_object): New function: Allocates an 2976 elf_obj_tdata structure, possibly with a target specific 2977 extension. 2978 * elfxx-target.h (bfd_elfNN_mkobject): Use 2979 bfd_elf_make_generic_object as the default value. 2980 * elf32-arm.c (elf32_arm_obj_tdata): Rename to elf_arm_obj_tdata 2981 for consistency with other, similar structures. 2982 (is_arm_elf): New macro. Checks a BFD to make sure that is an ARM 2983 ELF bfd. 2984 (elf32_arm_mkobject): Call bfd_elf_allocate_object. 2985 (bfd_elf32_arm_vfp11_erratum_scan): Use is_arm_elf macro to check 2986 the bfd being processed. 2987 (bfd_elf32_arm_vfp11_fix_veneer_locations): Likewise. 2988 (bfd_elf32_arm_set_target_relocs): Likewise. 2989 (bfd_elf32_arm_final_link_relocate): Likewise. 2990 (bfd_elf32_arm_copy_private_bfd_data): Likewise. 2991 (bfd_elf32_arm_merge_eabi_attributes): Likewise. 2992 (bfd_elf32_arm_merge_private_bfd_data): Likewise. 2993 (bfd_elf32_arm_check_relocs): Likewise. 2994 (bfd_elf32_arm_gc_mark_extra_sections): Likewise. 2995 (bfd_elf32_arm_size_dynamic_sections): Likewise. 2996 (bfd_elf32_arm_process_before_allocation): Use elf_symtab_hdr. 2997 (bfd_elf32_arm_init_maps): Likewise. 2998 (bfd_elf32_arm_final_link_relocate): Likewise. 2999 (bfd_elf32_arm_relocate_section): Likewise. 3000 (bfd_elf32_arm_gc_sweep_hook): Likewise. 3001 (bfd_elf32_arm_check_relocs): Likewise. 3002 (bfd_elf32_arm_size_dynamic_sections): Likewise. 3003 * elf32-i386.c (elf_i386_mkobject): Call bfd_elf_allocate_object. 3004 (is_i386_elf): New macro. Checks a BFD to make sure that is an x86 3005 ELF bfd. 3006 (elf_i386_check_relocs): Use is_i386_elf macro to check the bfd 3007 being processed. 3008 (elf_i386_size_dynamic_sections): Likewise. 3009 (elf_i386_relocate_section): Likewise. 3010 (elf_i386_check_relocs): Use elf_symtab_hdr. 3011 (elf_i386_gc_sweep_hook): Likewise. 3012 (elf_i386_size_dynamic_sections): Likewise. 3013 (elf_i386_relocate_section): Likewise. 3014 * elf32-ppc.c (ppc_elf_mkobject): Call bfd_elf_allocate_object. 3015 (elf_create_pointer_linker_section): Use is_ppc_elf_target to 3016 verify that the bfd before accessing target specific fields. 3017 (ppc_elf_check_relocs): Likewise. 3018 (elf_finish_pointer_linker_section): Likewise. 3019 (elf_create_pointer_linker_section): Use elf_symtab_hdr. 3020 (ppc_elf_check_relocs): Likewise. 3021 (ppc_elf_gc_sweep_hook): Likewise. 3022 (ppc_elf_tls_optimize): Likewise. 3023 (ppc_elf_size_dynamic_sections): Likewise. 3024 (ppc_elf_relax_section): Likewise. 3025 (ppc_elf_relocate_section): Likewise. 3026 * elf32-s390.c (struct elf_s390_obj_tdata): Add a comment 3027 reminding programmers to keep this structure in sync with the one 3028 defined in elf64-s390.c. 3029 (elf_s390_mkobject): Call bfd_elf_allocate_object. 3030 (is_s390_elf): New macro. Checks a BFD to make sure that is an s390 3031 ELF bfd. 3032 (elf_s390_check_relocs): Use is_s390_elf macro to check the bfd 3033 being processed. 3034 (elf_s390_size_dynamic_sections): Likewise. 3035 (elf_s390_relocate_section): Likewise. 3036 (elf_s390_check_relocs): Use elf_symtab_hdr. 3037 (elf_s390_gc_sweep_hook): Likewise. 3038 (elf_s390_size_dynamic_sections): Likewise. 3039 (elf_s390_relocate_section): Likewise. 3040 * elf32-sh.c (sh_elf_mkobject): Call bfd_elf_allocate_object. 3041 (is_sh_elf): New macro. Checks a BFD to make sure that is an SH 3042 ELF bfd. 3043 (sh_elf_size_dynamic_sections): Use is_sh_elf macro to check the 3044 bfd being processed. 3045 (sh_elf_relocate_section): Likewise. 3046 (sh_elf_check_relocs): Likewise. 3047 (sh_elf_copy_private_data): Likewise. 3048 (sh_elf_relax_section): Use elf_symtab_hdr. 3049 (sh_elf_size_dynamic_sections): Likewise. 3050 (sh_elf_relocate_section): Likewise. 3051 (sh_elf_get_relocated_section_contents): Likewise. 3052 (sh_elf_gc_sweep_hook): Likewise. 3053 (sh_elf_check_relocs): Likewise. 3054 * elf64-alpha.c (elf64_alpha_mkobject): Call bfd_elf_allocate_object. 3055 (is_alpha_elf): New macro. Checks a BFD to make sure that is an 3056 Alpha ELF bfd. 3057 (elf64_alpha_create_got_section): Use is_alpha_elf macro to check 3058 the bfd being processed. 3059 (elf64_alpha_create_dynamic_section): Likewise. 3060 (elf64_alpha_check_relocs): Likewise. 3061 (elf64_alpha_size_got_sections): Likewise. 3062 (elf64_alpha_relax_section): Likewise. 3063 (elf64_alpha_relocate_section): Likewise. 3064 (elf64_alpha_final_link): Likewise. 3065 (elf64_alpha_check_relocs): Use elf_symtab_hdr. 3066 (elf64_alpha_relax_section): Likewise. 3067 (elf64_alpha_relocate_section_r): Likewise. 3068 (elf64_alpha_relocate_section): Likewise. 3069 * elf64-ppc.c (ppc64_elf_mkobject): Call bfd_elf_allocate_object. 3070 (ppc64_elf_check_relocs): Use is_ppc64_elf_target to check the bfd 3071 being processed. 3072 (opd_entry_value): Likewise. 3073 (allocate_dynrelocs): Likewise. 3074 (ppc64_elf_relocate_section): Likewise. 3075 (ppc64_elf_check_relocs): Use elf_symtab_hdr. 3076 (opd_entry_value): Likewise. 3077 (ppc64_elf_gc_sweep_hook): Likewise. 3078 (get_sym_h): Likewise. 3079 (ppc64_elf_edit_opd): Likewise. 3080 (ppc64_elf_tls_optimize): Likewise. 3081 (ppc64_elf_edit_toc): Likewise. 3082 (ppc64_elf_size_dynamic_sections): Likewise. 3083 (toc_adjusting_stub_needed): Likewise. 3084 (ppc64_elf_size_stubs): Likewise. 3085 (ppc64_elf_relocate_section): Likewise. 3086 * elf64-s390.c (struct elf_s390_obj_tdata): Add a comment 3087 reminding programmers to keep this structure in sync with the one 3088 defined in elf32-s390.c. 3089 (elf_s390_mkobject): Call bfd_elf_allocate_object. 3090 (is_s390_elf): New macro. Checks a BFD to make sure that is an s390 3091 ELF bfd. 3092 (elf_s390_check_relocs): Use is_s390_elf macro to check the bfd 3093 being processed. 3094 (elf_s390_size_dynamic_sections): Likewise. 3095 (elf_s390_relocate_section): Likewise. 3096 (elf_s390_check_relocs): Use elf_symtab_hdr. 3097 (elf_s390_gc_sweep_hook): Likewise. 3098 (elf_s390_size_dynamic_sections): Likewise. 3099 (elf_s390_relocate_section): Likewise. 3100 * elf64-x86_64.c (elf64_x86_64_mkobject): Call bfd_elf_allocate_object. 3101 (is_x86_64_elf): New macro. Checks a BFD to make sure that is an 3102 x86_64 ELF bfd. 3103 (elf64_x86_64_check_relocs): Use is_x86_64_elf macro to check the bfd 3104 being processed. 3105 (elf64_x86_64_size_dynamic_sections): Likewise. 3106 (elf64_x86_64_relocate_section): Likewise. 3107 (elf64_x86_64_check_relocs): Use elf_symtab_hdr. 3108 (elf64_x86_64_gc_sweep_hook): Likewise. 3109 (elf64_x86_64_size_dynamic_sections): Likewise. 3110 (elf64_x86_64_relocate_section): Likewise. 3111 * elfxx-sparc.c (_bfd_sparc_elf_mkobject): Call bfd_elf_allocate_object. 3112 (is_sparc_elf): New macro. Checks a BFD to make sure that is a Sparc 3113 ELF bfd. 3114 (_bfd_sparc_elf_check_relocs): Use is_sparc_elf macro to check the 3115 bfd being processed. 3116 (_bfd_sparc_elf_gc_sweep_hook): Likewise. 3117 (_bfd_sparc_elf_size_dynamic_sections): Likewise. 3118 (_bfd_sparc_elf_check_relocs): Use elf_symtab_hdr. 3119 (_bfd_sparc_elf_gc_sweep_hook): Likewise. 3120 (_bfd_sparc_elf_size_dynamic_sections): Likewise. 3121 (_bfd_sparc_elf_relocate_section): Likewise. 3122 31232008-02-12 Alan Modra <amodra@bigpond.net.au> 3124 3125 PR 5303, 5755 3126 * arange-set.c: Delete. 3127 * arange-set.h: Delete. 3128 * dwarf2.c: Revert 2007-09-21 changes. 3129 * Makefile.am: Likewise. 3130 * Makefile.in: Regenerate. 3131 * po/SRC-POTFILES.in: Regenerate. 3132 31332008-02-11 Bernd Schmidt <bernd.schmidt@analog.com> 3134 3135 * elf32-bfin.c (bfin_relocate_section): Set up dynobj before using it 3136 if necessary. 3137 (elf32_bfin_merge_private_bfd_data): Simplify, and ensure object type 3138 mismatches are detected. 3139 3140 * elf32-bfin.c (bfinfdpic_relocate_section): Take more care not to 3141 emit invalid relocs or rofixup entries for deleted .eh_frame entries. 3142 31432008-02-11 Daniel Jacobowitz <dan@codesourcery.com> 3144 3145 * cache.c (cache_bread): Set bfd_error_file_truncated if EOF 3146 was reached. 3147 * srec.c (srec_scan): Calculate the checksum. Complain on mismatch. 3148 31492008-02-07 Alan Modra <amodra@bigpond.net.au> 3150 3151 * elf32-spu.c (spu_elf_size_stubs): Revert 2008-01-28 doubling 3152 of _ovly_buf_table size. 3153 (spu_elf_build_stubs): Use low bit of .size as "present" bit. 3154 Adjust initialisations relating to _ovly_buf_table. 3155 31562008-02-04 Bob Wilson <bob.wilson@acm.org> 3157 3158 * elf32-xtensa (elf_xtensa_relocate_section): After finding an invalid 3159 relocation, do not continue processing it. Ignore R_XTENSA_ASM_EXPAND 3160 relocations against dynamic symbols. 3161 (elf_xtensa_finish_dynamic_sections): Do not fail if there is no 3162 .xt.lit section. 3163 31642008-02-04 Kai Tietz <kai.tietz@onevision.com> 3165 H.J. Lu <hongjiu.lu@intel.com> 3166 3167 PR 5715 3168 * warning.m4: Enable -Wno-format by default when using gcc on 3169 mingw. 3170 * configure: Regenerated. 3171 31722008-02-04 Adam Nemet <anemet@caviumnetworks.com> 3173 3174 * archures.c: Update copyright. 3175 (bfd_mach_mips_octeon): New macro. 3176 * bfd-in2.h: Regenerate. 3177 * elfxx-mips.c (_bfd_elf_mips_mach): Handle Octeon. 3178 (mips_set_isa_flags): Likewise. 3179 (mips_mach_extensions): Add Octeon. 3180 * cpu-mips.c: Update copyright. 3181 (I_mipsocteon): New enum constant. 3182 (arch_info_struct): Add Octeon. 3183 31842008-02-04 Alan Modra <amodra@bigpond.net.au> 3185 3186 * elf32-spu.c (spu_elf_relocate_section): Correct return type. 3187 Return error status on unexpected relocation errors. 3188 31892008-02-04 Alan Modra <amodra@bigpond.net.au> 3190 3191 PR ld/5692 3192 * elf.c (bfd_elf_get_elf_syms): Revert 2008-01-31. Instead abort 3193 on non-ELF input. 3194 * elf32-arm.c (elf32_arm_size_dynamic_sections): Skip glue 3195 processing on non-ELF input. 3196 31972008-01-31 Marc Gauthier <marc@tensilica.com> 3198 3199 * config.bfd (xtensa*-*-*): Recognize processor variants. 3200 32012008-01-31 Nick Clifton <nickc@redhat.com> 3202 3203 PR ld/5692 3204 * elf.c (bfd_elf_get_elf_syms): Check the return value of 3205 get_elf_backend_data. 3206 32072008-01-28 Fabian Groffen <grobian@gentoo.org> 3208 3209 * config.bfd (x86_64-*-solaris2): Add support for this target. 3210 32112008-01-28 Alan Modra <amodra@bigpond.net.au> 3212 3213 Rewrite SPU overlay handling code. Put overlay calls stubs in the 3214 overlays where possible. Use a faster call stub, or optionally at 3215 compile time, a more compact stub. Double size of _ovly_buf_table 3216 so that low bit of _ovly_table.buf can be used as a "present" bit. 3217 Reserve an extra _ovly_table entry for index zero. 3218 * elf32-spu.c: (struct spu_link_hash_table): Delete a number of fields, 3219 add new ones. 3220 (struct got_entry): New. 3221 (struct spu_stub_hash_entry): Delete. 3222 (stub_hash_newfunc, spu_elf_link_hash_table_free): Delete. 3223 (spu_elf_link_hash_table_create): Adjust for struct changes. 3224 (spu_stub_name): Delete. 3225 (spu_elf_find_overlays): Don't track sections from overlay regions. 3226 Instead set ovl_buf number in spu elf section data. Error if 3227 overlays in one region don't start at the same address. Adjust 3228 for struct _spu_elf_section_data changes. 3229 (SIZEOF_STUB1, SIZEOF_STUB2, ILA_79, ILA_78): Delete. 3230 (OVL_STUB_SIZE, BRSL, LNOP, ILA): Define. 3231 (needs_ovl_stub): Adjust for struct _spu_elf_section_data changes. 3232 (enum _insn_type): New. 3233 (count_stub, build_stub): New functions. 3234 (allocate_spuear_stubs): Use count_stub. 3235 (build_spuear_stubs): Use build_stub. 3236 (populate_stubs, sort_stubs): Delete. 3237 (process_stubs): New function. 3238 (write_one_stub): Delete. 3239 (spu_elf_size_stubs, spu_elf_build_stubs): Rewrite. 3240 (alloc_stack_info): Adjust for struct _spu_elf_section_data changes. 3241 (maybe_insert_function, check_function_ranges): Likewise. 3242 (find_function, pasted_function, build_call_tree): Likewise. 3243 (spu_elf_stack_analysis, spu_elf_modify_segment_map): Likewise. 3244 (spu_elf_modify_program_headers): Likewise. 3245 (interesting_section): Detect stub sections differently. Delete 3246 htab param, adjust all callers. 3247 (spu_elf_relocate_section): Rewrite stub handling. 3248 (spu_elf_output_symbol_hook): Likewise. 3249 (bfd_elf32_bfd_link_hash_table_free): Delete. 3250 * elf32-spu.h (struct _spu_elf_section_data): Move input-only and 3251 output-only fields into a union. Add ovl_buf. 3252 (spu_elf_size_stubs, spu_elf_build_stubs): Update prototypes. 3253 32542008-01-25 DJ Delorie <dj@redhat.com> 3255 3256 * elf32-m32c.c (_bfd_m32c_elf_eh_frame_address_size): New. 3257 32582008-01-25 Kai Tietz <kai.tietz@onevision.com> 3259 3260 * bfd-in.h: Add mingw I64 support. 3261 * bfd-in2.h: Regenerated. 3262 * bfd.c: (bfd_get_sign_extend_vma): Add pe-x86-64 and pei-x86-64. 3263 32642008-01-21 Alan Modra <amodra@bigpond.net.au> 3265 3266 PR 4453 3267 * format.c (bfd_check_format_matches): Don't accept archives as 3268 fully matching unless they have a map. 3269 32702008-01-21 Alan Modra <amodra@bigpond.net.au> 3271 3272 * elflink.c (_bfd_elf_link_output_relocs): Correct error return. 3273 32742008-01-21 Alan Modra <amodra@bigpond.net.au> 3275 3276 * ecoff.c (_bfd_ecoff_archive_p): Delete. 3277 * libecoff.h (_bfd_ecoff_archive_p): Delete. 3278 * coff-alpha.c (ecoffalpha_little_vec): Use bfd_generic_archive_p. 3279 * coff-mips.c (ecoff_little_vec, ecoff_big_vec): Likewise. 3280 (ecoff_biglittle_vec): Likewise. 3281 32822008-01-19 Alan Modra <amodra@bigpond.net.au> 3283 3284 PR 5646 3285 * elf64-ppc.c (ppc64_elf_tls_optimize): Ensure htab->tls_get_addr 3286 non-NULL before dereferencing. 3287 32882008-01-15 Alan Modra <amodra@bigpond.net.au> 3289 3290 PR 5604 3291 * elf-bfd.h (struct elf_backend_data): Add gc_keep. Remove param 3292 names from others. 3293 (_bfd_elf_gc_keep): Declare. 3294 * elfxx-target.h (elf_backend_gc_keep): Define. 3295 (elfNN_bed): Init new field. 3296 * elflink.c (_bfd_elf_gc_keep): New function. 3297 (bfd_elf_gc_sections): Call gc_keep. 3298 * elf64-ppc.c (elf_backend_gc_keep): Define. 3299 (struct _ppc64_elf_section_data): Move .opd related fields to 3300 a struct so they don't occupy the same storage. Adjust accesses 3301 throughout file. 3302 (ppc64_elf_gc_keep): New function, split out from.. 3303 (ppc64_elf_gc_mark_hook): ..here. Don't call _bfd_elf_gc_mark 3304 to mark .opd section, just set gc_mark. 3305 (ppc64_elf_edit_opd): Remove no_opd_opt parm. Don't set opd->adjust 3306 unless we are changing .opd. Test non-NULL opd->adjust at all 3307 accesses throughout file. 3308 * elf64-ppc.h (ppc64_elf_edit_opd): Update prototype. 3309 33102008-01-15 Alan Modra <amodra@bigpond.net.au> 3311 3312 * bfd-in.h (BFD_HOST_LONG_LONG): Delete. 3313 * bfd-in2.h: Regenerate. 3314 33152008-01-11 Tristan Gingold <gingold@adacore.com> 3316 Eric Botcazou <ebotcazou@adacore.com> 3317 3318 * elf32-ppc.c (ppc_elf_gc_sweep_hook): Exit early if generating a 3319 relocatable. 3320 * elf32-arm.c (elf32_arm_gc_sweep_hook): Likewise. 3321 * elf32-cris.c (cris_elf_gc_sweep_hook): Likewise. 3322 * elf32-hppa.c (elf32_hppa_gc_sweep_hook): Likewise. 3323 * elf32-i386.c (elf_i386_gc_sweep_hook): Likewise. 3324 * elf32-m32r.c (m32r_elf_gc_sweep_hook): Likewise. 3325 * elf32-m68k.c (elf_m68k_gc_sweep_hook): Likewise. 3326 * elf32-s390.c (elf_s390_gc_sweep_hook): Likewise. 3327 * elf32-sh.c (sh_elf_gc_sweep_hook): Likewise. 3328 * elf32-vax.c (elf_vax_gc_sweep_hook): Likewise. 3329 * elf32-xtensa.c (elf_xtensa_gc_sweep_hook): Likewise. 3330 * elf64-x86-64.c (elf64_x86_64_gc_sweep_hook): Likewise. 3331 * elf64-s390.c (elf_s390_gc_sweep_hook): Likewise. 3332 * elf64-ppc.c (ppc64_elf_gc_sweep_hook): Likewise. 3333 * elfxx-mips.c (_bfd_mips_elf_gc_sweep_hook): Likewise. 3334 * elfxx-sparc.c (_bfd_sparc_elf_gc_sweep_hook): Likewise. 3335 * elflink.c (bfd_elf_gc_sections): Do not punt on relocatable output 3336 or executable output with relocations. 3337 33382008-01-09 Nick Clifton <nickc@redhat.com> 3339 3340 PR gas/5552 3341 * elf32-fr30.c (fr30_elf_howto_table): Set partial_inplace field 3342 to FALSE for all relocs. 3343 33442008-01-09 Richard Sandiford <rsandifo@nildram.co.uk> 3345 3346 PR ld/5526 3347 * elf-bfd.h (eh_cie_fde): Add u.cie.u.full_cie and u.cie.merged 3348 fields. Rename u.cie.u.merged to u.cie.u.merged_with. 3349 (eh_frame_sec_info): Add a cies field. 3350 (eh_frame_hdr_info): Add a merge_cies field. 3351 * elf-eh-frame.c (cie): Add a reloc_index member to the personality 3352 union. 3353 (_bfd_elf_begin_eh_frame_parsing): Set hdr_info->merge_cies instead 3354 of hdr_info->cies. 3355 (_bfd_elf_parse_eh_frame): Remove tmp_cie. Ccreate an array of 3356 cie structures in all cases and use it instead of extended_cies. 3357 If merging, store the cie array in sec_info->cies and point each 3358 CIE's eh_fde_cie at the associated element. Do not try to 3359 calculate the value of the personality routine here; record the 3360 offset of the relocation instead. Do not merge CIEs here. 3361 (_bfd_elf_end_eh_frame_parsing): Do not free hdr_info->cies here... 3362 (_bfd_elf_discard_section_eh_frame_hdr): ...do it here instead. 3363 (_bfd_elf_gc_mark_fdes): Mark the original (unmerged) CIE. 3364 (find_merged_cie): New function. 3365 (_bfd_elf_gc_mark_fdes): Use it. Free sec_info->cies. 3366 33672008-01-07 Nick Clifton <nickc@redhat.com> 3368 3369 PR binutils/5535 3370 * vms.c (vms_close_and_cleanup): Check for the presence of a 3371 vms_private_data_struct before examining any of its fields. 3372 33732008-01-07 H.J. Lu <hongjiu.lu@intel.com> 3374 3375 PR ld/5522 3376 * elflink.c (elf_link_input_bfd): Don't write out a section if 3377 its output section is marked with SEC_NEVER_LOAD. 3378 3379For older changes see ChangeLog-2007 3380 3381Copyright (C) 2008 Free Software Foundation, Inc. 3382 3383Copying and distribution of this file, with or without modification, 3384are permitted in any medium without royalty provided the copyright 3385notice and this notice are preserved. 3386 3387Local Variables: 3388mode: change-log 3389left-margin: 8 3390fill-column: 74 3391version-control: never 3392End: 3393