12009-03-02 Alan Modra <amodra@bigpond.net.au> 2 3 2009-02-15 Alan Modra <amodra@bigpond.net.au> 4 * elf64-ppc.c (struct _ppc64_elf_section_data): Delete t_symndx, 5 add toc.symndx and toc.add. 6 (ppc64_elf_check_relocs): Don't set htab->tls_get_addr here. 7 Set up toc.add. 8 (get_tls_mask): Add toc_addend param, set from toc.add. Adjust all 9 callers. 10 (ppc64_elf_tls_setup): Set htab->tls_get_addr and tls_get_addr_fd. 11 (branch_reloc_hash_match): New function, extracted from.. 12 (ppc64_elf_tls_optimize): ..here. 13 (ppc64_elf_relocate_section): Properly set addends when optimizing 14 tls sequences. Avoid unnecessary reading and writing of insns. 15 Only redo reloc when symbol changed. Bypass symbol checks when 16 using tlsld_got. 17 * elf32-ppc.c (ppc_elf_tls_setup): Correct comment. 18 (branch_reloc_hash_match): New function, extracted from.. 19 (ppc_elf_tls_optimize): ..here. 20 (ppc_elf_relocate_section): Avoid unnecessary reading of insns. 21 Don't clear addend on zapped __tls_get_addr reloc. 22 23 2009-02-01 Jan Kratochvil <jan.kratochvil@redhat.com> 24 * elf-eh-frame.c (REQUIRE_CLEARED_RELOCS) Remove. 25 (_bfd_elf_parse_eh_frame): Do not check relocations for removed FDEs. 26 27 2009-01-26 Nathan Sidwell <nathan@codesourcery.com> 28 * elf32-ppc.c (ppc_elf_relax_section): Add space for relocs 29 describing the trampolines. 30 (ppc_elf_relocate_section): Update relocs to describe the 31 trampolines. 32 33 2009-01-22 Alan Modra <amodra@bigpond.net.au> 34 PR 6832 35 * dwarf2.c (find_line): Don't update stash->sec_info_ptr until 36 after comp_unit_find_line call. 37 38 2009-01-14 Alan Modra <amodra@bigpond.net.au> 39 PR 9735 40 * syms.c (_bfd_stab_section_find_nearest_line): Don't free 41 saved filename, use bfd_alloc rather than bfd_malloc for it. 42 43 2009-01-11 Jan Kratochvil <jan.kratochvil@redhat.com> 44 * elflink.c (_bfd_elf_section_already_linked): Handle g++-3.4 45 relocations in `.gnu.linkonce.r.*' referencing its `.gnu.linkonce.t.*'. 46 47 2008-12-11 Alan Modra <amodra@bigpond.net.au> 48 PR 7041 49 * elf64-ppc.c (func_desc_adjust): Correct logic making fake function 50 descriptors. Similarly correct making function descriptors dynamic. 51 52 2008-11-14 Nathan Sidwell <nathan@codesourcery.com> 53 * elf.c (assign_file_positions_for_load_sections): Use header_size 54 to avoid moving the load address of file headers. 55 (assign_file_positions_for_load_sections): Set header_size for 56 segments containing the file header. 57 58 2008-11-13 Hans-Peter Nilsson <hp@axis.com> 59 PR ld/7028 60 * elf.c (assign_file_positions_for_load_sections): Allocate phrds 61 with bfd_zalloc2 instead of bfd_alloc2. For the amount, use 62 the possibly-preset header-size, not the computed one. 63 64 2008-11-13 Alan Modra <amodra@bigpond.net.au> 65 PR 7023 66 * elf.c (bfd_section_from_shdr <SHT_SYMTAB>): Fail on invalid sh_info. 67 68 2008-11-11 Alan Modra <amodra@bigpond.net.au> 69 PR 7012 70 * dwarf2.c (find_line): Don't keep stale pointers into realloc'd 71 memory. Return on errors. Fix memory leak. 72 (_bfd_dwarf2_cleanup_debug_info): Free dwarf_str_buffer. 73 74 2008-10-10 Nathan Froyd <froydnj@codesourcery.com> 75 * elf32-ppc.c (ppc_elf_merge_obj_attributes): Merge 76 Tag_GNU_Power_ABI_Struct_Return. 77 78 2008-10-03 Alan Modra <amodra@bigpond.net.au> 79 * elf.c (bfd_elf_set_group_contents): Assign sh_info for ld -r when 80 the signature symbol is global. 81 * elflink.c (elf_link_input_bfd): Ensure group signature symbol 82 is output when ld -r. Set group sh_info when local. 83 * linker.c (default_indirect_link_order): Handle group sections 84 specially. 85 86 2008-09-28 Alan Modra <amodra@bigpond.net.au> 87 * elf.c (_bfd_elf_init_private_section_data): Tweak union copy. 88 (bfd_section_from_shdr): Don't change SHT_GROUP section name. 89 * elflink.c (section_signature): New function. 90 (_bfd_elf_section_already_linked): Use it. 91 922009-02-15 Bjoern Haase <bjoern.m.haase@web.de> 93 94 PR 9841 95 * elf32-avr.c: Handle case where no local symbos exist correctly. 96 972009-02-04 Eric B. Weddington <eric.weddington@atmel.com> 98 99 * elf32-avr.c (avr_final_link_relocate): Allow avr25 to wraparound. 100 1012009-02-03 Tristan Gingold <gingold@adacore.com> 102 103 * Makefile.am (RELEASE): Unset. 104 * Makefile.in: Regenerated. 105 1062009-02-02 Tristan Gingold <gingold@adacore.com> 107 108 * configure.in: Bump version to 2.19.1 109 * Makefile.am (RELEASE): Set. 110 * configure, Makefile.in: Regenerated. 111 1122009-01-14 Joseph Myers <joseph@codesourcery.com> 113 114 * elf32-arm.c (elf32_arm_final_link_relocate): Do not turn 115 branches to undefine weak symbols into branches to the next 116 instruction if creating PLT entries for those symbols. 117 1182008-12-23 Nick Clifton <nickc@redhat.com> 119 120 * Import this patch from the mainline: 121 2008-11-10 Andreas Schwab <schwab@suse.de> 122 123 PR 7011 124 * elf.c (assign_file_positions_for_non_load_sections): Handle 125 PT_GNU_RELRO specially. 126 1272008-11-20 Alan Modra <amodra@bigpond.net.au> 128 129 * elf32-ppc.c (allocate_dynrelocs): Always use tlsld_got for 130 TLS_LD even when symbol is used with other TLS reloc types. 131 (ppc_elf_relocate_section): Bypass symbol checks when using tlsld_got. 132 Leave addend zero on LD DTPMOD dynamic reloc. 133 1342008-11-17 Eric B. Weddington <eric.weddington@atmel.com> 135 136 PR 7022 137 * elf32-avr.c (bfd_elf_avr_final_write_processing): 138 Add missing break statements. 139 1402008-10-28 Tristan Gingold <gingold@adacore.com> 141 142 * configure.in: Bump version to 2.19.0 143 * Makefile.am (RELEASE): Unset. 144 * configure, Makefile.in: Regenerated. 145 1462008-10-16 Tristan Gingold <gingold@adacore.com> 147 148 * configure.in: Bump version to 2.19 149 * Makefile.am (RELEASE): Set. 150 * configure, Makefile.in: Regenerated. 151 1522008-10-09 Tristan Gingold <gingold@adacore.com> 153 154 * configure.in: Bump version to 2.18.93 155 * configure: Regenerated. 156 1572008-10-09 Alan Modra <amodra@bigpond.net.au> 158 159 * elf64-ppc.c (ppc64_elf_get_synthetic_symtab): Don't attempt to 160 read plt relocs if no dynamic syms. 161 1622008-10-08 Alan Modra <amodra@bigpond.net.au> 163 164 * elf.c (assign_file_positions_for_load_sections): When checking 165 a segment for contents, don't assume that a non-TLS nobits section 166 must only be followed by nobits sections. 167 1682008-10-02 Tristan Gingold <gingold@adacore.com> 169 170 * configure.in: Bump version to 2.18.92 171 * configure: Regenerated. 172 1732008-09-30 Alan Modra <amodra@bigpond.net.au> 174 175 PR 6789 176 * elf.c (assign_file_positions_for_load_sections): Call 177 _bfd_elf_map_sections_to_segments, not elf_modify_segment_map. 178 (get_program_header_size): Protect against NULL info. 179 (_bfd_elf_map_sections_to_segments): Likewise. 180 * elf32-spu.c (spu_elf_additional_program_headers): Likewise. 181 1822008-09-29 Nick Clifton <nickc@redhat.com> 183 184 * po/vi.po: Updated Vietnamese translation. 185 1862008-09-19 Alan Modra <amodra@bigpond.net.au> 187 188 * elf32-ppc.c (ppc_elf_finish_dynamic_sections): Handle vxworks 189 _GLOBAL_OFFSET_TABLE_ in .got.plt section. Add BFD_ASSERTs. 190 1912008-09-17 H.J. Lu <hongjiu.lu@intel.com> 192 Daniel Jacobowitz <dan@codesourcery.com> 193 194 PR ld/3191 195 * dwarf2.c (struct adjusted_section): Renamed from struct 196 loadable_section. 197 (struct dwarf2_debug): Adjust for renaming. Add version field. 198 (read_attribute_value): Correctly handle DW_FORM_ref_addr for 199 DWARF3. 200 (find_abstract_instance_name): Pass a pointer to 201 attribute instead of offset. For DW_FORM_ref_addr, get the 202 entry at the offset from the .debug_info section. 203 (scan_unit_for_symbols): Update. 204 (parse_comp_unit): Allow DWARF3. Save the version. 205 (unset_sections): Update for renaming. 206 (place_sections): Likewise. Set new VMAs for DWARF sections 207 also. 208 2092008-09-17 Bob Wilson <bob.wilson@acm.org> 210 211 * elf32-xtensa.c (elf_xtensa_check_relocs): Check for negative refcount. 212 2132008-09-17 Tristan Gingold <gingold@adacore.com> 214 215 * configure.in: Bump version to 2.18.91 216 * configure: Regenerated. 217 2182008-09-17 Jan Kratochvil <jan.kratochvil@redhat.com> 219 220 PR 6893 - Do not consider FDEs for discarded sections as invalid. 221 * elf-eh-frame.c (_bfd_elf_parse_eh_frame): New REQUIRE_CLEARED_RELOCS. 222 Consider FDEs with cleared relocations as valid and ignorable. 223 2242008-09-16 Alan Modra <amodra@bigpond.net.au> 225 226 PR 6844 227 * elf32-ppc.c (SYM_VAL): Define. Use throughout to find symbol vma. 228 (ppc_elf_relocate_section): Correct GOT offset calculation. 229 (ppc_elf_finish_dynamic_symbol): Use PPC_HA and PPC_LO. 230 (ppc_elf_finish_dynamic_sections): Likewise. Error if 231 htab->elf.hgot symbol is not defined in htab->got section. 232 2332008-09-16 Alan Modra <amodra@bigpond.net.au> 234 235 PR 6888 236 * elf32-ppc.c (ppc_elf_relocate_section): Handle NULL symbol section 237 on R_PPC_TOC16, R_PPC_SDAREL16, R_PPC_EMB_SDA2REL, R_PPC_EMB_SDA21, 238 R_PPC_EMB_RELSDA, R_PPC_SECTOFF* relocs. 239 2402008-09-09 Tristan Gingold <gingold@adacore.com> 241 242 * configure.in: Bump version to 2.18.90 243 * configure: Regenerate. 244 2452008-09-09 Alan Modra <amodra@bigpond.net.au> 246 247 * Makefile.am: Run "make dep-am". 248 * Makefile.in: Regenerate. 249 * po/bfd.pot: Regenerate. 250 2512008-09-05 Daniel Jacobowitz <dan@codesourcery.com> 252 253 * dwarf2.c: Change leading whitespace to tabs. 254 2552008-09-05 Tristan Gingold <gingold@adacore.com> 256 257 Add MacOSX 64 bits support. 258 * mach-o.h (bfd_mach_o_ppc_thread_flavour): Add 259 BFD_MACH_O_PPC_THREAD_STATE_64. 260 (bfd_mach_o_i386_thread_flavour): Add BFD_MACH_O_x86_THREAD_STATE64, 261 BFD_MACH_O_x86_FLOAT_STATE64, BFD_MACH_O_x86_EXCEPTION_STATE64, 262 BFD_MACH_O_x86_THREAD_STATE, BFD_MACH_O_x86_FLOAT_STATE, 263 BFD_MACH_O_x86_EXCEPTION_STATE. 264 (bfd_mach_o_load_command_type): Add 265 BFD_MACH_O_LC_SEGMENT_64, BFD_MACH_O_LC_ROUTINES_64, 266 BFD_MACH_O_LC_UUID. 267 (BFD_MACH_O_CPU_IS64BIT): Added. 268 (bfd_mach_o_cpu_type): Add BFD_MACH_O_CPU_TYPE_POWERPC_64, 269 BFD_MACH_O_CPU_TYPE_X86_64. 270 (bfd_mach_o_header): Add version field. 271 (bfd_mach_o_section) Add reserved3 field. 272 (bfd_mach_o_segment_command): Add initprot and maxprot fields. 273 274 * mach-o.c (N_TEXT, N_DATA, N_BSS): Added. 275 (bfd_mach_o_version): New function. 276 (bfd_mach_o_valid): Handle 64bits cpus. 277 (bfd_mach_o_write_header): handler 64bits headers. 278 (bfd_mach_o_scan_write_section_32, bfd_mach_o_scan_write_section_64): 279 New functions (from bfd_mach_o_scan_write_section) to handle both 280 flavors. 281 (bfd_mach_o_scan_write_segment): Parameter wide added to support 282 both flavors. 283 (bfd_mach_o_write_contents): Support both flavors. 284 (bfd_mach_o_read_header): Ditto. 285 (bfd_mach_o_scan_read_section_32, bfd_mach_o_scan_read_section_64): 286 New functions (from bfd_mach_o_scan_read_section) to support both 287 flavors. 288 (bfd_mach_o_scan_read_symtab_symbol): Support both flavors. 289 (bfd_mach_o_scan_read_symtab): Ditto. 290 (bfd_mach_o_scan_read_segment): Parameter wide added to support 291 both flavors. 292 (bfd_mach_o_scan_read_segment_32, bfd_mach_o_scan_read_segment_64): 293 New functions to call bfd_mach_o_scan_read_segment. 294 (bfd_mach_o_flatten_sections): Support both flavors. 295 (bfd_mach_o_scan_start_address): Ditto. 296 (bfd_mach_o_scan): Ditto. 297 (bfd_mach_o_lookup_section): Ditto. 298 2992008-08-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 300 301 * elf-hppa.h (elf_hppa_reloc_final_type): Handle R_PARISC_GPREL64, 302 R_PARISC_SEGREL32 and R_PARISC_SEGREL64. 303 * som.c (som_fixup_formats): Add R_DATA_GPREL fixup. 304 (som_hppa_howto_table): Likewise. 305 (hppa_som_gen_reloc_type): In case R_HPPA_GOTOFF, detect R_DATA_GPREL 306 final type. 307 (som_write_fixups): Handle R_DATA_GPREL. 308 3092008-08-26 Nick Clifton <nickc@redhat.com> 310 311 * elf32-arm.c: Fix up comment describing Thumb to ARM interworking 312 stub. 313 3142008-08-25 Christophe Lyon <christophe.lyon@st.com> 315 316 * elf32-arm.c (arm_thumb_arm_v4t_short_branch_stub): Define. 317 (elf32_arm_stub_type): Add arm_thumb_arm_v4t_stub_short_branch. 318 (arm_type_of_stub): Handle armv4t short branches. Update 319 prototype. 320 (arm_stub_is_thumb): Handle arm_thumb_arm_v4t_stub_short_branch. 321 (arm_build_one_stub): Likewise. 322 (arm_size_one_stub): Likewise. 323 (elf32_arm_size_stubs): Use new arm_type_of_stub prototype. 324 (arm_map_one_stub): Handle arm_thumb_arm_v4t_stub_short_branch. 325 3262008-08-24 Andreas Schwab <schwab@suse.de> 327 328 * elf-eh-frame.c (_bfd_elf_write_section_eh_frame): Do proper 329 extension when calculating difference of offsets. 330 3312008-08-24 Alan Modra <amodra@bigpond.net.au> 332 333 * configure.in: Update a number of obsolete autoconf macros. 334 * aclocal.m4: Regenerate. 335 3362008-08-23 Andreas Schwab <schwab@suse.de> 337 338 * opncls.c (find_separate_debug_file): Use the canonical 339 absolute name of the bfd object for finding the debug file in 340 the global debugfile directory. 341 3422008-08-22 Jakub Jelinek <jakub@redhat.com> 343 344 Fix PR ld/3290 regression for cross-files DW_FORM_ref_addr relocations. 345 * elflink.c (elf_link_add_object_symbols): Make debug symbols local 346 now only for non-RELOCATABLE targets. 347 3482008-08-20 Bob Wilson <bob.wilson@acm.org> 349 350 * elf-bfd.h (elf_object_id): Add XTENSA_ELF_TDATA. 351 * elf32-xtensa.c (elf_howto_table): Add TLS relocations. 352 (elf_xtensa_reloc_type_lookup): Likewise. 353 (TCB_SIZE): Define. 354 (elf_xtensa_link_hash_entry): New. 355 (GOT_UNKNOWN, GOT_NORMAL, GOT_TLS_GD, GOT_TLS_IE, GOT_TLS_ANY): Define. 356 (elf_xtensa_hash_entry): Define. 357 (elf_xtensa_obj_tdata): New. 358 (elf_xtensa_tdata): Define. 359 (elf_xtensa_local_got_tls_type): Define. 360 (elf_xtensa_local_tlsfunc_refcounts): Define. 361 (is_xtensa_elf): Define. 362 (elf_xtensa_mkobject): New. 363 (elf_xtensa_link_hash_table): Add tlsbase field. 364 (elf_xtensa_link_hash_newfunc): New. 365 (elf_xtensa_link_hash_table_create): Use elf_xtensa_link_hash_newfunc. 366 Create an entry for "_TLS_MODULE_BASE_" and save it in tlsbase field. 367 (elf_xtensa_copy_indirect_symbol): New. 368 (elf_xtensa_check_relocs): Rewrite to handle TLS relocations. 369 (elf_xtensa_gc_sweep_hook): Likewise. 370 (elf_xtensa_allocate_dynrelocs): Optimize away GOT entries for 371 TLSDESC_FN relocations when an IE reference is seen. 372 (elf_xtensa_allocate_local_got_size): Likewise. 373 (elf_xtensa_always_size_sections): New. 374 (dtpoff_base, tpoff): New. 375 (elf_xtensa_do_reloc): Handle TLS relocations. 376 (replace_tls_insn): New. 377 (IS_XTENSA_TLS_RELOC): Define. 378 (elf_xtensa_relocate_section): Handle TLS relocations. 379 (get_indirect_call_dest_reg): New. 380 (bfd_elf32_mkobject): Define. 381 (elf_backend_always_size_sections): New. 382 (elf_backend_copy_indirect_symbol): New. 383 * reloc.c (BFD_RELOC_XTENSA_TLSDESC_FN, BFD_RELOC_XTENSA_TLSDESC_ARG) 384 (BFD_RELOC_XTENSA_TLS_DTPOFF, BFD_RELOC_XTENSA_TLS_TPOFF) 385 (BFD_RELOC_XTENSA_TLS_FUNC, BFD_RELOC_XTENSA_TLS_ARG) 386 (BFD_RELOC_XTENSA_TLS_CALL): New. 387 * bfd-in2.h: Regenerate. 388 * libbfd.h: Regenerate. 389 3902008-08-18 Richard Sandiford <rdsandiford@googlemail.com> 391 392 * elfxx-mips.c (_bfd_mips_elf_copy_indirect_symbol): Copy MIPS16 393 stub information. 394 3952008-08-17 Nick Clifton <nickc@redhat.com> 396 397 * elf32-arm.c: Tidy up the code. 398 (bfd_elf32_arm_allocate_interworking_sections): Move common code 399 into... 400 (arm_allocate_glue_section_space): ... New function. 401 (bfd_elf32_arm_add_glue_sections_to_bfd): Move common code 402 into... 403 (arm_make_glue_section): ... New function. 404 405 * elfxx-mips.c (_bfd_mips_elf_check_relocs): Handle the situation 406 where the sym_hashes are not available. 407 4082008-08-17 Alan Modra <amodra@bigpond.net.au> 409 410 * bfd.c (struct _bfd): Correct outsymbols comment. 411 * bfd-in2.h: Regenerate. 412 * linker.c (bfd_generic_link_read_symbols): Renamed from.. 413 (generic_link_read_symbols): ..this, and made global. 414 4152008-08-15 Alan Modra <amodra@bigpond.net.au> 416 417 PR 6526 418 * configure.in: Invoke AC_USE_SYSTEM_EXTENSIONS. 419 * Makefile.in: Regenerate. 420 * aclocal.m4: Regenerate. 421 * config.in: Regenerate. 422 * configure: Regenerate. 423 4242008-08-14 Jaka Močnik <jaka@xlab.si> 425 426 * coffgen.c (coff_find_nearest_line): Correct cached line index. 427 4282008-08-12 Alan Modra <amodra@bigpond.net.au> 429 430 * elf32-ppc.c (allocate_dynrelocs): Ignore dyn_relocs when 431 !dynamic_sections_created. Don't make symbols with got 432 references dynamic if !dynamic_sections_created. 433 * elf64-ppc.c (allocate_dynrelocs): Likewise. Alloc dynamic 434 relocs on undefined symbols. 435 (ppc64_elf_relocate_section): Allow dynamic relocs on 436 undefined symbols. 437 4382008-08-11 Alan Modra <amodra@bigpond.net.au> 439 440 * elf64-ppc.c (toc_adjusting_stub_needed): Any call via the plt 441 needs r2 valid, not just those to external syms. 442 4432008-08-09 Pedro Alves <pedro@codesourcery.com> 444 445 * archive.c (_bfd_archive_bsd_update_armap_timestamp): Cast stat 446 st_mtime to long before comparison. 447 4482008-08-08 Anatoly Sokolov <aesok@post.ru> 449 450 * archures.c (bfd_mach_avr25, bfd_mach_avr31, bfd_mach_avr35, 451 bfd_mach_avr51): New. 452 * bfd-in2.h: Regenerate. 453 * cpu-avr.c (arch_info_struct): Add avr25, avr31, avr35, and avr51 454 architectures. Change comments to match architecture comments in GCC. 455 (compatible): Add test for new AVR architectures. 456 * elf32-avr.c (bfd_elf_avr_final_write_processing): Recognize 457 bfd_mach_avr25, bfd_mach_avr31, bfd_mach_avr35 and bfd_mach_avr51. 458 (elf32_avr_object_p): Recognize E_AVR_MACH_AVR25, E_AVR_MACH_AVR31, 459 E_AVR_MACH_AVR35 and E_AVR_MACH_AVR51. 460 461 4622008-08-08 Richard Sandiford <rdsandiford@googlemail.com> 463 Daniel Jacobowitz <dan@codesourcery.com> 464 Catherine Moore <clm@codesourcery.com> 465 Mark Shinwell <shinwell@codesourcery.com> 466 Maxim Kuvyrkov <maxim@codesourcery.com> 467 468 * elf32-mips.c (mips_vxworks_copy_howto_rela): Replace with... 469 (elf_mips_copy_howto): ...this howto. Clear the size fields. 470 (mips_vxworks_jump_slot_howto_rela): Replace with... 471 (elf_mips_jump_slot_howto): ...this howto. 472 (bfd_elf32_bfd_reloc_type_lookup): Handle BFD_RELOC_MIPS_COPY 473 and BFD_RELOC_MIPS_JUMP_SLOT. 474 (bfd_elf32_bfd_reloc_name_lookup): Handle "R_MIPS_COPY" and 475 "R_MIPS_JUMP_SLOT". 476 (mips_elf32_rtype_to_howto): Handle R_MIPS_COPY and R_MIPS_JUMP_SLOT. 477 (elf_backend_plt_readonly): Define. 478 (elf_backend_plt_sym_val): Define for non-VxWorks targets. 479 (mips_vxworks_bfd_reloc_type_lookup): Delete. 480 (mips_vxworks_bfd_reloc_name_lookup): Likewise. 481 (mips_vxworks_rtype_to_howto): Likewise. 482 (elf_backend_want_dynbss): Don't define for VxWorks. 483 (elf_backend_plt_readonly): Likewise. 484 (bfd_elf32_bfd_reloc_type_lookup): Likewise. 485 (bfd_elf32_bfd_reloc_name_lookup): Likewise. 486 (elf_backend_mips_rtype_to_howto): Likewise. 487 (elf_backend_adjust_dynamic_symbol): Likewise. 488 (elf_backend_got_symbol_offset): Don't define. 489 * elfn32-mips.c (elf_mips_copy_howto, elf_mips_jump_slot_howto): New. 490 (bfd_elf32_bfd_reloc_type_lookup): Handle BFD_RELOC_MIPS_COPY 491 and BFD_RELOC_MIPS_JUMP_SLOT. 492 (bfd_elf32_bfd_reloc_name_lookup): Handle "R_MIPS_COPY" and 493 "R_MIPS_JUMP_SLOT". 494 (mips_elf32_n32_rtype_to_howto): Handle R_MIPS_COPY and 495 R_MIPS_JUMP_SLOT. 496 (elf_backend_rela_plts_and_copies_p, elf_backend_plt_readonly) 497 (elf_backend_plt_sym_val): Define. 498 * elf64-mips.c (elf_mips_copy_howto, elf_mips_jump_slot_howto): New. 499 (bfd_elf64_bfd_reloc_type_lookup): Handle BFD_RELOC_MIPS_COPY 500 and BFD_RELOC_MIPS_JUMP_SLOT. 501 (bfd_elf64_bfd_reloc_name_lookup): Handle "R_MIPS_COPY" and 502 "R_MIPS_JUMP_SLOT". 503 (mips_elf64_rtype_to_howto): Handle R_MIPS_COPY and R_MIPS_JUMP_SLOT. 504 (elf_backend_rela_plts_and_copies_p, elf_backend_plt_readonly) 505 (elf_backend_plt_sym_val): Define. 506 * elfxx-mips.h (_bfd_mips_vxworks_adjust_dynamic_symbol): Delete. 507 (_bfd_mips_elf_use_plts_and_copy_relocs, _bfd_mips_elf_init_stubs) 508 (_bfd_mips_elf_plt_sym_val, _bfd_mips_post_process_headers): Declare. 509 * elfxx-mips.c (mips_elf_la25_stub): New structure. 510 (LA25_LUI, LA25_J, LA25_ADDIU): New macros. 511 (mips_elf_link_hash_entry): Add "la25_stubs", "has_static_relocs" 512 and "has_nonpic_branches" fields. Remove "is_relocation_target" and 513 "is_branch_target". 514 (mips_elf_link_hash_table): Add blank lines. Add 515 "use_plts_and_copy_relocs", "reserved_gotno", "strampoline", 516 "la25_stubs" and "add_stub_section" fields. 517 (mips_htab_traverse_info): New structure. 518 (PIC_OBJECT_P, MIPS_ELF_LOAD_WORD): New macros. 519 (MIPS_RESERVED_GOTNO): Delete. 520 (mips_o32_exec_plt0_entry, mips_n32_exec_plt0_entry) 521 (mips_n64_exec_plt0_entry, mips_exec_plt_entry): New tables. 522 (mips_elf_link_hash_newfunc): Update after the changes to 523 mips_elf_link_hash_entry. 524 (mips_elf_check_mips16_stubs): Replace the DATA parameter with 525 an INFO parameter. Don't look through warnings symbols here; 526 do it in mips_elf_check_symbols instead. 527 (mips_elf_create_stub_symbol): New function. 528 (mips_elf_la25_stub_hash, mips_elf_la25_stub_eq): New functions. 529 (_bfd_mips_elf_init_stubs, mips_elf_local_pic_function_p): Likewise. 530 (mips_elf_add_la25_intro, mips_elf_add_la25_trampoline): Likewise. 531 (mips_elf_add_la25_stub, mips_elf_check_symbols): New functions. 532 (mips_elf_gotplt_index): Check for VxWorks. 533 (mips_elf_output_dynamic_relocation): Take the relocation index 534 as an extra parameter. Do not increment reloc_count here. 535 (mips_elf_initialize_tls_slots): Update the calls to 536 mips_elf_output_dynamic_relocation accordingly. 537 (mips_elf_multi_got): Use htab->reserved_gotno instead of 538 MIPS_RESERVED_GOTNO. 539 (mips_elf_create_got_section): Don't allocate reserved GOT 540 entries here. Unconditionally create .got.plt, but don't 541 set its alignment here. 542 (mips_elf_relocation_needs_la25_stub): New function. 543 (mips_elf_calculate_relocation): Redirect branches and jumps to 544 a non-PIC stub if one exists. Check !h->has_static_relocs instead 545 of !htab->is_vxworks when deciding whether to create dynamic 546 relocations for R_MIPS_32, R_MIPS_REL32 and R_MIPS_64. 547 (_bfd_mips_elf_create_dynamic_sections): Unconditionally call 548 _bfd_elf_create_dynamic_sections. Unconditionally set up 549 htab->splt and htab->sdynbss. Set htab->srelplt to ".rel.plt" 550 if !htab->is_vxworks. Add non-VxWorks values of 551 htab->plt_header_size and htab->plt_entry_size. 552 (_bfd_mips_elf_check_relocs): Set pointer_equality_needed for 553 non-branch static relocations. Set has_nonpic_branches when an la25 554 stub might be required. Set can_make_dynamic_p to TRUE if R_MIPS_32, 555 R_MIPS_REL32 and R_MIPS_64 relocations can be made dynamic, 556 rather than duplicating the condition. Do not make them dynamic 557 for read-only sections in non-PIC executable objects. 558 Do not protect this code with dynobj == NULL || htab->sgot == NULL; 559 handle each group of cases separately. Add a default case that 560 sets has_static_relocs for non-GOT relocations that cannot be 561 made dynamic. Don't set is_relocation_target and is_branch_target. 562 Reject non-PIC static relocations in shared objects. 563 (_bfd_mips_vxworks_adjust_dynamic_symbol): Fold into... 564 (_bfd_mips_elf_adjust_dynamic_symbol): ...here, using 565 htab->use_plts_and_copy_relocs instead of htab->is_vxworks 566 to select PLT and copy-reloc handling. Set the alignment of 567 .plt and .got.plt when allocating the first entry. Generalize 568 code to handle REL as well as RELA sections and 64-bit as well as 569 32-bit GOT entries. Complain if we find a static-only reloc 570 against an externally-defined symbol and if we cannot create 571 dynamic relocations for it. Allocate copy relocs using 572 mips_elf_allocate_dynamic_relocations on non-VxWorks targets. 573 Set possibly_dynamic_relocs to 0 when using PLTs or copy relocs. 574 Skip reserved .got.plt entries. 575 (_bfd_mips_elf_always_size_sections): Use mips_elf_check_symbols 576 instead of mips_elf_check_mips16_stubs to process each symbol. 577 Do the traversal for relocatable objects too. 578 (mips_elf_lay_out_got): Use htab->reserved_gotno instead of 579 MIPS_RESERVED_GOTNO. 580 (_bfd_mips_elf_size_dynamic_sections): Exclude sdynbss if it 581 is empty. Extend the DT_PLTREL, DT_JMPREL and DT_PLTRELSZ handling 582 to non-VxWorks targets. Only add DT_REL{,A}, DT_REL{,A}SZ and 583 DT_REL{,A}ENT if .rel.dyn is nonempty. Create a symbol for the 584 PLT. Allocate a nop at the end of the PLT. Allocate DT_MIPS_PLTGOT. 585 (mips_elf_create_la25_stub_info): New function. 586 (_bfd_mips_elf_finish_dynamic_symbol): Write out PLT entries 587 and copy relocs where necessary. Check pointer_equality_needed. 588 (mips_finish_exec_plt): New function. 589 (_bfd_mips_elf_finish_dynamic_sections): Always set DT_PLTGOT 590 to the beginning of htab->sgot. Use htab->reserved_gotno instead 591 of MIPS_RESERVED_GOTNO. Assert htab->use_plts_and_copy_relocs 592 instead of htab->is_vxworks for DT_PLTREL, DT_PLTRELSZ and DT_JMPREL. 593 Set DT_PLTREL to DT_REL instead of DT_RELA on non-VxWorks targets. 594 Use mips_finish_exec_plt to create non-VxWorks PLT headers. Set 595 DT_MIPS_PLTGOT. 596 (_bfd_mips_elf_copy_indirect_symbol): Copy has_static_relocs 597 from the indirect symbol to the direct symbol. Also copy 598 has_nonpic_branches for indirect symbols. 599 (_bfd_mips_elf_get_target_dtag): Handle DT_MIPS_PLTGOT and 600 DT_MIPS_RWPLT. 601 (_bfd_mips_elf_link_hash_table_create): Initialize the new 602 mips_elf_link_hash_table fields. 603 (_bfd_mips_vxworks_link_hash_table_create): Set 604 use_plts_and_copy_relocs to TRUE. Use TRUE rather than 1 605 when setting is_vxworks. 606 (_bfd_mips_elf_use_plts_and_copy_relocs): New function. 607 (_bfd_mips_elf_final_link): Call mips_elf_create_la25_stub for 608 each la25_stub. 609 (_bfd_mips_elf_merge_private_bfd_data): Treat dynamic objects 610 as PIC. Generalize message about linking PIC and non-PIC. 611 (_bfd_mips_elf_plt_sym_val, _bfd_mips_post_process_headers): New 612 functions. 613 * reloc.c: Update comment near BFD_RELOC_MIPS_JUMP_SLOT. 614 * bfd-in2.h: Regenerated. 615 6162008-08-08 Alan Modra <amodra@bigpond.net.au> 617 618 * elf.c (bfd_elf_get_elf_syms): Don't leak memory on error. 619 * elflink.c (_bfd_elf_link_read_relocs): bfd_release on error. 620 (elf_link_add_object_symbols): Don't leak memory on error. 621 (bfd_elf_size_dynsym_hash_dynstr): Likewise. 622 (elf_fixup_link_order): Free sections. 623 6242008-08-07 Richard Sandiford <rdsandiford@googlemail.com> 625 626 * elf-bfd.h (elf_backend_data): Add a "rela_plts_and_copies_p" field. 627 * elfxx-target.h (elf_backend_rela_plts_and_copies_p): New macro. 628 (elfNN_bed): Use it. 629 * elf.c (_bfd_elf_get_synthetic_symtab): Use rela_plts_and_copies_p 630 instead of default_use_rela_p to choose between ".rel.plt" and 631 ".rela.plt". 632 * elflink.c (_bfd_elf_create_dynamic_sections): Use 633 rela_plts_and_copies_p instead of default_use_rela_p to choose 634 between ".rel.plt" and ".rela.plt", and between ".rel.bss" and 635 ".rela.bss". 636 6372008-08-07 Richard Sandiford <rdsandiford@googlemail.com> 638 639 * elf-bfd.h (MIPS_ELF_TDATA): New elf_object_id. 640 * elf32-mips.c (bfd_elf32_mkobject): Define. 641 * elf64-mips.c (bfd_elf64_mkobject): Likewise. 642 * elfn32-mips.c (bfd_elf32_mkobject): Likewise. 643 * elfxx-mips.h (_bfd_mips_elf_mkobject): Declare. 644 * elfxx-mips.c (is_mips_elf): New macro. 645 (_bfd_mips_elf_mkobject): New function. 646 (_bfd_mips_elf_final_link): Use is_mips_elf. 647 (_bfd_mips_elf_merge_private_bfd_data): Likewise. 648 6492008-08-07 Richard Sandiford <rdsandiford@googlemail.com> 650 651 * elfxx-mips.c (mips_elf_record_relocs): Defer allocation of a 652 global GOT entry when deferring allocation of dynamic relocations. 653 (allocate_dynrelocs): When allocating deferred dynamic relocations, 654 also do the deferred allocation of a GOT entry. 655 6562008-08-07 Richard Sandiford <rdsandiford@googlemail.com> 657 658 * elfxx-mips.c (mips_got_info): Add a "reloc_only_gotno" field. 659 (mips_elf_got_section): Delete. 660 (mips_elf_sort_hash_table): Use g->reloc_only_gotno to decide 661 how many reloc-only entries there are. 662 (mips_elf_count_got_symbols): Adjust g->reloc_only_gotno as 663 well as g->global_gotno. 664 (mips_elf_make_got_per_bfd): Initialize reloc_only_gotno. 665 (mips_elf_multi_got): Likewise. Use gg->reloc_only_gotno 666 rather than gg->assigned_gotno to store the number of 667 reloc-only GOT entries. 668 (mips_elf_create_got_section): Remove the MAYBE_EXCLUDE parameter. 669 Initialize reloc_only_gotno. 670 (mips_elf_calculate_relocation): Check htab->got_info instead of 671 dynobj when deciding whether to call mips_elf_adjust_gp, 672 (_bfd_mips_elf_create_dynamic_sections): Adjust the call 673 to mips_elf_create_got_section. 674 (mips_elf_record_relocs): Likewise. Remove redundant 675 "dynobj == NULL" code. Do not use mips_elf_create_got_section 676 or mips_elf_record_global_got_symbol for R_MIPS_32, R_MIPS_REL32 677 and R_MIPS_64; limit global_got_area to GGA_RELOC_ONLY instead. 678 (_bfd_mips_elf_finish_dynamic_symbol): Use htab->sgot instead 679 of mips_elf_got_section. 680 (_bfd_mips_vxworks_finish_dynamic_symbol): Likewise. 681 (_bfd_mips_elf_finish_dynamic_sections): Likewise. 682 Move the initial assignment of G to the block that uses it; 683 it is used for an unrelated purpose later. 684 6852008-08-07 Richard Sandiford <rdsandiford@googlemail.com> 686 687 * elfxx-mips.c (count_section_dynsyms): Move before the new first use. 688 (mips_elf_sort_hash_table): Take the output bfd as a parameter. 689 Remove the MAX_LOCAL parameter. Exit early if there are no 690 dynamic symbols, if there is no dynobj, or if there is no 691 GOT section. Use count_section_dynsyms instead of MAX_LOCAL. 692 Assert == rather than <= when checking hsd.max_unref_got_dynindx. 693 Also assert that g->global_gotno is right. 694 (mips_elf_count_forced_local_got_symbols): Rename to... 695 (mips_elf_count_got_symbols): ...and count global GOT entries too. 696 Set the global_got_area of a forced-local GGA_RELOC_ONLY symbol 697 to GGA_NONE. 698 (mips_elf_multi_got): Don't sort the symbol table. 699 (mips_elf_lay_out_got): Likewise. Use mips_elf_count_got_symbols 700 to count the number of global GOT entries. 701 (_bfd_mips_elf_final_link): Unconditionally call 702 mips_elf_sort_hash_table. 703 7042008-08-07 Richard Sandiford <rdsandiford@googlemail.com> 705 706 * elfxx-mips.c (GGA_NORMAL, GGA_RELOC_ONLY, GGA_NONE): New macros. 707 (mips_elf_link_hash_entry): Add a "global_got_area" field. 708 (mips_elf_link_hash_newfunc): Initialize it. 709 (mips_elf_sort_hash_table_f): Use h->global_got_area instead of 710 h->root.got.offset. Do not handle forced_local symbols specially. 711 (mips_elf_record_global_got_symbol): Set h->global_got_area 712 instead of h->root.got.offset. 713 (mips_elf_recreate_got): Assert that h->global_got_area == GGA_NONE 714 for indirect and warning symbols. 715 (mips_elf_count_forced_local_got_symbols): Change the argument 716 from a "elf_link_hash_entry" to "mips_elf_link_hash_entry". 717 Use and set h->global_got_area instead of h->root.got.offset. 718 Set it to GGA_NONE for all forced-local symbols. 719 (mips_elf_set_global_got_offset): Set h->global_got_area 720 instead of h->root.got.offset. Use g->global_got_area instead 721 of a combination of dynindx, forced_local and tls_type. 722 (mips_elf_multi_got): Remove disabled code. Pass GGA_* values to 723 mips_elf_set_global_got_offset. 724 (mips_elf_lay_out_got): Use mips_elf_link_hash_traverse instead 725 of elf_link_hash_traverse. 726 (_bfd_mips_elf_copy_indirect_symbol): Copy the indirect symbol's 727 global_got_area to the direct symbol if the latter's value is higher. 728 Set the indirect symbol's area to GGA_NONE. 729 7302008-08-07 Richard Sandiford <rdsandiford@googlemail.com> 731 732 * elf32-mips.c (elf_backend_hide_symbol): Delete. 733 * elfn32-mips.c (elf_backend_hide_symbol): Likewise. 734 * elf64-mips.c (elf_backend_hide_symbol): Likewise. 735 * elfxx-mips.h (elf_backend_hide_symbol): Likewise. 736 * elfxx-mips.c (mips_elf_link_hash_entry): Remove "forced_local" 737 and add "needs_lazy_stub". 738 (mips_elf_link_hash_newfunc): Update accordingly. 739 (mips_elf_link_hash_table): Remove "computed_got_sizes" and 740 add "lazy_stub_count". 741 (_bfd_mips_elf_link_hash_table_create): Update accordingly. 742 (mips_elf_output_extsym): Use hd->needs_lazy_stub to detect 743 cases where a lazy stub is being used. 744 (mips_elf_sort_hash_table_f): Use h->root.forced_local instead 745 of h->forced_local. 746 (mips_elf_record_global_got_symbol): Use _bfd_elf_link_hash_hide_symbol 747 instead of _bfd_mips_elf_hide_symbol. Do not increment local_gotno 748 here. 749 (mips_elf_allocate_dynamic_relocations): Move before new first use. 750 (mips_elf_check_recreate_got, mips_elf_recreate_got): New functions. 751 (mips_elf_resolve_final_got_entries): Move earlier in file. Make at 752 most two passes over the hash table. Use mips_elf_check_recreate_got 753 to see if there are any indirect or warning entries and 754 mips_elf_recreate_got to create a new GOT without them. 755 Return a boolean success value. 756 (mips_elf_count_forced_local_got_entries): New function. 757 (mips_elf_make_got_per_bfd): Check h->root.forced_local instead of 758 h->forced_local. 759 (mips_elf_set_global_got_offset): Likewise. 760 (mips_elf_set_no_stub): Replace with... 761 (mips_elf_forbid_lazy_stubs): ...this new function. 762 (mips_elf_resolve_final_got_entry): Delete. 763 (mips_elf_multi_got): Fix formatting. Use mips_elf_forbid_lazy_stubs 764 instead of mips_elf_set_no_stub. Move the code that sets 765 global offsets and allocates dynamic relocations from the main 766 _bfd_mips_elf_size_dynamic_sections loop to here. 767 (_bfd_mips_elf_adjust_dynamic_symbol): Do not allocate room in 768 .MIPS.stubs here; just set hmips->needs_lazy_stub and increment 769 htab->lazy_stub_count. 770 (_bfd_mips_elf_always_size_sections): Move the stub-estimation 771 code to mips_elf_estimate_stub_size and the GOT-sizing code to 772 mips_elf_lay_out_got. Do not call these functions here. 773 (mips_elf_estimate_stub_size): New function, split 774 out from _bfd_mips_elf_always_size_sections. Call 775 mips_elf_resolve_final_got_entries earlier. Count the number 776 of forced-local entries. Do not add stub sizes to loadable_size; 777 after this patch, the stub sizes are already included in the main 778 estimate. Allocate dynamic relocations here rather than in the 779 main _bfd_mips_elf_size_dynamic_sections loop. 780 (mips_elf_estimate_stub_size): New function, split out from 781 _bfd_mips_elf_always_size_sections. 782 (mips_elf_allocate_lazy_stub): New function. 783 (mips_elf_lay_out_lazy_stubs): Likewise. 784 (_bfd_mips_elf_size_dynamic_sections): Call mips_elf_estimate_stub_size, 785 mips_elf_lay_out_got and mips_elf_lay_out_lazy_stubs. Do not handle 786 the allocation of sreldyn specially. 787 (_bfd_mips_elf_hide_symbol): Delete. 788 7892008-08-07 Richard Sandiford <rdsandiford@googlemail.com> 790 791 * elfxx-mips.c (allocate_dynrelocs): Ignore indirect and warning 792 symbols. 793 7942008-08-06 Richard Sandiford <rdsandiford@googlemail.com> 795 796 * elfxx-mips.c (mips_elf_link_hash_entry): Move bfd_boolean 797 fields to the end of the structure and make them single-bit 798 bitfields. 799 (mips_elf_link_hash_newfunc): Make the initialization statements 800 follow the new field order. 801 8022008-08-06 Richard Sandiford <rdsandiford@googlemail.com> 803 804 * elfxx-mips.c (_mips_elf_section_data): Remove the "u.got_info" field. 805 (mips_elf_link_hash_table): Add "sgot" and "got_info" fields. 806 (_bfd_mips_elf_link_hash_table_create): Initialize them. 807 (mips_elf_got_section): Always apply the !maybe_excluded behavior. 808 (mips_elf_got_info): Delete. 809 (mips_elf_initialize_tls_slots): Remove the DYNOBJ local variable. 810 Adjust the call to mips_elf_got_section. 811 (mips_elf_local_got_index): Don't call mips_elf_got_info. 812 Update the call to mips_elf_create_local_got_entry. 813 Use htab->got_info. 814 (mips_elf_global_got_index): Don't call mips_elf_got_info; 815 use htab->got_info and htab->sgot instead. 816 (mips_elf_got_page): Don't call mips_elf_got_info. Update the 817 call to mips_elf_create_local_got_entry. 818 (mips_elf_got16_entry): Likewise. 819 (mips_elf_got_offset_from_index): Replace with DYNOBJ parameter 820 with an INFO parameter. Don't call mips_elf_got_info; use htab->sgot 821 and htab->got_info instead. 822 (mips_elf_create_local_got_entry): Remove the GG and SGOT parameters. 823 Use htab->sgot and htab->got_info. 824 (mips_elf_sort_hash_table): Remove the DYNOBJ local variable. 825 Don't call mips_elf_got_info; use htab->got_info instead. 826 (mips_elf_record_global_got_symbol): Turn G from a paramter to 827 a local variable and read it from htab->got_info. 828 (mips_elf_record_local_got_symbol): Replace the G parameter with 829 an INFO parameter. Make G a local variable and read it from 830 htab->got_info instead. 831 (mips_elf_record_got_page_entry): Likewise. 832 (mips_elf_multi_got): Remove the G parameter and make it a local 833 variable instead. Read it from htab->got_info. 834 (mips_elf_create_got_section): Cache the GOT section in htab->sgot. 835 Store the GOT information in htab->got_info. 836 (mips_elf_calculate_relocation): Don't call mips_elf_got_section 837 and mips_elf_got_info; use htab->sgot and htab->got_info instead. 838 Adjust the calls to mips_elf_got_offset_from_index and 839 mips_elf_adjust_gp. 840 (_bfd_mips_elf_check_relocs): Remove the G and SGOT local variables. 841 Adjust the calls to mips_elf_record_local_got_symbol, 842 mips_elf_record_global_got_symbol and mips_elf_record_got_page_entry. 843 Use htab->sgot. 844 (_bfd_mips_elf_always_size_sections): Remove the DYNOBJ local variable. 845 Don't call mips_elf_got_info; use htab->sgot and htab->got_info instead. 846 Update the call to mips_elf_multi_got. 847 (_bfd_mips_elf_size_dynamic_sections): Don't call mips_elf_got_info; 848 use htab->got_info instead. 849 (_bfd_mips_elf_finish_dynamic_symbol): Update the call to 850 mips_elf_got_section. Get the got_info from the hash table 851 rather than the GOT section. 852 (_bfd_mips_vxworks_finish_dynamic_symbol): Likewise. 853 (_bfd_mips_elf_finish_dynamic_sections): Likewise. 854 (_bfd_mips_elf_hide_symbol): Don't call mips_elf_got_section; 855 get the got_info from the hash table instead. Remove the GOT 856 local variable. 857 (_bfd_mips_elf_final_link): Likewise. Also remove the DYNOBJ 858 local variable. 859 8602008-08-06 Richard Sandiford <rdsandiford@googlemail.com> 861 862 * elfxx-mips.c (mips_elf_link_hash_table): Add an "sstubs" field. 863 (_bfd_mips_elf_create_dynamic_sections): Use it to cache the stubs 864 section. Don't check whether the section already exists. 865 (_bfd_mips_elf_adjust_dynamic_symbol): Use htab->sstubs. 866 (_bfd_mips_elf_finish_dynamic_symbol): Likewise. 867 (_bfd_mips_elf_finish_dynamic_sections): Likewise. 868 (_bfd_mips_elf_size_dynamic_sections): Likewise. Don't add the 869 dummy stub to an empty section. 870 (_bfd_mips_elf_link_hash_table_create): Initialize the "sstubs" field. 871 8722008-08-06 Richard Sandiford <rdsandiford@googlemail.com> 873 874 * reloc.c (BFD_RELOC_MIPS16_GOT16, BFD_RELOC_MIPS16_CALL16): Declare. 875 * libbfd.h, bfd-in2.h: Regenerate. 876 * elf32-mips.c (elf_mips16_howto_table_rel): Fill in reserved 877 R_MIPS16_GOT16 and R_MIPS16_CALL16 entries. 878 (mips16_reloc_map): Add mappings. 879 * elf64-mips.c (mips16_elf64_howto_table_rel): Fill in reserved 880 R_MIPS16_GOT16 and R_MIPS16_CALL16 entries. 881 (mips16_elf64_howto_table_rela): Likewise. 882 (mips16_reloc_map): Add mappings. 883 * elfn32-mips.c (elf_mips16_howto_table_rel): Fill in reserved 884 R_MIPS16_GOT16 and R_MIPS16_CALL16 entries. 885 (elf_mips16_howto_table_rela): Likewise. 886 (mips16_reloc_map): Add mappings. 887 * elfxx-mips.c (mips_elf_create_shadow_symbol): New function. 888 (section_allows_mips16_refs_p): Likewise. 889 (mips16_stub_symndx): Likewise. 890 (mips_elf_check_mips16_stubs): Treat the data argument as a 891 bfd_link_info. Mark every dynamic symbol as needing MIPS16 stubs 892 and create a "shadow" symbol for the original MIPS16 definition. 893 (mips16_reloc_p, got16_reloc_p, call16_reloc_p, hi16_reloc_p) 894 (lo16_reloc_p, mips16_call_reloc_p): New functions. 895 (_bfd_mips16_elf_reloc_unshuffle): Use mips16_reloc_p to generalize 896 relocation checks. 897 (_bfd_mips16_elf_reloc_shuffle): Likewise. 898 (_bfd_mips_elf_lo16_reloc): Handle R_MIPS16_GOT16. 899 (mips_elf_got16_entry): Add comment. 900 (mips_elf_calculate_relocation): Use hi16_reloc_p, 901 lo16_reloc_p, mips16_call_reloc_p, call16_reloc_p and got16_reloc_p 902 to generalize relocation checks. Use section_allows_mips16_refs_p 903 instead of mips16_stub_section_p. Handle R_MIPS16_CALL16 and 904 R_MIPS16_GOT16, allowing the former to refer directly to a 905 MIPS16 function if its stub is not needed. 906 (mips16_stub_section_p): Delete. 907 (_bfd_mips_elf_symbol_processing): Convert odd-valued function 908 symbols into even MIPS16 symbols. 909 (mips_elf_add_lo16_rel_addend): Use mips16_reloc_p to generalize 910 a relocation check. 911 (_bfd_mips_elf_check_relocs): Calculate "bed" and "rel_end" 912 earlier in the function. Use mips16_stub_symndx to identify 913 the target function. Avoid out-of-bounds accesses when the 914 stub has no relocations; report an error instead. Use 915 section_allows_mips16_refs_p instead of mips16_stub_section_p. 916 Use mips16_call_reloc_p and got16_reloc_p to generalize relocation 917 checks. Handle R_MIPS16_CALL16 and R_MIPS16_GOT16. Don't create 918 dynamic relocations for absolute references to __gnu_local_gp. 919 (_bfd_mips_elf_always_size_sections): Pass a bfd_link_info as 920 the argument to mips_elf_check_mips16_stubs. Generalize comment. 921 (_bfd_mips_elf_relocate_section): Use hi16_reloc_p and got16_reloc_p 922 to generalize relocation checks. 923 (_bfd_mips_elf_finish_dynamic_symbol): If a dynamic MIPS16 function 924 symbol has a non-MIPS16 stub, redirect the symbol to the stub. 925 Fix an overly long line. Don't give dynamic symbols type STO_MIPS16. 926 (_bfd_mips_elf_gc_sweep_hook): Handle R_MIPS16_CALL16 and 927 R_MIPS16_GOT16. 928 9292008-08-06 Alan Modra <amodra@bigpond.net.au> 930 931 * elf32-ppc.c (ppc_elf_relax_section): Clear R_PPC_PLTREL24 addend. 932 (ppc_elf_relocate_section <R_PPC_RELAX32_PLT>): Don't bother here. 933 9342008-08-05 Alan Modra <amodra@bigpond.net.au> 935 Jaka Močnik <jaka@xlab.si> 936 937 * coffcode.h (coff_slurp_line_table): bfd_alloc lineno_cache first 938 so that we don't inadvertently free it. Use bfd_alloc for sort 939 arrays, and memcpy sorted line table. 940 9412008-08-04 Alan Modra <amodra@bigpond.net.au> 942 943 * elf32-spu.c (spu_elf_auto_overlay): Use the maximum possible 944 if --fixed-space request is too large. 945 9462008-08-04 Alan Modra <amodra@bigpond.net.au> 947 948 * Makefile.am (SRC-POTFILES.in, BLD-POTFILES.in): Set LC_ALL=C. 949 * Makefile.in: Regenerate. 950 * po/SRC-POTFILES.in: Regenerate. 951 9522008-08-02 Alan Modra <amodra@bigpond.net.au> 953 954 * elf32-spu.c (mark_overlay_section): Move code calculating 955 max_overlay_size to correct block. 956 (spu_elf_auto_overlay): Don't use %x in einfo error message. 957 9582008-08-01 Alan Modra <amodra@bigpond.net.au> 959 Jan Kratochvil <jan.kratochvil@redhat.com> 960 961 * elfcore.h (elf_core_file_p): Ensure we have a backend match 962 with the correct arch size before rejecting the generic fallback. 963 * elfcode.h (elf_object_p): Likewise. Ensure arch size matches 964 before accepting a target. 965 9662008-08-01 Alan Modra <amodra@bigpond.net.au> 967 968 PR 6774 969 * elf.c (rewrite_elf_program_header): Don't wrap p_paddr to 970 include file or program headers. 971 9722008-07-30 Alan Modra <amodra@bigpond.net.au> 973 974 * coff-ppc.c, coffgen.c, ecoff.c, ecofflink.c, elf.c, elf32-frv.c, 975 elf32-iq2000.c, elf32-m32c.c, elf32-mep.c, elf32-mt.c, 976 elf32-sh-symbian.c, elf64-hppa.c, mach-o.c, peXXigen.c, pef.c, 977 ppcboot.c, vms-misc.c, xsym.c: Silence gcc warnings. 978 9792008-07-28 Daniel Jacobowitz <dan@codesourcery.com> 980 981 * elfxx-mips.c (mips_elf_calculate_relocation): Avoid generating 982 relocations for undefined weak symbols with non-default visibility. 983 (_bfd_mips_elf_check_relocs): Use possibly_dynamic_relocs for 984 global symbols in shared libraries. 985 (allocate_dynrelocs): New function. 986 (_bfd_mips_elf_adjust_dynamic_symbol): Do not handle 987 possibly_dynamic_relocs here. 988 (_bfd_mips_elf_size_dynamic_sections): Call allocate_dynrelocs. 989 9902008-07-28 Alexandre Oliva <aoliva@redhat.com> 991 992 * elf32-i386.c (struct elf_i386_link_hash_table): Added field 993 tls_module_base. 994 (elf_i386_link_hash_table_create): Initialize it. 995 (elf_i386_always_size_sections): Set it. 996 (set_tls_module_base): New. 997 (elf_i386_relocate_sections): Call it. 998 * elf64-x86-64.c (struct elf64_x86_64_link_hash_table): Added 999 field tls_module_base. 1000 (elf64_x86_64_link_hash_table_create): Initialize it. 1001 (elf64_x86_64_always_size_sections): Set it. 1002 (set_tls_module_base): New. 1003 (elf64_x86_64_relocate_sections): Call it. 1004 Reported by Cary Coutant <ccoutant@google.com> 1005 10062008-07-28 Ineiev <ineiev@yahoo.co.uk> 1007 1008 * elf32-arm.c (arm_map_one_stub): Declare variables at beginning 1009 of block. 1010 * elf32-avr.c (get_local_syms): Likewise. 1011 10122008-07-28 Alan Modra <amodra@bigpond.net.au> 1013 1014 PR 6769 1015 * bfd-in.h (BFD_VMA_FMT): Define. 1016 (printf_vma, sprintf_vma): Use the above. 1017 (_bfd_int64_low, _bfd_int64_high): Delete. 1018 * bfd-in2.h: Regenerate. 1019 10202008-07-27 Alan Modra <amodra@bigpond.net.au> 1021 1022 * elf.c (_bfd_elf_make_section_from_shdr): Ignore return from 1023 elf_parse_notes. Use bfd_malloc_and_get_section. 1024 (elf_parse_notes): Validate note namesz and descsz. 1025 10262008-07-26 Michael Eager <eager@eagercon.com> 1027 1028 * elf32-ppc.c (ppc_elf_merge_obj_attributes): Check compatibility 1029 between single-float, double-float, and soft-float. 1030 10312008-07-24 Daniel Jacobowitz <dan@codesourcery.com> 1032 1033 * elf32-mips.c (elf_backend_write_section): Define. 1034 10352008-07-24 Nick Clifton <nickc@redhat.com> 1036 1037 * elf.c (_bfd_elf_map_sections_to_segments): Catch off by one 1038 error assigning sections to segments. 1039 10402008-07-22 Nick Clifton <nickc@redhat.com> 1041 1042 * elf.c (_bfd_elf_map_sections_to_segments): Allow sections in 1043 adjoining pages to be included in the same segment. 1044 10452008-07-22 Simon Baldwin <simonb@google.com> 1046 1047 * elflink.c (elf_link_output_extsym): Set st_size to zero for 1048 symbols from dynamic libraries. 1049 10502008-07-21 H.J. Lu <hongjiu.lu@intel.com> 1051 1052 PR ld/4424 1053 * elflink.c (_bfd_elf_merge_symbol): Call bed->relocs_compatible 1054 to check if 2 inputs are compatible. 1055 10562008-07-21 Sterling Augustine <sterling@tensilica.com> 1057 1058 * elf.c (assign_file_positions_for_load_sections): Print vma in 1059 error message about overlapping section vmas. 1060 10612008-07-21 H.J. Lu <hongjiu.lu@intel.com> 1062 1063 PR ld/6747 1064 * elf32-frv.c (elf32_frv_relocate_section): Revert the change 1065 for PR ld/6446 checked in by accident on May 21, 2008. 1066 10672008-07-21 Nick Clifton <nickc@redhat.com> 1068 1069 * coff-sh.c (bfd_pe_print_pdata): Define to NULL for non 1070 COFF_WITH_PE based SH ports. 1071 * libpei.h (_bfd_XX_print_ce_compressed_pdata): Prototype. 1072 * arm-wince-pe.c (bfd_pe_print_pdata): Use 1073 _bfd_pe_print_ce_compressed_pdata. 1074 (slurp_symcache, cleanup_syms, pe_print_ce_compressed_pdata): Move 1075 to... 1076 * peXXigen.c: ... here and rename pe_print_ce_compressed_pdata to 1077 _bfd_XX_print_ce_compressed_pdata. 1078 10792008-07-21 Alan Modra <amodra@bigpond.net.au> 1080 1081 * elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Drop 1082 unwanted zero terminators. 1083 10842008-07-21 Alan Modra <amodra@bigpond.net.au> 1085 1086 * elf32-spu.c (spu_elf_relocate_section): Expand 1087 RELOC_FOR_GLOBAL_SYMBOL. Don't warn about undefined symbols for 1088 R_SPU_PPU32 and R_SPU_PPU64 relocations. 1089 10902008-07-21 Luis Machado <luisgpm@br.ibm.com> 1091 1092 * elf-bfd.h: Declare elfcore_write_ppc_vsx. 1093 * elf.c (elfcore_grok_ppc_vsx): New function. 1094 (elfcore_write_ppc_vsx): New function 1095 (elfcore_grok_note): Handle VSX notes. 1096 (elfcore_write_register_note): Handle VSX notes. 1097 10982008-07-18 Joseph Myers <joseph@codesourcery.com> 1099 1100 * bfd-in.h (bfd_elf32_arm_set_target_relocs): Add new parameter. 1101 * bfd-in2.h: Regenerate. 1102 * elf32-arm.c (struct elf_arm_obj_tdata): Add field 1103 no_wchar_size_warning. 1104 (bfd_elf32_arm_set_target_relocs): Add new parameter 1105 no_wchar_warn. 1106 (elf32_arm_merge_eabi_attributes): Give a warning, not an error, 1107 for conflicting wchar_t attributes. Do not warn if 1108 --no-wchar-size-warning. Make diagnostic text more specific. 1109 11102008-07-18 H.J. Lu <hongjiu.lu@intel.com> 1111 1112 PR ld/6748 1113 * elf32-arm.c (elf32_arm_link_hash_table_create): Initialize 1114 new fields added for ARM long call support. 1115 11162008-07-18 Danny Backx <dannybackx@users.sourceforge.net> 1117 1118 * pe-arm-wince.c (pe_print_compressed_pdata): Define new function to 1119 print compressed pdata structure as described on MSDN. This only 1120 applies to a limited set of architectures (ARM, SH4). 1121 (slurp_symtab, my_symbol_for_address): Define static helper 1122 functions for pe_print_compressed_pdata. 1123 * coffcode.h (bfd_coff_backend_data): Add _bfd_coff_print_pdata field. 1124 (bfd_coff_have_print_pdata, bfd_coff_print_pdata): Define. 1125 * bfd/peXXigen.c (_bfd_XX_print_private_bfd_data_common): Add check on 1126 bfd_coff_backend_data, call the function if non-null. 1127 * pei-mcore.c: Add target dependent initialisation for 1128 bfd_coff_backend_data. 1129 * coff-sh.c: Likewise. 1130 * coff64-rs6000.c: Likewise. 1131 * coff-rs6000.c: Likewise. 1132 * libcoff-in.h: Likewise. 1133 * cf-i386lynx.c: Likewise. 1134 * coff-alpha.c: Likewise. 1135 * coff-apollo.c: Likewise. 1136 * coff-arm.c: Likewise. 1137 * coff-aux.c: Likewise. 1138 * coff-h8300.c: Likewise. 1139 * coff-h8500.c: Likewise. 1140 * coff-i386.c: Likewise. 1141 * coff-i860.c: Likewise. 1142 * coff-i960.c: Likewise. 1143 * coff-ia64.c: Likewise. 1144 * coff-m68k.c: Likewise. 1145 * coff-m88k.c: Likewise. 1146 * coff-maxq.c: Likewise. 1147 * coff-mips.c: Likewise. 1148 * coff-or32.c: Likewise. 1149 * coff-sparc.c: Likewise. 1150 * coff-tic30.c: Likewise. 1151 * coff-tic4x.c: Likewise. 1152 * coff-tic54x.c: Likewise. 1153 * coff-tic80.c: Likewise. 1154 * coff-w65.c: Likewise. 1155 * coff-we32k.c: Likewise. 1156 * coff-x86_64.c: Likewise. 1157 * coff-z80.c: Likewise. 1158 * coff-z8k.c: Likewise. 1159 * pe-mcore.c: Likewise. 1160 * pe-mips.c: Likewise. 1161 * pe-ppc.c: Likewise. 1162 * peXXigen.c: Likewise. 1163 * pei-ppc.c: Likewise. 1164 * libcoff.h: Regenerate. 1165 11662008-07-16 Bernd Schmidt <bernd.schmidt@analog.com> 1167 1168 * elf32-bfin.c (bfin_check_relocs, bfin_relocate_section, 1169 bfin_final_link_relocate, bfin_gc_mark_hook, bfin_gc_sweep_hook, 1170 ELF_DYNAMIC_INTERPRETER, DEFAULT_STACK_SIZE, 1171 struct _bfinfdpic_dynamic_got_info): Moved around to keep FD-PIC code 1172 separate from non-FD-PIC. 1173 11742008-07-14 DJ Delorie <dj@redhat.com> 1175 1176 * elf-m10300.c (mn10300_elf_final_link_relocate): Correct overflow 1177 checks for PCREL8, PCREL16, GOTPC16, GOTOFF16, PLT16, and GOT16 1178 relocs. 1179 (mn10300_elf_relax_section): Correct jump offset check when target 1180 is in a different section. 1181 11822008-07-15 Jie Zhang <jie.zhang@analog.com> 1183 1184 * elf32-bfin.c (elf32_bfin_special_sections[]): New. 1185 (elf_backend_special_sections): Define. 1186 11872008-07-13 Craig Silverstein <csilvers@google.com> 1188 1189 PR binutils/6743 1190 * dwarf2.c (struct dwarf2_debug): New variable info_ptr_memory. 1191 (find_line): Use info_ptr_memory instead of sec_info_ptr. 1192 (_bfd_dwarf2_cleanup_debug_info): Likewise. 1193 11942008-07-12 Jie Zhang <jie.zhang@analog.com> 1195 1196 Revert 1197 2008-07-12 Jie Zhang <jie.zhang@analog.com> 1198 * elf.c (_bfd_elf_map_sections_to_segments): Don't put 1199 executable sections into the same segment with other 1200 read only sections if --sep-code. 1201 * elf32-bfin.c (elf32_bfin_code_in_l1): New variable. 1202 (elf32_bfin_data_in_l1): New variable. 1203 (elf32_bfin_final_write_processing): New. 1204 (elf32_bfin_special_sections[]): New. 1205 (elf_backend_final_write_processing): Define. 1206 (elf_backend_special_sections): Define. 1207 12082008-07-12 Jie Zhang <jie.zhang@analog.com> 1209 1210 * elf.c (_bfd_elf_map_sections_to_segments): Don't put 1211 executable sections into the same segment with other 1212 read only sections if --sep-code. 1213 * elf32-bfin.c (elf32_bfin_code_in_l1): New variable. 1214 (elf32_bfin_data_in_l1): New variable. 1215 (elf32_bfin_final_write_processing): New. 1216 (elf32_bfin_special_sections[]): New. 1217 (elf_backend_final_write_processing): Define. 1218 (elf_backend_special_sections): Define. 1219 12202008-07-11 Andreas Schwab <schwab@suse.de> 1221 1222 * dwarf2.c (read_section): Take pointer to bfd_size_type instead 1223 of unsigned long as last parameter. 1224 (struct dwarf2_debug): Define dwarf_abbrev_size, dwarf_line_size, 1225 dwarf_str_size and dwarf_ranges_size as bfd_size_type instead of 1226 unsigned long. 1227 12282008-07-10 Richard Sandiford <rdsandiford@googlemail.com> 1229 1230 * elfxx-mips.c (mips_elf_calculate_relocation): Calculate GP and GP0 1231 for all relocation types. Allow any type of relocation to refer to 1232 __gnu_local_gp. 1233 12342008-07-10 Richard Sandiford <rdsandiford@googlemail.com> 1235 1236 * elfxx-mips.c (mips_elf_check_mips16_stubs): Use ELF_ST_IS_MIPS16. 1237 (mips_elf_calculate_relocation): Likewise. 1238 (_bfd_mips_elf_add_symbol_hook): Likewise. 1239 (_bfd_mips_elf_finish_dynamic_symbol): Likewise. 1240 (_bfd_mips_vxworks_finish_dynamic_symbol): Likewise. 1241 12422008-07-10 Andreas Schwab <schwab@suse.de> 1243 1244 * elfxx-mips.c (_bfd_mips_elf_section_from_shdr): Add missing 1245 paren. 1246 12472008-07-09 Craig Silverstein <csilvers@google.com> 1248 1249 * Makefile.am (BFD32_LIBS): Add compress.lo. 1250 (BFD32_LIBS_CFILES): Add compress.c. 1251 (BFD_H_FILES): Likewise. 1252 * Makefile.in: Regenerate. 1253 * bfd-in2.h: Regenerate. 1254 * config.in: Add HAVE_ZLIB_H 1255 * configure.in: Add test for libz and zlib.h 1256 * configure: Regenerate. 1257 * dwarf2.c (read_section): New function. 1258 (read_indirect_string): Call new function read_section. 1259 (read_abbrevs): Likewise. 1260 (decode_line_info): Likewise. 1261 (read_debug_ranges): Likewise. 1262 (find_line): Call new function read_section when just one 1263 .zdebug_info section is found, otherwise read and compress 1264 multiple sections. 1265 (_bfd_dwarf2_cleanup_debug_info): Free sec_info_ptr. 1266 * elf.c (_bfd_elf_make_section_from_shdr): Add zdebug prefix. 1267 (special_sections_z): New struct. 1268 (special_sections): Refer to special_sections_z. 1269 * elfxx-mips.c (_bfd_mips_elf_section_from_shdr): Recognize 1270 sections named .zdebug_*. 1271 (_bfd_mips_elf_fake_sections): Likewise. 1272 * compress.c: New file. 1273 (bfd_uncompress_section_contents): New function. 1274 12752008-07-07 Christophe Lyon <christophe.lyon@st.com> 1276 1277 * elf32-arm.c (arm_type_of_stub): Don't crash on local symbols in 1278 the presence of a PLT. 1279 12802008-07-07 Alan Modra <amodra@bigpond.net.au> 1281 1282 * bfd.c (bfd_demangle): Always trim off bfd_get_symbol_leading_char. 1283 12842008-07-02 Alan Modra <amodra@bigpond.net.au> 1285 1286 * elf32-ppc.c (is_pic_glink_stub): New function. 1287 (ppc_elf_get_synthetic_symtab): Don't generate symbols when 1288 multiple shared/pie stubs per plt entry. 1289 12902008-06-30 Richard Sandiford <rdsandiford@googlemail.com> 1291 1292 * elf.c (_bfd_elf_get_synthetic_symtab): Increment p by 1293 bed->s->int_rels_per_ext_rel. 1294 12952008-06-30 Richard Sandiford <rdsandiford@googlemail.com> 1296 1297 * syms.c (BSF_SYNTHETIC): New flag. 1298 * elf.c (_bfd_elf_get_synthetic_symtab): Set it. 1299 * elf32-ppc.c (ppc_elf_get_synthetic_symtab): Likewise. 1300 * elf64-ppc.c (ppc64_elf_get_synthetic_symtab): Likewise. 1301 * bfd-in.h (bfd_asymbol_flavour): Return bfd_target_unknown_flavour 1302 for synthetic symbols. 1303 * bfd-in2.h: Regenerate. 1304 13052008-06-30 Daniel Jacobowitz <dan@codesourcery.com> 1306 1307 * elf32-arm.c (record_arm_to_thumb_glue, record_thumb_to_arm_glue): 1308 Expand comments. 1309 (arm_map_one_stub): Use | 1 when setting the low bit. 1310 13112008-06-29 Andreas Schwab <schwab@suse.de> 1312 1313 * elf32-m68k.c (elf_m68k_relocate_section): Don't ignore existing 1314 addend on _GLOBAL_OFFSET_TABLE_. 1315 13162008-06-24 Daniel Jacobowitz <dan@codesourcery.com> 1317 1318 * elf32-arm.c (STUB_ENTRY_NAME): Define. 1319 (arm_thumb_thumb_long_branch_stub): Use bx instead of b.n. 1320 (arm_pic_long_branch_stub): Mention R_ARM_REL32 instead of 1321 R_ARM_ABS32. 1322 (struct elf32_arm_stub_hash_entry): Add output_name. 1323 (arm_build_one_stub): Move offsets into the offset argument 1324 of _bfd_final_link_relocate. Correct offset for 1325 arm_thumb_arm_v4t_stub_long_branch. 1326 (elf32_arm_size_stubs): Set stub_entry->output_name. 1327 (elf32_arm_ouput_plt_map_sym): Rename to elf32_arm_output_map_sym. 1328 Update all callers. 1329 (elf32_arm_output_stub_sym): New. 1330 (arm_map_one_stub): Correct formatting. Use elf32_arm_output_stub_sym. 1331 13322008-06-20 Alan Modra <amodra@bigpond.net.au> 1333 1334 * elf32-spu.c (needs_ovl_stub): Correctly return nonovl_stub for 1335 non-branch insns. 1336 13372008-06-20 Alan Modra <amodra@bigpond.net.au> 1338 1339 * elf32-spu.c (build_stub): Allow wraparound on stub branches. 1340 (allocate_spuear_stubs, build_spuear_stubs): Return value from 1341 count_stub/build_stub. 1342 (spu_elf_build_stubs): Correct location of stub reloc error message. 1343 13442008-06-18 M R Swami Reddy <MR.Swami.Reddy@nsc.com> 1345 1346 * elf32-cr16.c (ELF_MACHINE_ALT1): Define to EM_CR16_OLD. 1347 13482008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 1349 1350 * configure: Regenerate. 1351 13522008-06-17 Alan Modra <amodra@bigpond.net.au> 1353 1354 * elf32-spu.c (struct spu_link_hash_table): Add extra_stack_space. 1355 (spu_elf_check_vma): Add extra_stack_space param, copy to htab. 1356 (spu_elf_auto_overlay): Use it. 1357 (RECURSE_UNMARK): Define as 0. 1358 (unmark_overlay_section): Heed RECURSE_UNMARK. 1359 * elf32-spu.h (spu_elf_check_vma): Update prototype. 1360 13612008-06-12 DJ Delorie <dj@redhat.com> 1362 1363 * elf32-m32c.c (ELF_MACHINE_ALT1): Define as EM_M32C_OLD. 1364 13652008-06-09 Paul Brook <paul@codesourcery.com> 1366 1367 bfd/ 1368 * elf32-arm.c (elf32_arm_merge_private_bfd_data): Allow BE8 shared 1369 libraries. 1370 13712008-06-09 Christophe Lyon <christophe.lyon@st.com> 1372 1373 * elf32-arm.c (arm_stub_is_thumb): Define. 1374 (elf32_arm_final_link_relocate): Handle near mode switching stubs. 1375 13762008-06-07 Alan Modra <amodra@bigpond.net.au> 1377 1378 * elf32-spu.c (spu_elf_auto_overlay): Add valid area below sp 1379 to stack calculation. 1380 13812008-06-06 Paul Brook <paul@codesourcery.com> 1382 1383 bfd/ 1384 * elf32-arm.c (elf32_arm_merge_private_bfd_data): Reject BE8 input. 1385 13862008-06-06 Alan Modra <amodra@bigpond.net.au> 1387 1388 * elf32-spu.c (spu_elf_auto_overlay): Relax requirement that 1389 file names be unique. Specify archive:path in overlay script. 1390 13912008-06-05 Alan Modra <amodra@bigpond.net.au> 1392 1393 PR ld/6590 1394 * elf64-ppc.c (ppc_build_one_stub): Correct reloc offsets. 1395 13962008-06-04 Alan Modra <amodra@bigpond.net.au> 1397 1398 * elf.c (ignore_section_sym): Don't test section sym value here. 1399 (elf_map_symbols): Instead check zero value here as was done prior 1400 to 2006-05-26 change. 1401 14022008-06-04 Nick Clifton <nickc@redhat.com> 1403 1404 PR ld/6019 1405 * elf32-avr.c (elf32_avr_relax_section): Handle the case where 1406 there are no local symbols. 1407 14082008-06-04 Alan Modra <amodra@bigpond.net.au> 1409 1410 * elf32-spu.c (get_sym_h): Don't attempt to read global syms. 1411 (process_stubs): Likewise. 1412 (discover_functions): Don't used cached symbols. 1413 (maybe_insert_function): Correct condition under which function 1414 array is realloc'd. 1415 (mark_functions_via_relocs): Delete unused variable. 1416 14172008-05-30 Frediano Ziglio <frediano.ziglio@vodafone.com> 1418 Nick Clifton <nickc@redhat.com> 1419 1420 PR ld/6511 1421 * elf64-hppa.c (allocate_global_data_opd): Default to using the 1422 dynamic symbol table for local function names in shared libraries. 1423 14242008-05-29 Jan Kratochvil <jan.kratochvil@redhat.com> 1425 1426 * elf.c (assign_file_positions_for_load_sections): Adjust pre-section 1427 gaps based on VMA and P_VADDR instead of LMA and P_PADDR addresses. 1428 14292008-05-28 Alan Modra <amodra@bigpond.net.au> 1430 1431 * elf32-spu.c (spu_elf_object_p): New function. 1432 (elf_backend_object_p): Define. 1433 (build_stub): Correct second word of 8 byte overlay stubs. 1434 (spu_elf_relocate_section): Formatting. 1435 14362008-05-24 Carlos Eduardo Seo <cseo@linux.vnet.ibm.com> 1437 1438 * elf.c (elfcore_write_register_note): New function. 1439 * elf-bfd.h (elfcore_write_register_note): New prototype. 1440 14412008-05-22 Christophe Lyon <christophe.lyon@st.com> 1442 1443 * elf32-arm.c (arm_type_of_stub): Ignore STT_SECTION symbols. 1444 (elf32_arm_stub_add_mapping_symbol): Remove. 1445 (elf32_arm_add_stub): Don't generate mapping symbols. Change 1446 prototype. 1447 (elf32_arm_size_stubs): Use new elf32_arm_add_stub 1448 prototype. Don't generate thumb to arm glue for calls. 1449 (arm_map_one_stub): Define. 1450 (elf32_arm_output_arch_local_syms): Generate mapping symbols for 1451 long calls stubs. 1452 14532008-05-21 Nick Clifton <nickc@redhat.com> 1454 1455 * elf32-arm.c (group_sections): Reformat comments. 1456 1457 PR ld/6446 1458 * elf32-frv.c (elf32_frv_relocate_section): Set EF_FRV_PIC by 1459 default (for FDPIC). Clear it if any inter-segment relocations 1460 are found. 1461 1462 * elf64-hppa.c (elf64_hppa_finalize_opd): Check NULL return 1463 from elf_link_hash_lookup. 1464 14652008-05-21 Maxim Kuvyrkov <maxim@codesourcery.com> 1466 1467 Add multi-GOT support for m68k. 1468 * elf32-m68k.c (struct elf_m68k_link_hash_entry: got_entry_key, 1469 glist): New fields. 1470 (struct elf_m68k_got_entry_key, struct elf_m68k_got_entry, 1471 struct elf_m68k_got, struct elf_m68k_bfd2got_entry, 1472 struct elf_m68k_multi_got): New data structures. 1473 (struct elf_m68k_link_hash_table: local_gp_p, use_neg_got_offsets_p, 1474 allow_multigot_p, multi_got_): New fields. 1475 (elf_m68k_multi_got): New macro. 1476 (elf_m68k_link_hash_newfunc): Initialize new fields of 1477 struct elf_m68k_link_hash_entry. 1478 (elf_m68k_link_hash_table_create): Initialize new fields of 1479 struct elf_m68k_link_hash_table. 1480 (elf_m68k_link_hash_table_free): New static function implementing hook. 1481 (elf_m68k_init_got, elf_m68k_clear_got, elf_m68k_create_empty_got): New 1482 static functions for struct elf_m68k_got. 1483 (elf_m68k_init_got_entry_key, elf_m68k_got_entry_hash, 1484 elf_m68k_got_entry_eq): New static functions for 1485 struct elf_m68k_got_entry. 1486 (ELF_M68K_REL_8O_MAX_N_ENTRIES_IN_GOT, 1487 ELF_M68K_REL_8O_16O_MAX_N_ENTRIES_IN_GOT): New macros. 1488 (enum elf_m68k_get_entry_howto): New enum. 1489 (elf_m68k_get_got_entry, elf_m68k_update_got_entry_type, 1490 elf_m68k_remove_got_entry_type): New static functions for 1491 struct elf_m68k_got_entry. 1492 (elf_m68k_add_entry_to_got): New static function. 1493 (elf_m68k_bfd2got_entry_hash, elf_m68k_bfd2got_entry_eq, 1494 elf_m68k_bfd2got_entry_del, elf_m68k_get_bfd2got_entry): New static 1495 functions for struct elf_m68k_bfd2got_entry. 1496 (struct elf_m68k_can_merge_gots_arg, elf_m68k_can_merge_gots_1, 1497 elf_m68k_can_merge_gots): New traversal. 1498 (struct elf_m68k_merge_gots_arg, elf_m68k_merge_gots_1, 1499 elf_m68k_merge_gots): Ditto. 1500 (struct elf_m68k_finalize_got_offsets_arg, 1501 elf_m68k_finalize_got_offsets_1, elf_m68k_finalize_got_offsets): Ditto. 1502 (struct elf_m68k_partition_multi_got_arg, 1503 elf_m68k_partition_multi_got_1, elf_m68k_init_symndx2h_1, 1504 elf_m68k_partition_multi_got): Ditto. 1505 (elf_m68k_find_got_entry_ptr, elf_m68k_remove_got_entry): New static 1506 functions. 1507 (elf_m68k_copy_indirect_symbol): New static function implementing 1508 a hook. 1509 (elf_m68k_check_relocs): Update to add entries to multi-GOT. 1510 (elf_m68k_gc_sweep_hook): Update to remove entries from multi-GOT. 1511 (elf_m68k_always_size_sections): Assign BFDs to GOTs. 1512 (elf_m68k_relocate_section): Update to properly handle GOT relocations. 1513 (elf_m68k_finish_dynamic_symbol): Update to traverse all GOT entries 1514 of a global symbol. 1515 (bfd_elf_m68k_set_target_options): New function. 1516 (bfd_elf32_bfd_link_hash_table_free): Define hook. 1517 (bfd_elf32_bfd_final_link): Change expansion to bfd_elf_final_link 1518 to skip generic calculation of GOT offsets. 1519 (elf_backend_copy_indirect_symbol): Define hook. 1520 * bfd-in.h (bfd_elf_m68k_set_target_options): Declare function. 1521 * bfd-in2.h: Regenerate. 1522 15232008-05-21 André Johansen <andrejoh@gmail.com> 1524 1525 PR 868 1526 * dwarf2.c (_bfd_dwarf2_cleanup_debug_info): Free memory allocated 1527 for filenames in function tables and variable tables. 1528 15292008-05-19 Alan Modra <amodra@bigpond.net.au> 1530 1531 PR 2995, PR 6473 1532 * elf.c (_bfd_elf_make_section_from_shdr): Leave lma equal to 1533 vma when all p_paddr fields are zero and there is more than 1534 one PT_LOAD header. 1535 15362008-05-15 Christophe Lyon <christophe.lyon@st.com> 1537 1538 Add long call support for ARM. 1539 * elf32-arm.c (THM2_MAX_FWD_BRANCH_OFFSET): Define. 1540 (THM2_MAX_BWD_BRANCH_OFFSET): Define. 1541 (ARM_MAX_FWD_BRANCH_OFFSET): Define. 1542 (ARM_MAX_BWD_BRANCH_OFFSET): Define. 1543 (THM_MAX_FWD_BRANCH_OFFSET): Define. 1544 (THM_MAX_BWD_BRANCH_OFFSET): Define. 1545 (arm_long_branch_stub): Define. 1546 (arm_pic_long_branch_stub): Define. 1547 (arm_thumb_v4t_long_branch_stub): Define. 1548 (arm_thumb_thumb_long_branch_stub): Define. 1549 (arm_thumb_arm_v4t_long_branch_stub): Define. 1550 (STUB_SUFFIX): Define. 1551 (elf32_arm_stub_type): Define. 1552 (elf32_arm_stub_hash_entry): Define. 1553 (elf32_arm_link_hash_entry): Add stub_cache field. 1554 (arm_stub_hash_lookup): Define. 1555 (elf32_arm_link_hash_table): Add stub_hash_table, stub_bfd, 1556 add_stub_section, layout_sections_again, stub_group, bfd_count, 1557 top_index, input_list fields. 1558 (elf32_arm_link_hash_newfunc): Init new field. 1559 (stub_hash_newfunc): New function. 1560 (elf32_arm_link_hash_table_create): Init stub_hash_table. 1561 (elf32_arm_hash_table_free): New function. 1562 (arm_type_of_stub): New function. 1563 (elf32_arm_stub_name): New function. 1564 (elf32_arm_get_stub_entry): New function. 1565 (elf32_arm_stub_add_mapping_symbol): New function. 1566 (elf32_arm_add_stub): New function. 1567 (arm_build_one_stub): New function. 1568 (arm_size_one_stub): New function. 1569 (elf32_arm_setup_section_lists): New function. 1570 (elf32_arm_next_input_section): New function. 1571 (group_sections): New function. 1572 (elf32_arm_size_stubs): New function. 1573 (elf32_arm_build_stubs): New function. 1574 (bfd_elf32_arm_add_glue_sections_to_bfd): Skip stub sections. 1575 (bfd_elf32_arm_process_before_allocation): No longer handle 1576 R_ARM_CALL and R_ARM_THM_CALL. 1577 (using_thumb_only): New function. 1578 (elf32_arm_final_link_relocate): Redirect calls to stub if range 1579 exceeds encoding capabilities. 1580 (bfd_elf32_bfd_link_hash_table_free): Define. 1581 * bfd-in.h (R_ARM_max): Fix value to 130. 1582 (elf32_arm_setup_section_lists): Protype. 1583 (elf32_arm_next_input_section): Protype. 1584 (elf32_arm_size_stubs): Protype. 1585 (elf32_arm_build_stubs): Protype. 1586 * bfd-in2.h: Regenerate. 1587 15882008-05-14 Ulrich Weigand <uweigand@de.ibm.com> 1589 1590 * elf32-ppc.c (ppc_elf_get_synthetic_symtab): Fix memset calls. 1591 * elf64-ppc.c (ppc64_elf_get_synthetic_symtab): Likewise. 1592 15932008-05-14 Alan Modra <amodra@bigpond.net.au> 1594 1595 * Makefile.am: Run "make dep-am". 1596 * Makefile.in: Regenerate. 1597 15982008-05-14 Ulrich Weigand <uweigand@de.ibm.com> 1599 Alan Modra <amodra@bigpond.net.au> 1600 1601 * elf32-ppc.c (section_covers_vma): New function. 1602 (ppc_elf_get_synthetic_symtab): New function. 1603 (bfd_elf32_get_synthetic_symtab): Define. 1604 * elf64-ppc.c (section_covers_vma): New function. 1605 (ppc64_elf_get_synthetic_symtab): Generate sym@plt on glink branch 1606 table entries, and __glink_PLTresolve on resolver stub. 1607 (ppc64_elf_build_stubs): Rename __glink sym to __glink_PLTresolve. 1608 16092008-05-12 Alan Modra <amodra@bigpond.net.au> 1610 1611 PR 6443 1612 * elf32-ppc.c (MUST_BE_DYN_RELOC): Delete. 1613 (must_be_dyn_reloc): New function. 1614 (ppc_elf_check_relocs): Don't set DF_STATIC_TLS for tprel relocs 1615 in pies. 1616 (ppc_elf_tls_optimize): Optimise pies. 1617 (ppc_elf_relocate_section): Use a section symbol rather than no 1618 symbol if possible for LD->IE TLS sequence, but don't error if 1619 we must use no symbol. 1620 * elf64-ppc.c (MUST_BE_DYN_RELOC): As for elf32-ppc.c. 1621 (must_be_dyn_reloc): Likewise. 1622 (ppc64_elf_check_relocs): Likewise. 1623 (ppc64_elf_tls_optimize): Likewise. 1624 (ppc64_elf_relocate_section): Likewise. 1625 16262008-05-12 Alan Modra <amodra@bigpond.net.au> 1627 1628 * elf32-spu.c (spu_elf_relocate_section): Rename is_ea to is_ea_sym. 1629 16302008-05-10 Paul Pluzhnikov <ppluzhnikov@google.com> 1631 1632 * elfcore.h (elf_core_file_p): Warn about core truncation. 1633 16342008-05-07 Bob Wilson <bob.wilson@acm.org> 1635 1636 * elf32-xtensa.c (xtensa_property_section_name): New. 1637 (xtensa_make_property_section): New. 1638 (xtensa_get_property_section): Make static. Do not create a new 1639 section if it does not exist. 1640 16412008-05-08 Alan Modra <amodra@bigpond.net.au> 1642 1643 * elf32-spu.c (spu_elf_special_sections): Add "._ea". 1644 (spu_elf_relocate_section): Handle relocations against symbols 1645 defined in ._ea specially. 1646 16472008-05-03 Daniel Jacobowitz <dan@codesourcery.com> 1648 1649 * elf32-arm.c (elf32_arm_symbian_link_hash_table_create): Use 1650 ARRAY_SIZE. 1651 (elf32_arm_symbian_plt_sym_val): New. 1652 (elf_backend_plt_sym_val): Define. 1653 16542008-05-03 Alan Modra <amodra@bigpond.net.au> 1655 1656 PR 2995, PR 6473 1657 * elf.c (rewrite_elf_program_header): Rather than clearing 1658 p_paddr_valid at end, don't set it in the first place. Delete 1659 comment no longer relevant. When not p_paddr_valid, don't set 1660 paddr from vaddr, and don't set p_vaddr_offset. 1661 16622008-05-01 Cary Coutant <ccoutant@google.com> 1663 1664 * elf.c (bfd_elf_get_str_section): Fix memory leak caused by 1665 corrupt string table. 1666 16672008-05-01 Joel Brobecker <brobecker@adacore.com> 1668 1669 * cache.c (cache_bread_1): Renames cache_bread. 1670 (cache_bread): New function. 1671 16722008-05-01 Alan Modra <amodra@bigpond.net.au> 1673 1674 PR 2995, PR 6473 1675 * elf.c (_bfd_elf_make_section_from_shdr): Always set lma from p_paddr. 1676 (assign_file_positions_for_load_sections): Combine nested "if". 1677 (copy_elf_program_header): Don't set p_paddr_valid or p_vaddr_offset 1678 when all header p_paddr fields are zero. 1679 16802008-04-30 Edmar Wienskoski <edmar@freescale.com> 1681 1682 * cpu-powerpc.c (bfd_powerpc_archs): Add e500mc entry. 1683 16842008-04-29 Daniel Jacobowitz <dan@codesourcery.com> 1685 1686 * elf.c (_bfd_elf_get_dynamic_reloc_upper_bound) 1687 (_bfd_elf_canonicalize_dynamic_reloc): Find dynamic relocations 1688 even if they are not loaded. 1689 * elflink.c (_bfd_elf_init_2_index_sections): Set data_index_section 1690 first. 1691 16922008-04-25 Jay Foad <jay.foad@gmail.com> 1693 1694 * reloc16.c (bfd_coff_reloc16_get_value): Add support for 1695 undefined weak symbols. 1696 16972008-04-25 Nick Clifton <nickc@redhat.com> 1698 1699 * po/vi.po: Updated Vietnamese translation. 1700 17012008-04-23 Paolo Bonzini <bonzini@gnu.org> 1702 1703 * aclocal.m4: Regenerate. 1704 * configure: Regenerate. 1705 17062008-04-21 Cary Coutant <ccoutant@google.com> 1707 1708 * archive.c (_bfd_write_archive_contents): Fix incorrect use of 1709 ARFMAG. 1710 17112008-04-21 Nathan Sidwell <nathan@codesourcery.com> 1712 1713 * elfxx-mips.c (_bfd_mips_vxworks_adjust_dynamic_symbol): Don't 1714 set the value of undefined symbols in shared objects. 1715 (_bfd_mips_vxworks_finish_dynamic_symbol): Clear value for 1716 undefined symbols unless pointer equality is needed. 1717 17182008-04-18 Dennis Roberts <dennis.roberts@sunquestinfo.com> 1719 1720 * aix5ppc-core.c: Define macros for the default architecture and 1721 machine for matching core files. 1722 (xcoff64_core_p): Set the architecture and machine to the default 1723 values defined in the macros mentioned above. 1724 * rs6000-core.c: Define macros to determine whether or not the 1725 core file header uses the core_dumpxx header format. 1726 (rs6000coff_core_p): Don't match core files that use the 1727 core_dumpxx header format. 1728 17292008-04-16 Pedro Alves <pedro@codesourcery.com> 1730 1731 * config.bfd (i[3-7]86-*-dicos*, x86_64-*-dicos*): Add. 1732 17332008-04-16 David S. Miller <davem@davemloft.net> 1734 1735 * reloc.c (BFD_RELOC_SPARC_GOTDATA_HIX22, 1736 BFD_RELOC_SPARC_GOTDATA_LOX10, BFD_RELOC_SPARC_GOTDATA_OP_HIX22, 1737 BFD_RELOC_SPARC_GOTDATA_OP_LOX10, BFD_RELOC_SPARC_GOTDATA_OP): New. 1738 * libbfd.h: Regnerate. 1739 * bfd-in2.h: Regenerate. 1740 * elfxx-sparc.c (_bfd_sparc_elf_howto_table): Add entries for 1741 GOTDATA relocations. 1742 (sparc_reloc_map): Likewise. 1743 (_bfd_sparc_elf_check_relocs): Handle R_SPARC_GOTDATA_* like 1744 R_SPARC_GOT*. 1745 (_bfd_sparc_elf_gc_sweep_hook): Likewise. 1746 (_bfd_sparc_elf_relocate_section): Transform R_SPARC_GOTDATA_HIX22, 1747 R_SPARC_GOTDATA_LOX10, R_SPARC_GOTDATA_OP_HIX22, and 1748 R_SPARC_GOTDATA_OP_LOX10 into the equivalent R_SPARC_GOT* reloc. 1749 Simply ignore R_SPARC_GOTDATA_OP relocations. 1750 17512008-04-14 Aurelien Jarno <aurelien@aurel32.net> 1752 1753 * configure.in: Link with the PIC version of libiberty on 1754 Linux/MIPS hosts. 1755 * configure: Regenerate. 1756 17572008-04-14 Edmar Wienskoski <edmar@freescale.com> 1758 1759 * archures.c: Add bfd_mach_ppc_e500mc. 1760 * bfd-in2.h: Regenerate. 1761 17622008-04-08 Alan Modra <amodra@bigpond.net.au> 1763 1764 * elf32-spu.c (spu_elf_build_stubs): Correct error message. 1765 (mark_functions_via_relocs): Remove premature init of symtab_hdr. 1766 (collect_overlays): Commment typo fix. 1767 17682008-04-08 Kees Cook <kees@canonical.com> 1769 1770 * elflink.c (bfd_elf_size_dynamic_sections): Ignore GNU-stack note 1771 in EXEC_P bfds. 1772 17732008-04-08 Alan Modra <amodra@bigpond.net.au> 1774 1775 * elf32-spu.c: Include libiberty.h. 1776 (struct spu_link_hash_table): Add local_stire, overlay_fixed, reserved, 1777 non_ovly_stub, spu_elf_load_ovl_mgr, spu_elf_open_overlay_script, 1778 spu_elf_relink, auto_overlay fields. 1779 (AUTO_OVERLAY, AUTO_RELINK, OVERLAY_RODATA): Define. 1780 (needs_ovl_stub): Flip test so that call to non-function warning 1781 is emitted during relocate_section rather than earlier. 1782 (spu_elf_check_vma): Stash --auto-overlay parameters, and clear 1783 auto_overlay if no section exceeds local store. 1784 (struct call_info): Add count, max_depth, is_pasted fields. 1785 (struct function_info): Add rodata, last_caller, call_count, 1786 depth, new visit flags. 1787 (insert_callee): Increment call count. 1788 (copy_callee): New function. 1789 (mark_functions_via_relocs): Investigate all reloc types to count 1790 possible function pointer stubs for --auto-overlay. Track 1791 last_caller and increment function call_count. 1792 (pasted_function): Insert a "call" into call info for pasted section. 1793 (remove_cycles): Track max depth of calls. Don't emit call graph 1794 pruning warning for --auto-overlay. 1795 (build_call_tree): Don't transfer_calls for --auto-overlay. 1796 Adjust remove_cycles call. 1797 (sort_calls, sort_lib, sort_bfds): New functions. 1798 (struct _mos_param, struct _uos_param, struct _cl_param): New. 1799 (mark_overlay_section, unmark_overlay_section): New functions. 1800 (collect_lib_sectios, auto_ovl_lib_functions): New functions. 1801 (collect_overlays, find_pasted_call): New functions. 1802 (sum_stack): Deal with is_pasted "calls". Exit before printing 1803 when --auto-overlay. 1804 (spu_elf_auto_overlay): New function. 1805 (spu_elf_final_link): Call spu_elf_auto_overlay. 1806 * elf32-spu.h (spu_elf_check_vma): Update prototype. 1807 18082008-04-07 Alan Modra <amodra@bigpond.net.au> 1809 1810 * elf32-spu.c (allocate_spuear_stubs): Ensure _SPUEAR_ symbol 1811 is defined in overlay section before creating a stub. 1812 (build_spuear_stubs): Likewise. 1813 (spu_elf_size_stubs, spu_elf_build_stubs): Adjust calls. 1814 18152008-04-02 Alan Modra <amodra@bigpond.net.au> 1816 1817 * elf32-spu.c (insert_callee): Reorder call list so most recent 1818 call is always first. 1819 (interesting_section): Move. 1820 (mark_functions_via_relocs): Fold interesting_section and 1821 reloc_count tests in callers to here. Simplify output section 1822 owner test. 1823 (discover_functions): Set "gaps" when no symbols and some 1824 "interesting_section". Run pasted_function loop for no symbol 1825 bfds. 1826 (for_each_node, transfer_calls): New functions. 1827 (mark_non_root): Adjust to suit for_each_node. 1828 (call_graph_traverse): Likewise. Fix memory leak. Rename to.. 1829 (remove_cycles): ..this. 1830 (build_call_tree): Use for_each_node and transfer_calls. 1831 (struct _sum_stack_param): New. 1832 (sum_stack): Adjust to suit for_each_node. Return error on 1833 malloc failure. Move code to print root node cumulative stack from.. 1834 (spu_elf_stack_analysis): ..here. Use for_each_node. 1835 18362008-03-31 Cary Coutant <ccoutant@google.com> 1837 1838 PR 6006 1839 * archive.c (_bfd_slurp_extended_name_table): Change 1840 ARFMAG[0] to ARFMAG[1]. 1841 (_bfd_construct_extended_name_table): Likewise. 1842 18432008-03-31 Daniel Jacobowitz <dan@codesourcery.com> 1844 1845 * elfxx-mips.c (mips_elf_record_got_page_entry): Update comment. 1846 (_bfd_mips_elf_check_relocs): Update comments. Always call 1847 mips_elf_record_got_page_entry for R_MIPS_GOT_PAGE. 1848 18492008-03-27 Cary Coutant <ccoutant@google.com> 1850 1851 Add support for thin archives. 1852 * archive.c (_bfd_find_nested_archive): New function. 1853 (get_extended_arelt_filename): Add origin parameter. 1854 (_bfd_generic_read_ar_hdr_mag): Deal with extended name 1855 combined with a file offset. 1856 (append_relative_path): New function. 1857 (_bfd_get_elt_at_filepos): Deal with external members and 1858 nested archives. 1859 (bfd_generic_openr_next_archived_file): Thin archives. 1860 (bfd_generic_archive_p): Recognize new magic string. 1861 (adjust_relative_path): New function. 1862 (_bfd_construct_extended_name_table): Construct extended 1863 names for thin archive members. 1864 (_bfd_write_archive_contents): Emit new magic string, skip 1865 copying files for thin archives. 1866 * bfd-in.h (bfd_is_thin_archive): New macro. 1867 * bfd.c (struct bfd): New fields for thin archives. 1868 * libbfd-in.h (struct areltdata): New field for thin archives. 1869 * opncls.c (bfd_close): Delete BFDs for nested archives. 1870 18712008-03-25 Bernd Schmidt <bernd.schmidt@analog.com> 1872 1873 * elf32-bfin.c (bfin_final_link_relocate): New function, wrapper around 1874 _bfd_final_link_relocate that also handles R_pcrel24 relocs. 1875 (bfinfdpic_relocate_section, bfin_relocate_section): Use it. 1876 18772008-03-25 Nathan Sidwell <nathan@codesourcery.com> 1878 1879 * elf32-arm.c (elf32_arm_final_link_relocate): Skip dynamic relocs 1880 in vxworks tls_vars sections. 1881 (allocate_dynrelocs, elf32_arm_size_dynamic_sections): Likewise. 1882 * elf32-i386.c (allocate_dynrelocs, 1883 elf_i386_size_dynamic_sections, elf_i386_relocate_section): Likewise. 1884 * elf32-ppc.c (allocate_dynrelocs, ppc_elf_size_dynamic_sections, 1885 ppc_elf_relocate_section): Likewise. 1886 * elf32-sh.c (allocate_dynrelocs, sh_elf_size_dynamic_sections, 1887 sh_elf_relocate_section): Likewise. 1888 * elfxx-sparc.c (allocate_dynrelocs, 1889 _bfd_sparc_elf_size_dynamic_sections, 1890 _bfd_sparc_elf_relocate_section): Likewise. 1891 18922008-03-21 Adam Nemet <anemet@caviumnetworks.com> 1893 1894 * elf.c (_bfd_elf_print_private_bfd_data): Use bfd_fprintf_vma to 1895 print the values from the dynamic section. 1896 18972008-03-20 Richard Sandiford <rsandifo@nildram.co.uk> 1898 1899 * elfxx-mips.c (MIPS_ELF_GNU_GOT1_MASK): New macro. 1900 (_bfd_mips_elf_finish_dynamic_sections): Use it instead of 0x80000000. 1901 19022008-03-20 Alan Modra <amodra@bigpond.net.au> 1903 1904 * elf32-spu.c (spu_elf_create_sections): Remove output_bfd parameter. 1905 (spu_elf_find_overlays, spu_elf_size_stubs): Likewise 1906 (process_stubs, discover_functions, build_call_tree): Likewise. 1907 (spu_elf_stack_analysis): Likewise. 1908 (spu_elf_check_vma): Likewise. Move. 1909 (struct call_info): Make "is_tail" a bitfield. 1910 (insert_callee): Clear fun->start and set fun->is_func if we find 1911 a non-tail call. 1912 * elf32-spu.h (spu_elf_create_sections): Update prototype. 1913 (spu_elf_find_overlays, spu_elf_size_stubs, spu_elf_check_vma): Ditto. 1914 19152008-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 1916 1917 * aclocal.m4: Regenerate. 1918 * configure: Likewise. 1919 * Makefile.in: Likewise. 1920 19212008-03-16 H.J. Lu <hongjiu.lu@intel.com> 1922 1923 PR ld/5789 1924 PR ld/5943 1925 * elf32-i386.c (elf_i386_relocate_section): Issue an error 1926 for R_386_GOTOFF relocaton against undefined hidden/internal 1927 symbols when building a shared object. 1928 1929 * elf64-x86-64.c (elf64_x86_64_relocate_section): Issue an 1930 error for R_X86_64_PC8/R_X86_64_PC16/R_X86_64_PC32 1931 relocaton against undefined hidden/internal symbols when 1932 building a shared object. 1933 (elf64_x86_64_finish_dynamic_symbol): Return FALSE when symbol 1934 is referenced locally, but isn't defined in a regular file. 1935 19362008-03-15 H.J. Lu <hongjiu.lu@intel.com> 1937 1938 * bfd-in.h (BFD_NO_FLAGS, HAS_RELOC, EXEC_P, HAS_LINENO, 1939 HAS_DEBUG, HAS_SYMS, HAS_LOCALS, DYNAMIC, WP_TEXT, D_PAGED, 1940 BFD_IS_RELAXABLE, BFD_TRADITIONAL_FORMAT, BFD_IN_MEMORY, 1941 HAS_LOAD_PAGE, BFD_LINKER_CREATED): Moved to ... 1942 * bfd.c: Here. 1943 1944 * bfd.c (bfd): Change cacheable, target_defaulted, opened_once, 1945 mtime_set, no_export, output_has_begun and has_armap to bit 1946 field. 1947 1948 * bfd-in2.h: Regenerated. 1949 19502008-03-14 Daniel Jacobowitz <dan@codesourcery.com> 1951 1952 * cache.c (close_one): Remove mtime hack. 1953 19542008-03-14 H.J. Lu <hongjiu.lu@intel.com> 1955 1956 PR ld/5913 1957 * elfxx-ia64.c (elfNN_ia64_tprel_base): Remove BFD_ASSERT. 1958 (elfNN_ia64_dtprel_base): Likewise. 1959 (elfNN_ia64_relocate_section): Go to missing_tls_sec if 1960 tls_sec is NULL before calling elfNN_ia64_tprel_base or 1961 elfNN_ia64_dtprel_base. Report unsupported TLS relocations. 1962 19632008-03-14 Alan Modra <amodra@bigpond.net.au> 1964 1965 * elf32-spu.c (process_stubs, spu_elf_relocate_section): Move 1966 common code to.. 1967 (maybe_needs_stub): ..here, a new function that also omits stubs 1968 for .eh_frame, and.. 1969 (needs_ovl_stub): ..here. Create stubs for labels in code section 1970 referenced by switch jump table. 1971 (spu_elf_find_overlays): Set htab->ovly_load and htab->ovly_return. 1972 (enum _insn_type): Delete. 1973 (enum _stub_type): New. 1974 (count_stub, build_stub): Adjust. 1975 (allocate_spuear_stubs, build_spuear_stubs): Adjust. 1976 19772008-03-13 Alan Modra <amodra@bigpond.net.au> 1978 1979 * elf.c (_bfd_elf_make_section_from_shdr): Remove unnecessary cast. 1980 (_bfd_elf_assign_file_position_for_section): Simplify align. 1981 (_bfd_elf_init_reloc_shdr): Ensure shift expression wide enough 1982 for sh_addralign. 1983 (elf_fake_sections, swap_out_syms): Likewise. 1984 * elflink.c (bfd_elf_final_link): Likewise. 1985 19862008-03-13 Alan Modra <amodra@bigpond.net.au> 1987 1988 * Makefile.am: Run "make dep-am". 1989 * Makefile.in: Regenerate. 1990 * po/SRC-POTFILES.in: Regenerate. 1991 19922008-03-12 Bernd Schmidt <bernd.schmidt@analog.com> 1993 1994 From Jie Zhang <jie.zhang@analog.com> 1995 * elf32-bfin.c (struct bfinfdpic_relocs_info): Make got17m4, 1996 gothilo, fd, fdgot17m4, fdgothilo, fdgoff17m4, fdgoffhilo, 1997 gotoff, call and sym not bitfields. 1998 (bfinfdpic_gc_sweep_hook): New function; update the relocation 1999 information for the relocations of the section being removed. 2000 (bfinfdpic_check_relocs): Accumulate the number of relocations 2001 which set got17m4, gothilo, fd, fdgot17m4, fdgothilo, fdgoff17m4, 2002 fdgoffhilo, gotoff, call and sym fields. 2003 (elf_backend_gc_sweep_hook): Redefine for FD-PIC. 2004 20052008-03-12 Alan Modra <amodra@bigpond.net.au> 2006 2007 PR 5900 2008 * elf-bfd.h: Include elf/internal.h after elf/external.h. 2009 * elfcode.h (elf_swap_symbol_in): Map reserved shndx range. 2010 (elf_swap_symbol_out): Adjust SHN_XINDEX test. 2011 (elf_swap_ehdr_out): Mask SHN_LORESERVE and SHN_XINDEX to values 2012 seen in external structs. 2013 (valid_section_index_p): Delete. 2014 (elf_object_p): Don't increment section numbers over reserved range. 2015 Simplify test for valid sh_link, sh_info and e_shstrndx fields. 2016 (elf_write_shdrs_and_ehdr): Mask SHN_LORESERVE and SHN_XINDEX to values 2017 seen in external structs. Don't increment section numbers over 2018 reserved range. 2019 * elf.c (bfd_elf_sym_name): Remove redundant tests on st_shndx. 2020 (bfd_section_from_shdr): Likewise. 2021 (group_signature): Range check before accessing elf_elfsections. 2022 (_bfd_elf_setup_sections): Likewise. 2023 (bfd_section_from_shdr): Likewise. 2024 (bfd_section_from_shdr): Don't increment section number over 2025 reserved sections. 2026 (assign_file_positions_for_non_load_sections): Likewise. 2027 (assign_file_positions_except_relocs): Likewise. 2028 (_bfd_elf_write_object_contents): Likewise. 2029 (assign_section_numbers): Likewise. Adjust for changed SHN_*. 2030 (prep_headers): Delete unused variable. 2031 * elflink.c (bfd_elf_link_record_local_dynamic_symbol): Adjust 2032 for changed SHN_* values. 2033 (check_dynsym, elf_link_input_bfd): Likewise. 2034 (bfd_elf_final_link): Likewise. Don't skip over reserved section 2035 range. 2036 (elf_fixup_link_order): Check that sh_link field is valid. 2037 * elf-hppa.h (elf_hppa_add_symbol_hook): Make "index" unsigned. 2038 * elf32-arm.c (elf32_arm_gc_mark_extra_sections): Range check before 2039 accesssing elf_elfsections. 2040 * elf32-avr.c (elf32_avr_size_stubs): Likewise. 2041 * elf32-hppa.c (elf32_hppa_size_stubs): Likewise. 2042 * elf32-m68hc1x.c (elf32_m68hc11_size_stubs): Likewise. 2043 * elf64-hppa.c (elf64_hppa_check_relocs): Adjust for changed 2044 SHN_* defines. Test for SHN_BAD return from 2045 _bfd_elf_section_from_bfd_section 2046 20472008-03-12 Alan Modra <amodra@bigpond.net.au> 2048 2049 * elf-bfd.h (_bfd_elf_section_from_bfd_section): Update prototype. 2050 * elf.c (_bfd_elf_section_from_bfd_section): Return unsigned int, 2051 SHN_BAD on error. 2052 (_bfd_elf_print_private_bfd_data): Test for SHN_BAD result from 2053 _bfd_elf_section_from_bfd_section, not -1. 2054 (swap_out_syms): Likewise. 2055 * elflink.c (elf_link_add_object_symbols): Likewise. 2056 (bfd_elf_get_bfd_needed_list): Likewise. 2057 (bfd_elf_match_symbols_in_sections): Likewise. 2058 (elf_link_add_object_symbols): Don't bother testing for symbols 2059 using normal sections before calling bfd_section_from_elf_index. 2060 (elf_link_input_bfd, bfd_elf_final_link): Likewise. 2061 (bfd_elf_reloc_symbol_deleted_p): Likewise. 2062 * elfcode.h (elf_slurp_symbol_table): Likewise. 2063 * elf32-spu.c (get_sym_h): Likewise. 2064 * elf32-xtensa.c (get_elf_r_symndx_section): Likewise. 2065 * elf64-ppc.c (opd_entry_value, get_sym_h, ppc64_elf_edit_toc): Ditto. 2066 * elf64-sh64.c (sh_elf64_get_relocated_section_contents): Likewise. 2067 20682008-03-11 Alan Modra <amodra@bigpond.net.au> 2069 2070 * elf32-spu.c (spu_elf_relocate_section): Test identical conditions 2071 to those in process_stubs for overlay symbols. 2072 20732008-03-09 Paul Brook <paul@codesourcery.com> 2074 2075 * elf32-arm.c (elf32_arm_merge_eabi_attributes): Handle new 2076 Tag_VFP_arch values. 2077 20782008-03-08 Paul Brook <paul@codesourcery.com> 2079 2080 * elf32-arm.c (insert_thumb_branch): Rewrite. 2081 (elf32_thumb_to_arm_stub): Use new insert_thumb_branch. 2082 20832008-03-07 Paul Brook <paul@codesourcery.com> 2084 2085 * elf32-arm.c (elf32_arm_howto_table_1): Fix bitmasks for MOVW and 2086 MOVT relocations. 2087 (elf32_arm_final_link_relocate): Fix off by one MOVW/MOVT sign 2088 extension. 2089 (elf32_arm_relocate_section): Handle MOVW and MOVT 2090 relocations. Improve safety check for other weird relocations. 2091 (elf32_arm_check_relocs): Only set h->needs_plt for branch/call 2092 relocations. 2093 20942008-03-03 Bob Wilson <bob.wilson@acm.org> 2095 2096 * xtensa-isa.c (xtensa_isa_num_pipe_stages): Make max_stage static and 2097 only compute its value once. 2098 20992008-03-03 Alan Modra <amodra@bigpond.net.au> 2100 2101 * elf32-spu.c (struct got_entry): Add "addend" field. 2102 (count_stub, build_stub): Use a new stub if relocation addend 2103 differs from existing stubs for this symbol. 2104 (process_stubs): Deal with addends. 2105 (spu_elf_relocate_section, spu_elf_output_symbol_hook): Likewise. 2106 21072008-03-02 H.J. Lu <hongjiu.lu@intel.com> 2108 2109 PR ld/5789 2110 * elflink.c (_bfd_elf_symbol_refs_local_p): Always return true 2111 for hidden and local symbols. 2112 21132008-03-03 Alan Modra <amodra@bigpond.net.au> 2114 2115 * elf32-ppc.c (allocate_dynrelocs): Discard relocs on 2116 undefined symbols with internal or hidden visibility. 2117 (ppc_elf_relocate_section): Likewise. Use SYMBOL_CALLS_LOCAL 2118 rather than SYMBOL_REFERENCES_LOCAL on branches. Don't 2119 return immediately on dynamic reloc error. 2120 21212008-03-01 Alan Modra <amodra@bigpond.net.au> 2122 2123 * elf64-ppc.c (build_plt_stub): Add relocs on plt call stubs 2124 if emitrelocations. 2125 (get_relocs): New function, split out from.. 2126 (ppc_build_one_stub): ..here. Add relocs on plt_branch stubs if 2127 emitrelocations. Remove indx temp. 2128 (ppc_size_one_stub): Count new stub relocs. 2129 (ppc64_elf_size_stubs): Count new glink reloc. 2130 (ppc64_elf_build_stubs): Emit glink reloc if emitrelocations. 2131 (ppc64_elf_finish_dynamic_sections): Output glink relocs. 2132 * elf32-ppc.c (ppc_elf_finish_dynamic_sections): Describe non-pic 2133 glink code. 2134 21352008-02-28 Alan Modra <amodra@bigpond.net.au> 2136 2137 * elf32-spu.c (mark_functions_via_relocs): Don't assume that 2138 the "->start" pointer reaches to function origin, so that we 2139 can handle functions split over more than two sections. 2140 (build_call_tree): Likewise. 2141 (pasted_function): Don't attempt to set fun->start back to the 2142 function origin, just go back one section. 2143 21442008-02-27 Catherine Moore <clm@codesourcery.com> 2145 2146 * elf.c ( _bfd_elf_print_private_bfd_data): Call 2147 elf_backend_get_target_dtag if defined. 2148 * elf32-mips.c (elf_backend_get_target_dtag): Define. 2149 * elf64-mips.c: Likewise. 2150 * elfn32-mips.c: Likewise. 2151 * elfxx-mips.c (_bfd_mips_elf_get_target_dtag): New. 2152 * elfxx-mips.h (_bfd_mips_elf_get_target_dtag): Declare. 2153 * elf-bfd.h (elf_backend_get_target_dtag): Add prototype. 2154 * elfxx-target.h (elf_backend_get_target_dtag): Add default. 2155 (elf_backend_data): Add elf_backend_get_target_dtag. 2156 21572008-02-26 Alan Modra <amodra@bigpond.net.au> 2158 2159 * elf32-ppc.c (ppc_elf_check_relocs): Set pointer_equality_needed 2160 for R_PPC_REL32 syms. Don't set non_got_ref on branch reloc syms, 2161 and assume branch relocs are not dynamic when non-shared. 2162 (readonly_dynrelocs): New function, split out from.. 2163 (maybe_set_textrel): ..here, renamed from old readonly_dynrelocs. 2164 (ppc_elf_adjust_dynamic_symbol): For symbols generating plt entries, 2165 clear non_got_ref.. 2166 (allocate_dynrelocs): ..and don't set u.def for undefined weak. 2167 Do allow dynamic relocs on undefined symbols. 2168 (ppc_elf_adjust_dynamic_symbol): Use readonly_dynrelocs. 2169 (ppc_elf_relocate_section): Mirror dynamic reloc changes in 2170 check_relocs. 2171 (ppc_elf_finish_dynamic_symbol): Don't give a warning on weak 2172 plt symbols needing pointer_equality_needed. 2173 21742008-02-23 Alan Modra <amodra@bigpond.net.au> 2175 2176 * elf32-ppc.c (ppc_elf_check_relocs): Revert non_got_ref change. 2177 21782008-02-23 Alan Modra <amodra@bigpond.net.au> 2179 2180 * elf32-ppc.c (ppc_elf_copy_indirect_symbol): Copy 2181 pointer_equality_needed. 2182 (ppc_elf_check_relocs): Split out non-branch relocs from others 2183 that might emit dynamic relocs. Set pointer_equality_needed 2184 for their symbols. Don't set non_got_ref on branch reloc symbols. 2185 (ppc_elf_hash_symbol): New function. 2186 (elf_backend_hash_symbol): Define. 2187 (ppc_elf_finish_dynamic_symbol): Handle pointer_equality_needed. 2188 Error if pointer_equality_needed on weak plt symbol. 2189 21902008-02-22 H.J. Lu <hongjiu.lu@intel.com> 2191 2192 PR ld/5788 2193 * elflink.c (elf_create_symbuf): Correct buffer size and 2194 position. 2195 21962008-02-22 Nick Clifton <nickc@redhat.com> 2197 2198 PR 868 2199 * dwarf2.c: Revert previous patch. All of the allocate memory is 2200 on an obstack which will be freed at some other time. 2201 22022008-02-20 Nick Clifton <nickc@redhat.com> 2203 2204 PR 868 2205 * libbfd.c (bfd_realloc_or_free): New function. Performs like 2206 bfd_realloc, but if the (re)allocation fails, the pointer is 2207 freed. 2208 * libbfd-in.h: Prototype. 2209 * libbfd.h: Regenerate. 2210 * bfdio.c (bfd_bwrite): Use the new function. 2211 (bfd_seek): Likewise. 2212 * bfdwin.c:(bfd_get_file_window): Likewise. 2213 * elf-strtab.c (_bfd_elf_strtab_add): Likewise. 2214 * elf32-ppc.c (ppc_elf_relax_section): Likewise. 2215 * elf32-xtensa.c (vsprintf_msg): Likewise. 2216 * mach-o.c (bfd_mach_o_core_fetch_environment): Likewise. 2217 * stabs.c (_bfd_link_seciton_stabs): Likewise. 2218 * vms-misc.c (_bfd_vms_get_record): Likewise. 2219 * vms-tir.c (check_section): Likewise. 2220 * vms.c (vms_new_section_hook): Likewise. 2221 * elf32-arm.c (elf32_arm_section_map_add): Check that the 2222 allocation of sec_data->map succeeded before using it. 2223 * elflink.c (elf_link_output_sym): Do not overwrite finfo-> 2224 symshndxbuf until it is known that the reallocation succeeded. 2225 22262008-02-20 Diogo de Carvalho Kraemer <diogo@kraemer.eng.br> 2227 Nick Clifton <nickc@redhat.com> 2228 2229 PR 868 2230 * dwarf2.c (read_abbrevs): Free the abbreviation table if we run 2231 out of memory. 2232 (decode_line_info): Free the line_info_table before returning a 2233 failure result. 2234 (_bfd_dwarf2_cleanup_debug_info): Free the abbreviation table. 2235 Free the line table. Free the function table. Free the variable 2236 table. 2237 22382008-02-17 Mark Kettenis <kettenis@gnu.org> 2239 2240 * elf.c (swap_out_syms): Avoid preprocessing directive within 2241 macro arg. 2242 22432008-02-17 Jan Kratochvil <jan.kratochvil@redhat.com> 2244 2245 * elf.c (assign_file_positions_for_load_sections): Set the type of 2246 PT_NOTE sections to SHT_NOTE. 2247 22482008-02-17 Ulrich Weigand <uweigand@de.ibm.com> 2249 2250 * simple.c (bfd_simple_get_relocated_section_contents): Set 2251 link_info.output_bfd. 2252 22532008-02-16 Nathan Sidwell <nathan@codesourcery.com> 2254 2255 * dwarf2.c (find_line): Don't trust debug information after an 2256 unparseable compilation unit. 2257 22582008-02-15 Alan Modra <amodra@bigpond.net.au> 2259 2260 PR 5765 2261 * section.c (SEC_LINK_DUPLICATES): Correct. Renumber following flags. 2262 * bfd-in2.h: Regenerate. 2263 22642008-02-15 Alan Modra <amodra@bigpond.net.au> 2265 2266 * elf-bfd.h (enum elf_object_id): Add HPPA_ELF_TDATA. 2267 * elf.c (bfd_elf_allocate_object): Don't check for already allocated 2268 tdata. 2269 * elf32-hppa.c (elf32_hppa_mkobject): New function. 2270 (bfd_elf32_mkobject): Define. 2271 * elf32-ppc.c (is_ppc_elf_target): Delete. Replace all uses with.. 2272 (is_ppc_elf): ..this new macro. 2273 * elf64-ppc.c (is_ppc64_elf_target): Delete. Replace all uses with.. 2274 (is_ppc64_elf): ..this new macro. 2275 22762008-02-15 Alan Modra <amodra@bigpond.net.au> 2277 2278 * elflink.c: Replace all accesses to hash->creator field with 2279 output_bfd->xvec. 2280 * cofflink.c: Likewise. 2281 * coff-h8300.c: Likewise. 2282 * ecoff.c: Likewise. 2283 * elf32-m68hc1x.c: Likewise. 2284 * elf32-ppc.c: Likewise. 2285 * elf64-alpha.c: Likewise. 2286 * elf64-ppc.c: Likewise. 2287 * elf64-sparc.c: Likewise. 2288 * elfxx-mips.c: Likewise. 2289 * i386linux.c: Likewise. 2290 * m68klinux.c: Likewise. 2291 * sparclinux.c: Likewise. 2292 * sunos.c: Likewise. 2293 * xcofflink.c: Likewise. 2294 * linker.c: Likewise. 2295 (_bfd_link_hash_table_init): Don't store creator. 2296 22972008-02-14 Peter Jones <pjones@redhat.com> 2298 2299 * efi-rtdrv-ia32.c: New file. 2300 * efi-bsdrv-ia32.c: New file. 2301 * efi-rtdrv-ia64.c: New file. 2302 * efi-bsdrv-ia64.c: New file. 2303 * efi-rtdrv-x86_64.c: New file. 2304 * efi-bsdrv-x86_64.c: New file. 2305 * peicode.h (pe_bfd_object_p): Add support for boot service and 2306 runtime service drivers. 2307 * libpei.h: Add macros for EFI formats, and rename the efi application 2308 format macros to disambiguate. 2309 * targets.c: Add bfd_target _vec externs. 2310 (_bfd_tar): Add EFI _vec entries. 2311 * config.bfd: Add EFI vectors into the selection routines. 2312 * configure.in: add EFI _vec entries. 2313 * configure: Regenerate. 2314 * Makefile.am: Add EFI files. 2315 * Makefile.in: Regenerate. 2316 23172008-02-14 Nathan Sidwell <nathan@codesourcery.com> 2318 2319 * dwarf1.c (struct dwarf1_debug): Add syms member. 2320 (alloc_dwarf1_unit, alloc_dwarf1_func): Check for out of memory. 2321 (parse_line_table, _bfd_dwarf1_find_nearest_line): Relocate 2322 section contents, check for out of memory. 2323 2324 * dwarf1.c (struct dwarf1_debug): Change data pointers to bfd_byte. 2325 (parse_die): Change data pointers to bfd_byte. 2326 (parse_line_table, parse_functions_in_unit): Likewise. 2327 23282008-02-14 Alan Modra <amodra@bigpond.net.au> 2329 2330 * elflink.c (compute_bucket_count): Warning fixes. 2331 23322008-02-12 DJ Delorie <dj@redhat.com> 2333 2334 * elf32-iq2000.c (iq2000_elf_relocate_section): Adjust addend of 2335 relocation pointing to local symbol in merged section. 2336 2337 * elf32-iq2000.c (iq2000_elf_relocate_offset16): New. 2338 (iq2000_elf_relocate_section): Call it. 2339 23402008-02-12 Nick Clifton <nickc@redhat.com> 2341 2342 PR ld/5692 2343 * elf-bfd.h (enum elf_object_id): New enum, used to identify 2344 target specific extensions to the elf_obj_tdata structure. 2345 (struct elf_obj_tdata): New field 'object_id'. 2346 (elf_object_id, elf_program_header_size, elf_symtab_hdr): New 2347 macros for accessing fields in the elf_obj_tdata structure. 2348 (bfd_elf_mkobject): Rename to bfd_elf_make_generic_object. 2349 (bfd_elf_allocate_object): New function. 2350 * elf.c (bfd_elf_mkobject): Rename to bfd_elf_make_generic_object 2351 and implement by calling bfd_elf_allocate_object. 2352 (bfd_elf_allocate_object): New function: Allocates an 2353 elf_obj_tdata structure, possibly with a target specific 2354 extension. 2355 * elfxx-target.h (bfd_elfNN_mkobject): Use 2356 bfd_elf_make_generic_object as the default value. 2357 * elf32-arm.c (elf32_arm_obj_tdata): Rename to elf_arm_obj_tdata 2358 for consistency with other, similar structures. 2359 (is_arm_elf): New macro. Checks a BFD to make sure that is an ARM 2360 ELF bfd. 2361 (elf32_arm_mkobject): Call bfd_elf_allocate_object. 2362 (bfd_elf32_arm_vfp11_erratum_scan): Use is_arm_elf macro to check 2363 the bfd being processed. 2364 (bfd_elf32_arm_vfp11_fix_veneer_locations): Likewise. 2365 (bfd_elf32_arm_set_target_relocs): Likewise. 2366 (bfd_elf32_arm_final_link_relocate): Likewise. 2367 (bfd_elf32_arm_copy_private_bfd_data): Likewise. 2368 (bfd_elf32_arm_merge_eabi_attributes): Likewise. 2369 (bfd_elf32_arm_merge_private_bfd_data): Likewise. 2370 (bfd_elf32_arm_check_relocs): Likewise. 2371 (bfd_elf32_arm_gc_mark_extra_sections): Likewise. 2372 (bfd_elf32_arm_size_dynamic_sections): Likewise. 2373 (bfd_elf32_arm_process_before_allocation): Use elf_symtab_hdr. 2374 (bfd_elf32_arm_init_maps): Likewise. 2375 (bfd_elf32_arm_final_link_relocate): Likewise. 2376 (bfd_elf32_arm_relocate_section): Likewise. 2377 (bfd_elf32_arm_gc_sweep_hook): Likewise. 2378 (bfd_elf32_arm_check_relocs): Likewise. 2379 (bfd_elf32_arm_size_dynamic_sections): Likewise. 2380 * elf32-i386.c (elf_i386_mkobject): Call bfd_elf_allocate_object. 2381 (is_i386_elf): New macro. Checks a BFD to make sure that is an x86 2382 ELF bfd. 2383 (elf_i386_check_relocs): Use is_i386_elf macro to check the bfd 2384 being processed. 2385 (elf_i386_size_dynamic_sections): Likewise. 2386 (elf_i386_relocate_section): Likewise. 2387 (elf_i386_check_relocs): Use elf_symtab_hdr. 2388 (elf_i386_gc_sweep_hook): Likewise. 2389 (elf_i386_size_dynamic_sections): Likewise. 2390 (elf_i386_relocate_section): Likewise. 2391 * elf32-ppc.c (ppc_elf_mkobject): Call bfd_elf_allocate_object. 2392 (elf_create_pointer_linker_section): Use is_ppc_elf_target to 2393 verify that the bfd before accessing target specific fields. 2394 (ppc_elf_check_relocs): Likewise. 2395 (elf_finish_pointer_linker_section): Likewise. 2396 (elf_create_pointer_linker_section): Use elf_symtab_hdr. 2397 (ppc_elf_check_relocs): Likewise. 2398 (ppc_elf_gc_sweep_hook): Likewise. 2399 (ppc_elf_tls_optimize): Likewise. 2400 (ppc_elf_size_dynamic_sections): Likewise. 2401 (ppc_elf_relax_section): Likewise. 2402 (ppc_elf_relocate_section): Likewise. 2403 * elf32-s390.c (struct elf_s390_obj_tdata): Add a comment 2404 reminding programmers to keep this structure in sync with the one 2405 defined in elf64-s390.c. 2406 (elf_s390_mkobject): Call bfd_elf_allocate_object. 2407 (is_s390_elf): New macro. Checks a BFD to make sure that is an s390 2408 ELF bfd. 2409 (elf_s390_check_relocs): Use is_s390_elf macro to check the bfd 2410 being processed. 2411 (elf_s390_size_dynamic_sections): Likewise. 2412 (elf_s390_relocate_section): Likewise. 2413 (elf_s390_check_relocs): Use elf_symtab_hdr. 2414 (elf_s390_gc_sweep_hook): Likewise. 2415 (elf_s390_size_dynamic_sections): Likewise. 2416 (elf_s390_relocate_section): Likewise. 2417 * elf32-sh.c (sh_elf_mkobject): Call bfd_elf_allocate_object. 2418 (is_sh_elf): New macro. Checks a BFD to make sure that is an SH 2419 ELF bfd. 2420 (sh_elf_size_dynamic_sections): Use is_sh_elf macro to check the 2421 bfd being processed. 2422 (sh_elf_relocate_section): Likewise. 2423 (sh_elf_check_relocs): Likewise. 2424 (sh_elf_copy_private_data): Likewise. 2425 (sh_elf_relax_section): Use elf_symtab_hdr. 2426 (sh_elf_size_dynamic_sections): Likewise. 2427 (sh_elf_relocate_section): Likewise. 2428 (sh_elf_get_relocated_section_contents): Likewise. 2429 (sh_elf_gc_sweep_hook): Likewise. 2430 (sh_elf_check_relocs): Likewise. 2431 * elf64-alpha.c (elf64_alpha_mkobject): Call bfd_elf_allocate_object. 2432 (is_alpha_elf): New macro. Checks a BFD to make sure that is an 2433 Alpha ELF bfd. 2434 (elf64_alpha_create_got_section): Use is_alpha_elf macro to check 2435 the bfd being processed. 2436 (elf64_alpha_create_dynamic_section): Likewise. 2437 (elf64_alpha_check_relocs): Likewise. 2438 (elf64_alpha_size_got_sections): Likewise. 2439 (elf64_alpha_relax_section): Likewise. 2440 (elf64_alpha_relocate_section): Likewise. 2441 (elf64_alpha_final_link): Likewise. 2442 (elf64_alpha_check_relocs): Use elf_symtab_hdr. 2443 (elf64_alpha_relax_section): Likewise. 2444 (elf64_alpha_relocate_section_r): Likewise. 2445 (elf64_alpha_relocate_section): Likewise. 2446 * elf64-ppc.c (ppc64_elf_mkobject): Call bfd_elf_allocate_object. 2447 (ppc64_elf_check_relocs): Use is_ppc64_elf_target to check the bfd 2448 being processed. 2449 (opd_entry_value): Likewise. 2450 (allocate_dynrelocs): Likewise. 2451 (ppc64_elf_relocate_section): Likewise. 2452 (ppc64_elf_check_relocs): Use elf_symtab_hdr. 2453 (opd_entry_value): Likewise. 2454 (ppc64_elf_gc_sweep_hook): Likewise. 2455 (get_sym_h): Likewise. 2456 (ppc64_elf_edit_opd): Likewise. 2457 (ppc64_elf_tls_optimize): Likewise. 2458 (ppc64_elf_edit_toc): Likewise. 2459 (ppc64_elf_size_dynamic_sections): Likewise. 2460 (toc_adjusting_stub_needed): Likewise. 2461 (ppc64_elf_size_stubs): Likewise. 2462 (ppc64_elf_relocate_section): Likewise. 2463 * elf64-s390.c (struct elf_s390_obj_tdata): Add a comment 2464 reminding programmers to keep this structure in sync with the one 2465 defined in elf32-s390.c. 2466 (elf_s390_mkobject): Call bfd_elf_allocate_object. 2467 (is_s390_elf): New macro. Checks a BFD to make sure that is an s390 2468 ELF bfd. 2469 (elf_s390_check_relocs): Use is_s390_elf macro to check the bfd 2470 being processed. 2471 (elf_s390_size_dynamic_sections): Likewise. 2472 (elf_s390_relocate_section): Likewise. 2473 (elf_s390_check_relocs): Use elf_symtab_hdr. 2474 (elf_s390_gc_sweep_hook): Likewise. 2475 (elf_s390_size_dynamic_sections): Likewise. 2476 (elf_s390_relocate_section): Likewise. 2477 * elf64-x86_64.c (elf64_x86_64_mkobject): Call bfd_elf_allocate_object. 2478 (is_x86_64_elf): New macro. Checks a BFD to make sure that is an 2479 x86_64 ELF bfd. 2480 (elf64_x86_64_check_relocs): Use is_x86_64_elf macro to check the bfd 2481 being processed. 2482 (elf64_x86_64_size_dynamic_sections): Likewise. 2483 (elf64_x86_64_relocate_section): Likewise. 2484 (elf64_x86_64_check_relocs): Use elf_symtab_hdr. 2485 (elf64_x86_64_gc_sweep_hook): Likewise. 2486 (elf64_x86_64_size_dynamic_sections): Likewise. 2487 (elf64_x86_64_relocate_section): Likewise. 2488 * elfxx-sparc.c (_bfd_sparc_elf_mkobject): Call bfd_elf_allocate_object. 2489 (is_sparc_elf): New macro. Checks a BFD to make sure that is a Sparc 2490 ELF bfd. 2491 (_bfd_sparc_elf_check_relocs): Use is_sparc_elf macro to check the 2492 bfd being processed. 2493 (_bfd_sparc_elf_gc_sweep_hook): Likewise. 2494 (_bfd_sparc_elf_size_dynamic_sections): Likewise. 2495 (_bfd_sparc_elf_check_relocs): Use elf_symtab_hdr. 2496 (_bfd_sparc_elf_gc_sweep_hook): Likewise. 2497 (_bfd_sparc_elf_size_dynamic_sections): Likewise. 2498 (_bfd_sparc_elf_relocate_section): Likewise. 2499 25002008-02-12 Alan Modra <amodra@bigpond.net.au> 2501 2502 PR 5303, 5755 2503 * arange-set.c: Delete. 2504 * arange-set.h: Delete. 2505 * dwarf2.c: Revert 2007-09-21 changes. 2506 * Makefile.am: Likewise. 2507 * Makefile.in: Regenerate. 2508 * po/SRC-POTFILES.in: Regenerate. 2509 25102008-02-11 Bernd Schmidt <bernd.schmidt@analog.com> 2511 2512 * elf32-bfin.c (bfin_relocate_section): Set up dynobj before using it 2513 if necessary. 2514 (elf32_bfin_merge_private_bfd_data): Simplify, and ensure object type 2515 mismatches are detected. 2516 2517 * elf32-bfin.c (bfinfdpic_relocate_section): Take more care not to 2518 emit invalid relocs or rofixup entries for deleted .eh_frame entries. 2519 25202008-02-11 Daniel Jacobowitz <dan@codesourcery.com> 2521 2522 * cache.c (cache_bread): Set bfd_error_file_truncated if EOF 2523 was reached. 2524 * srec.c (srec_scan): Calculate the checksum. Complain on mismatch. 2525 25262008-02-07 Alan Modra <amodra@bigpond.net.au> 2527 2528 * elf32-spu.c (spu_elf_size_stubs): Revert 2008-01-28 doubling 2529 of _ovly_buf_table size. 2530 (spu_elf_build_stubs): Use low bit of .size as "present" bit. 2531 Adjust initialisations relating to _ovly_buf_table. 2532 25332008-02-04 Bob Wilson <bob.wilson@acm.org> 2534 2535 * elf32-xtensa (elf_xtensa_relocate_section): After finding an invalid 2536 relocation, do not continue processing it. Ignore R_XTENSA_ASM_EXPAND 2537 relocations against dynamic symbols. 2538 (elf_xtensa_finish_dynamic_sections): Do not fail if there is no 2539 .xt.lit section. 2540 25412008-02-04 Kai Tietz <kai.tietz@onevision.com> 2542 H.J. Lu <hongjiu.lu@intel.com> 2543 2544 PR 5715 2545 * warning.m4: Enable -Wno-format by default when using gcc on 2546 mingw. 2547 * configure: Regenerated. 2548 25492008-02-04 Adam Nemet <anemet@caviumnetworks.com> 2550 2551 * archures.c: Update copyright. 2552 (bfd_mach_mips_octeon): New macro. 2553 * bfd-in2.h: Regenerate. 2554 * elfxx-mips.c (_bfd_elf_mips_mach): Handle Octeon. 2555 (mips_set_isa_flags): Likewise. 2556 (mips_mach_extensions): Add Octeon. 2557 * cpu-mips.c: Update copyright. 2558 (I_mipsocteon): New enum constant. 2559 (arch_info_struct): Add Octeon. 2560 25612008-02-04 Alan Modra <amodra@bigpond.net.au> 2562 2563 * elf32-spu.c (spu_elf_relocate_section): Correct return type. 2564 Return error status on unexpected relocation errors. 2565 25662008-02-04 Alan Modra <amodra@bigpond.net.au> 2567 2568 PR ld/5692 2569 * elf.c (bfd_elf_get_elf_syms): Revert 2008-01-31. Instead abort 2570 on non-ELF input. 2571 * elf32-arm.c (elf32_arm_size_dynamic_sections): Skip glue 2572 processing on non-ELF input. 2573 25742008-01-31 Marc Gauthier <marc@tensilica.com> 2575 2576 * config.bfd (xtensa*-*-*): Recognize processor variants. 2577 25782008-01-31 Nick Clifton <nickc@redhat.com> 2579 2580 PR ld/5692 2581 * elf.c (bfd_elf_get_elf_syms): Check the return value of 2582 get_elf_backend_data. 2583 25842008-01-28 Fabian Groffen <grobian@gentoo.org> 2585 2586 * config.bfd (x86_64-*-solaris2): Add support for this target. 2587 25882008-01-28 Alan Modra <amodra@bigpond.net.au> 2589 2590 Rewrite SPU overlay handling code. Put overlay calls stubs in the 2591 overlays where possible. Use a faster call stub, or optionally at 2592 compile time, a more compact stub. Double size of _ovly_buf_table 2593 so that low bit of _ovly_table.buf can be used as a "present" bit. 2594 Reserve an extra _ovly_table entry for index zero. 2595 * elf32-spu.c: (struct spu_link_hash_table): Delete a number of fields, 2596 add new ones. 2597 (struct got_entry): New. 2598 (struct spu_stub_hash_entry): Delete. 2599 (stub_hash_newfunc, spu_elf_link_hash_table_free): Delete. 2600 (spu_elf_link_hash_table_create): Adjust for struct changes. 2601 (spu_stub_name): Delete. 2602 (spu_elf_find_overlays): Don't track sections from overlay regions. 2603 Instead set ovl_buf number in spu elf section data. Error if 2604 overlays in one region don't start at the same address. Adjust 2605 for struct _spu_elf_section_data changes. 2606 (SIZEOF_STUB1, SIZEOF_STUB2, ILA_79, ILA_78): Delete. 2607 (OVL_STUB_SIZE, BRSL, LNOP, ILA): Define. 2608 (needs_ovl_stub): Adjust for struct _spu_elf_section_data changes. 2609 (enum _insn_type): New. 2610 (count_stub, build_stub): New functions. 2611 (allocate_spuear_stubs): Use count_stub. 2612 (build_spuear_stubs): Use build_stub. 2613 (populate_stubs, sort_stubs): Delete. 2614 (process_stubs): New function. 2615 (write_one_stub): Delete. 2616 (spu_elf_size_stubs, spu_elf_build_stubs): Rewrite. 2617 (alloc_stack_info): Adjust for struct _spu_elf_section_data changes. 2618 (maybe_insert_function, check_function_ranges): Likewise. 2619 (find_function, pasted_function, build_call_tree): Likewise. 2620 (spu_elf_stack_analysis, spu_elf_modify_segment_map): Likewise. 2621 (spu_elf_modify_program_headers): Likewise. 2622 (interesting_section): Detect stub sections differently. Delete 2623 htab param, adjust all callers. 2624 (spu_elf_relocate_section): Rewrite stub handling. 2625 (spu_elf_output_symbol_hook): Likewise. 2626 (bfd_elf32_bfd_link_hash_table_free): Delete. 2627 * elf32-spu.h (struct _spu_elf_section_data): Move input-only and 2628 output-only fields into a union. Add ovl_buf. 2629 (spu_elf_size_stubs, spu_elf_build_stubs): Update prototypes. 2630 26312008-01-25 DJ Delorie <dj@redhat.com> 2632 2633 * elf32-m32c.c (_bfd_m32c_elf_eh_frame_address_size): New. 2634 26352008-01-25 Kai Tietz <kai.tietz@onevision.com> 2636 2637 * bfd-in.h: Add mingw I64 support. 2638 * bfd-in2.h: Regenerated. 2639 * bfd.c: (bfd_get_sign_extend_vma): Add pe-x86-64 and pei-x86-64. 2640 26412008-01-21 Alan Modra <amodra@bigpond.net.au> 2642 2643 PR 4453 2644 * format.c (bfd_check_format_matches): Don't accept archives as 2645 fully matching unless they have a map. 2646 26472008-01-21 Alan Modra <amodra@bigpond.net.au> 2648 2649 * elflink.c (_bfd_elf_link_output_relocs): Correct error return. 2650 26512008-01-21 Alan Modra <amodra@bigpond.net.au> 2652 2653 * ecoff.c (_bfd_ecoff_archive_p): Delete. 2654 * libecoff.h (_bfd_ecoff_archive_p): Delete. 2655 * coff-alpha.c (ecoffalpha_little_vec): Use bfd_generic_archive_p. 2656 * coff-mips.c (ecoff_little_vec, ecoff_big_vec): Likewise. 2657 (ecoff_biglittle_vec): Likewise. 2658 26592008-01-19 Alan Modra <amodra@bigpond.net.au> 2660 2661 PR 5646 2662 * elf64-ppc.c (ppc64_elf_tls_optimize): Ensure htab->tls_get_addr 2663 non-NULL before dereferencing. 2664 26652008-01-15 Alan Modra <amodra@bigpond.net.au> 2666 2667 PR 5604 2668 * elf-bfd.h (struct elf_backend_data): Add gc_keep. Remove param 2669 names from others. 2670 (_bfd_elf_gc_keep): Declare. 2671 * elfxx-target.h (elf_backend_gc_keep): Define. 2672 (elfNN_bed): Init new field. 2673 * elflink.c (_bfd_elf_gc_keep): New function. 2674 (bfd_elf_gc_sections): Call gc_keep. 2675 * elf64-ppc.c (elf_backend_gc_keep): Define. 2676 (struct _ppc64_elf_section_data): Move .opd related fields to 2677 a struct so they don't occupy the same storage. Adjust accesses 2678 throughout file. 2679 (ppc64_elf_gc_keep): New function, split out from.. 2680 (ppc64_elf_gc_mark_hook): ..here. Don't call _bfd_elf_gc_mark 2681 to mark .opd section, just set gc_mark. 2682 (ppc64_elf_edit_opd): Remove no_opd_opt parm. Don't set opd->adjust 2683 unless we are changing .opd. Test non-NULL opd->adjust at all 2684 accesses throughout file. 2685 * elf64-ppc.h (ppc64_elf_edit_opd): Update prototype. 2686 26872008-01-15 Alan Modra <amodra@bigpond.net.au> 2688 2689 * bfd-in.h (BFD_HOST_LONG_LONG): Delete. 2690 * bfd-in2.h: Regenerate. 2691 26922008-01-11 Tristan Gingold <gingold@adacore.com> 2693 Eric Botcazou <ebotcazou@adacore.com> 2694 2695 * elf32-ppc.c (ppc_elf_gc_sweep_hook): Exit early if generating a 2696 relocatable. 2697 * elf32-arm.c (elf32_arm_gc_sweep_hook): Likewise. 2698 * elf32-cris.c (cris_elf_gc_sweep_hook): Likewise. 2699 * elf32-hppa.c (elf32_hppa_gc_sweep_hook): Likewise. 2700 * elf32-i386.c (elf_i386_gc_sweep_hook): Likewise. 2701 * elf32-m32r.c (m32r_elf_gc_sweep_hook): Likewise. 2702 * elf32-m68k.c (elf_m68k_gc_sweep_hook): Likewise. 2703 * elf32-s390.c (elf_s390_gc_sweep_hook): Likewise. 2704 * elf32-sh.c (sh_elf_gc_sweep_hook): Likewise. 2705 * elf32-vax.c (elf_vax_gc_sweep_hook): Likewise. 2706 * elf32-xtensa.c (elf_xtensa_gc_sweep_hook): Likewise. 2707 * elf64-x86-64.c (elf64_x86_64_gc_sweep_hook): Likewise. 2708 * elf64-s390.c (elf_s390_gc_sweep_hook): Likewise. 2709 * elf64-ppc.c (ppc64_elf_gc_sweep_hook): Likewise. 2710 * elfxx-mips.c (_bfd_mips_elf_gc_sweep_hook): Likewise. 2711 * elfxx-sparc.c (_bfd_sparc_elf_gc_sweep_hook): Likewise. 2712 * elflink.c (bfd_elf_gc_sections): Do not punt on relocatable output 2713 or executable output with relocations. 2714 27152008-01-09 Nick Clifton <nickc@redhat.com> 2716 2717 PR gas/5552 2718 * elf32-fr30.c (fr30_elf_howto_table): Set partial_inplace field 2719 to FALSE for all relocs. 2720 27212008-01-09 Richard Sandiford <rsandifo@nildram.co.uk> 2722 2723 PR ld/5526 2724 * elf-bfd.h (eh_cie_fde): Add u.cie.u.full_cie and u.cie.merged 2725 fields. Rename u.cie.u.merged to u.cie.u.merged_with. 2726 (eh_frame_sec_info): Add a cies field. 2727 (eh_frame_hdr_info): Add a merge_cies field. 2728 * elf-eh-frame.c (cie): Add a reloc_index member to the personality 2729 union. 2730 (_bfd_elf_begin_eh_frame_parsing): Set hdr_info->merge_cies instead 2731 of hdr_info->cies. 2732 (_bfd_elf_parse_eh_frame): Remove tmp_cie. Ccreate an array of 2733 cie structures in all cases and use it instead of extended_cies. 2734 If merging, store the cie array in sec_info->cies and point each 2735 CIE's eh_fde_cie at the associated element. Do not try to 2736 calculate the value of the personality routine here; record the 2737 offset of the relocation instead. Do not merge CIEs here. 2738 (_bfd_elf_end_eh_frame_parsing): Do not free hdr_info->cies here... 2739 (_bfd_elf_discard_section_eh_frame_hdr): ...do it here instead. 2740 (_bfd_elf_gc_mark_fdes): Mark the original (unmerged) CIE. 2741 (find_merged_cie): New function. 2742 (_bfd_elf_gc_mark_fdes): Use it. Free sec_info->cies. 2743 27442008-01-07 Nick Clifton <nickc@redhat.com> 2745 2746 PR binutils/5535 2747 * vms.c (vms_close_and_cleanup): Check for the presence of a 2748 vms_private_data_struct before examining any of its fields. 2749 27502008-01-07 H.J. Lu <hongjiu.lu@intel.com> 2751 2752 PR ld/5522 2753 * elflink.c (elf_link_input_bfd): Don't write out a section if 2754 its output section is marked with SEC_NEVER_LOAD. 2755 2756For older changes see ChangeLog-2007 2757 2758Local Variables: 2759mode: change-log 2760left-margin: 8 2761fill-column: 74 2762version-control: never 2763End: 2764