Commit Graph

7367 Commits

Author SHA1 Message Date
Hans-Peter Nilsson 02865b8e18 (cris_elf_relocate_section) <R_CRIS_8, R_CRIS_16, R_CRIS_32>: Add missing
gate h != NULL for h->def_regular test.
2008-12-17 02:31:16 +00:00
Hans-Peter Nilsson 867ea5fd9a * elf32-cris.c (elf_cris_copy_indirect_symbol): Return without
action for symbols other than bfd_link_hash_indirect.
2008-12-17 02:14:30 +00:00
Alan Modra 3b056006d7 daily update 2008-12-17 00:00:05 +00:00
Alan Modra 65e6b0aed2 daily update 2008-12-16 00:00:05 +00:00
Hans-Peter Nilsson 237bc7f046 * elf32-cris.c (elf_cris_copy_indirect_symbol): New function.
(elf_backend_copy_indirect_symbol): Define to above.
2008-12-15 03:17:49 +00:00
Hans-Peter Nilsson 0d08de41ae * elf32-cris.c (struct elf_cris_pcrel_relocs_copied): New member
r_type.  Fix formatting.
	(cris_elf_relocate_section) <R_CRIS_8_PCREL, R_CRIS_16_PCREL>
	<R_CRIS_32_PCREL>: Also break early if the symbol doesn't get
	emitted as a dynamic one.
	(cris_elf_check_relocs) <R_CRIS_7, R_CRIS_16, R_CRIS_32>: Fork
	from PCREL relocs code and simplify; don't fall through.
	<R_CRIS_8_PCREL, R_CRIS_16_PCREL, R_CRIS_32_PCREL>: Simplify for
	pcrel only.  For non-local or overridable symbols in a DSO, always
	keep count of relocs, not just when -Bsymbolic.  Don't emit
	message nor mark as TEXTREL here.
	(elf_cris_discard_excess_dso_dynamics): Emit warning and mark as
	TEXTREL here, if there are nondiscarded pcrel relocs.
2008-12-15 02:32:22 +00:00
Hans-Peter Nilsson b2e254f970 * elf32-cris.c (elf_cris_got_elt_size) <symtab_hdr>: Initialize
using ibfd, not abfd.
2008-12-15 02:10:27 +00:00
Alan Modra 0b91227553 daily update 2008-12-15 00:00:45 +00:00
Alan Modra fc0f082be2 daily update 2008-12-14 00:00:05 +00:00
Alan Modra 0d5d314184 daily update 2008-12-13 00:00:09 +00:00
Alan Modra 18a5eacdaa daily update 2008-12-12 00:00:05 +00:00
Alan Modra df13162329 PR 7041
* elf64-ppc.c (func_desc_adjust): Correct logic making fake function
	descriptors.  Similarly correct making function descriptors dynamic.
2008-12-11 10:14:40 +00:00
Alan Modra df16e34500 daily update 2008-12-11 00:00:09 +00:00
Alan Modra a3a219a90a bfd/
* elf32-spu.h (struct spu_elf_params): Add num_regions.
	* elf32-spu.c (spu_elf_auto_overlay): Handle multiple overlay regions.
ld/
	* emultempl/spuelf.em (params): Init new field.
	(OPTION_SPU_NUM_REGIONS): Define.
	(PARSE_AND_LIST_LONGOPTS, PARSE_AND_LIST_OPTIONS): Add --num-regions.
	(PARSE_AND_LIST_ARGS_CASES): Handle --num-regions.
2008-12-10 13:36:41 +00:00
Alan Modra 64615358cc bfd/
* elf32-spu.g (struct spu_elf_params, enum _ovly_flavour): New.
	(spu_elf_setup): Declare.
	(spu_elf_create_sections, spu_elf_size_stubs): Update prototype.
	(spu_elf_build_stubs, spu_elf_check_vma): Likewise.
	* elf32-spu.c (struct spu_link_hash_table): Add "params". Remove
	various other fields now in "params".  Adjust code throughout.
	(struct call_info, struct function_info): Move earlier in file.
	(struct spu_elf_stack_info): Likewise.
	(spu_elf_setup): New function.
	(spu_elf_create_sections): Remove args other than "info".
	(spu_elf_size_stubs, spu_elf_build_stubs, spu_elf_check_vma): Likewise.
	(maybe_needs_stubs): Remove "output_bfd" arg.  Adjust all calls.
	(interesting_section): Similarly with "obfd" arg.
	(needs_ovl_stub): Adjust output_section test.
	(allocate_spuear_stubs): Likewise.
	(OVL_STUB_SIZE): Don't define.
	(ovl_stub_size): New function, use in place of OVL_STUB_SIZE.
	(build_stub): Test params->ovly_flavour rather than OVL_STUB_SIZE.
	(spu_elf_auto_overlay): Remove args other than "info".  Make use
	of size returned from spu_elf_load_ovl_mgr.
	(spu_elf_stack_analysis): Remove args other than "info".
	(spu_elf_relocate_section): Tidy setting of "ea".
ld/
	* emultempl/spuelf.em (params): New var, used instead of various others.
	Adjust use throughout file.
	(spu_after_open): Call spu_elf_setup.
	(spu_place_special_section): Tidy.
	(spu_elf_load_ovl_mgr): Return total size of sections loaded.  Move
	code setting overlay section alignment to..
	(spu_before_allocation): ..here.
2008-12-10 06:32:52 +00:00
Alan Modra b0c4170911 * elf32-spu.c (define_ovtab_symbol): Don't abort on symbols
defined in linker scripts.
	(discover_functions): Consider STT_SECTION symbols too.
	(collect_lib_sections): Don't cut short call tree traversal
	when function size is too large.
2008-12-10 03:49:02 +00:00
Alan Modra 667f3338da * elf32-spu.c (find_function_stack_adjust): Don't limit number
of insns scanned.  Correct sp tests.  Handle "fsmbi" and "andbi".
	(mark_detached_root): New function.
	(build_call_tree): Call it.
	(sort_calls): Don't do void* arithmetic.
2008-12-10 00:37:11 +00:00
Alan Modra cf6f1911b6 daily update 2008-12-10 00:00:04 +00:00
Tom Tromey f904699ae8 bfd
* pef.c (bfd_pef_parse_traceback_table): Add parens to placate gcc
	4.4.
binutils
	* srconv.c (wr_hd): Add parens to placate gcc 4.4.
2008-12-09 18:59:54 +00:00
Tristan Gingold 3e22044af1 2008-12-09 Tristan Gingold <gingold@adacore.com>
* cpu-avr.c (compatible): Makes avr-6 compatible only with itself.
2008-12-09 09:51:08 +00:00
Alan Modra d0e535babf daily update 2008-12-09 00:00:09 +00:00
Alan Modra 002aea9e25 daily update 2008-12-08 00:00:05 +00:00
Alan Modra bf003c2ee5 daily update 2008-12-07 00:00:05 +00:00
Alan Modra 18a404ee37 daily update 2008-12-06 00:00:06 +00:00
Alan Modra 1403b9e2c0 daily update 2008-12-05 00:00:08 +00:00
Andreas Krebbel 440e9cd2ea 2008-12-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
* elf64-s390.c (elf_s390_check_relocs): Initialize
	htab->elf.dynobj if necessary.
2008-12-04 08:43:26 +00:00
Alan Modra 77a4f04d80 daily update 2008-12-04 00:00:05 +00:00
Nick Clifton e7c3341679 include/elf/
* common.h (STT_IFUNC): Define.
elfcpp/
            * elfcpp.h (enum STT): Add STT_IFUNC.
bfd/
            * syms.c (struct bfd_symbol): Add new flag BSF_INDIRECT_FUNCTION.
            Remove redundant flag BFD_FORT_COMM_DEFAULT_VALUE.  Renumber flags
            to remove gaps.
            (bfd_print_symbol_vandf): Return 'i' for BSF_INDIRECT_FUNCTION.
            (bfd_decode_symclass): Likewise.
            * elf.c (swap_out_syms): Translate BSF_INDIRECT_FUNCTION into
            STT_IFUNC.
            (elf_find_function): Treat STT_IFUNC in the same way as STT_FUNC.
            (_bfd_elf_is_function_type): Likewise.
            * elf32-arm.c (arm_elf_find_function): Likewise.
            (elf32_arm_adjust_dynamic_symbol): Likewise.
            (elf32_arm_swap_symbol_in): Likewise.
            (elf32_arm_additional_program_headers): Likewise.
            * elf32-i386.c (is_indirect_symbol): New function.
            (elf_i386_check_relocs): Also generate dynamic relocs for
            relocations against STT_IFUNC symbols.
            (allocate_dynrelocs): Likewise.
            (elf_i386_relocate_section): Likewise.
            * elf64-x86-64.c (is_indirect_symbol): New function.
            (elf64_x86_64_check_relocs): Also generate dynamic relocs for
            relocations against STT_IFUNC symbols.
            (allocate_dynrelocs): Likewise.
            (elf64_x86_64_relocate_section): Likewise.
            * elfcode.h (elf_slurp_symbol_table): Translate STT_IFUNC into
            BSF_INDIRECT_FUNCTION.
            * elflink.c (_bfd_elf_adjust_dynamic_reloc_section): Add support
            for STT_IFUNC symbols.
            (get_ifunc_reloc_section_name): New function.
            (_bfd_elf_make_ifunc_reloc_section): New function.
            * elf-bfd.h (struct bfd_elf_section_data): Add indirect_relocs field.
            * bfd-in2.h: Regenerate.
gas/
            * config/obj-elf.c (obj_elf_type): Add support for STT_IFUNC type.
            * doc/as.texinfo: Document new feature.
            * NEWS: Mention new feature.
gas/testsuite/
            * gas/elf/type.s: Add test of STT_IFUNC symbol type.
            * gas/elf/type.e: Update expected disassembly.
            * gas/elf/elf.exp: Update grep of symbol types.
ld/
            * NEWS: Mention new feature.
            * pe-dll.c (process_def_file): Replace use of redundant
            BFD_FORT_COMM_DEFAULT_VALUE with 0.
            * scripttempl/elf.sc: Add .rel.ifunc.dyn and .rela.ifunc.dyn
            sections.
ld/testsuite/
            * ld-mips-elf/reloc-1-n32.d: Updated expected output for reloc
            descriptions.
            * ld-mips-elf/reloc-1-n64.d: Likewise.
            * ld-i386/ifunc.d: New test.
            * ld-i386/ifunc.s: Source file for the new test.
            * ld-i386/i386.exp: Run the new test.
2008-12-03 14:51:00 +00:00
Alan Modra 5d73705c26 daily update 2008-12-03 00:00:05 +00:00
Tristan Gingold f96fc22a9d 2008-12-02 Tristan Gingold <gingold@adacore.com>
* config.bfd: Add x86_64-*-darwin*
2008-12-02 09:18:45 +00:00
Alan Modra 2d6ce72092 daily update 2008-12-02 00:00:09 +00:00
Alan Modra c74ea3c845 daily update 2008-12-01 00:00:05 +00:00
Alan Modra 31535563bd daily update 2008-11-30 00:00:05 +00:00
Dave Anglin 72f10fadb6 * hpux-core.c: Don't include sys/file.h. 2008-11-29 00:26:39 +00:00
Alan Modra 66bef2c54c daily update 2008-11-29 00:00:06 +00:00
Thiemo Seufer 3aa3176b2d * aoutx.h (NAME): Add case statements for bfd_mach_mips14000,
bfd_mach_mips16000.
	* archures.c (bfd_architecture): Add .#defines for bfd_mach_mips14000,
	bfd_mach_mips16000.
	* bfd-in2.h: Regenerate.
	* cpu-mips.c: Add enums I_mips14000, I_mips16000.
	(arch_info_struct): Add refs to R14000, R16000.
	* elfxx-mips.c (mips_set_isa_flags): Handle bfd_mach_mips14000,
	bfd_mach_mips16000.
	(mips_mach_extensions): Map R14000, R16000 to R10000.

	* config/tc-mips.c (hilo_interlocks): Handle CPU_R14000, CPU_R16000.
	(mips_cpu_info_table): Add r14000, r16000.
	* doc/c-mips.texi: Add entries for 14000, 16000.

	* mips-dis.c (mips_arch_choices): Add r14000, r16000.

	* mips.h: Define CPU_R14000, CPU_R16000.
        (OPCODE_IS_MEMBER): Include R14000, R16000 in test.
2008-11-28 18:02:17 +00:00
Alan Modra 813f1f06e9 daily update 2008-11-28 00:00:05 +00:00
M R Swami Reddy 99706f3093 * Add PIC support for CR16 target.
* elf32-cr16.c (R_CR16_GOT_REGREL20, R_CR16_GOTC_REGREL20 and
        R_CR16_GLOB_DAT): New macros
        (cr16_elf_howto_table): Add entries for for R_CR16_GOT_REGREL20,
        R_CR16_GOTC_REGREL20 and R_CR16_GLOB_DAT.
        (cr16_reloc_map): Ditto
        (_bfd_cr16_elf_create_got_section): New function to create GOT section.
        (_bfd_cr16_elf_create_dynamic_sections): New function to create dynamic
        section.
        (_bfd_cr16_elf_adjust_dynamic_symbol): New function to adjust symbol
        defined by dynamic object.
        (_bfd_cr16_elf_size_dynamic_sections): New function to find the size
        of dynamic section.
        (_bfd_cr16_elf_finish_dynamic_symbol): New function to handle dynamic
        symbols.
        (_bfd_cr16_elf_finish_dynamic_symbol): New function to handle dynamic
        sections.
        (bfd_cr16_elf32_create_embedded_relocs): New function to create
        embedded relocs in .emreloc section in memory for .data.rel section.
        (_bfd_cr16_elf_reloc_type_class): New function for classify reloc types.
        (cr16_elf_check_relocs): New function for checking reloc types in
        first phase.
        (cr16_elf_final_link_relocate): Update for handling the new reloc
        types R_CR16_GOT_REGREL20 and R_CR16_GOTC_REGREL20.
        (elf32_cr16_relax_section): Update relax implementation.
        * reloc.c (bfd_reloc_code_type): Add entries for R_CR16_GOT_REGREL20,
        R_CR16_GOTC_REGREL20 and R_CR16_GLOB_DAT.
        * bfd-in.h (bfd_boolean bfd_cr16_elf32_create_embedded_relocs): Declared
        * libbfd.h, bfd-in2.h: Regenerate.
2008-11-27 12:26:49 +00:00
Alan Modra 6c7c4ca467 daily update 2008-11-27 00:00:04 +00:00
Alan Modra ae5a359786 include/
PR 7047
	* bfdlink.h (struct bfd_elf_version_expr): Delete "symbol".
	Add "literal".
bfd/
	PR 7047
	* configure.in: Bump version.
	* configure: Regenerate.
	* elflink.c (_bfd_elf_link_assign_sym_version): Continue matching
	against version nodes when a global match is a wildcard.  Similarly
	continue matching on local wildcard matches, rather than only
	continuing for "*".  Have any global wildcard match override a
	local wildcard match.  Correct logic hiding unversioned symbol.
	(bfd_elf_size_dynamic_sections): Update for changes to struct
	bfd_elf_version_expr.
ld/
	PR 7047
	* emultempl/ppc64elf.em (gld${EMULATION_NAME}_new_vers_pattern): Update
	for changes to struct bfd_elf_version_expr.
	* ldlang.c (lang_vers_match, version_expr_head_hash): Likewise.
	(version_expr_head_eq, lang_finalize_version_expr_head): Likewise.
	(lang_register_vers_node): Likewise.
	(lang_new_vers_pattern): Likewise.  Ensure "literal" is set when
	no glob chars found in "pattern".
	(realsymbol): Correct backslash quote logic.
	* ld.texinfo (VERSION): Warn about global wildcards.
2008-11-26 01:04:17 +00:00
Alan Modra 6cf7d91b7e daily update 2008-11-26 00:00:04 +00:00
Joel Brobecker 85f77068e7 * configure.in: Deactivate large-file support on native x86-solaris
as well unless the user explicitly requested it.
        * configure: Regenerate.
2008-11-25 19:07:10 +00:00
Joseph Myers 1954000798 bfd:
* elf32-arm.c (elf32_arm_final_link_relocate): Do not turn
	branches to undefine weak symbols into branches to the next
	instruction if creating PLT entries for those symbols.

ld/testsuite:
	* ld-arm/thumb2-bl-undefweak.d, ld-arm/thumb2-bl-undefweak.s: New.
	* ld-arm/arm-elf.exp: Run thumb2-bl-undefweak test.
2008-11-25 15:53:27 +00:00
Nick Clifton 83bac4b010 * elflink.c (is_reloc_section): New function. Returns true if the
given name matches the name of the reloc-containing section
        associated with the given section.
        (get_dynamic_reloc_section_name): New function.  Computes the name
        of the section that contains the dynamic relocs associated with
        the given section.
        (_bfd_elf_get_dynamic_reloc_section): New function.  Returns a
        pointer to the section containing the dynamic relocs associated
        with the given section.
        (_bfd_elf_make_dynamic_reloc_section): New function.  Creates a
        section to contain the dynamic relocs associated with a given
        section.
        * elf-bfd.h: Prototype the new functions.
        * elf-m10300.c (mn10300_elf_check_relocs): Use new functions.
        (mn10300_elf_final_link_relocs): Likewise.
        * elf32-arm.c (reloc_section_p): Delete - replaced by new
        functions.
        (elf32_arm_final_link_relocate): Use new functions.
        (elf32_arm_check_relocs): Likewise.
        * elf32-cris.c (cris_elf_relocate_section): Likewise.
        (elf_cris_check_relocs): Likewise.
        * elf32-hppa.c (elf32_hppa_check_relocs): Likewise.
        * elf32-i370.c (i370_elf_check_relocs): Likewise.
        (i370_elf_relocate_section): Likewise.
        * elf32-i386.c (elf_i386_check_relocs): Likewise.
        * elf32-m32r.c (m32r_elf_relocate_section): Likewise.
        (m32r_elf_check_relocs): Likewise.
        * elf32-m68k.c (elf_m68k_check_relocs): Likewise.
        * elf32_ppc.c (ppc_elf_check_relocs): Likewise.
        (ppc_elf_relocate_section): Likewise.
        * elf32-s390.c (elf_s390_check_relocs): Likewise.
        * elf32-sh.c (sh_elf_relocate_section): Likewise.
        (sh_elf_check_relocs): Likewise.
        * elf32-vax.c (elf_vax_check_relocs): Likewise.
        (elf_vax_relocate_section): Likewise.
        * elf64-alpha.c (elf64_alpha_check_relocs): Likewise.
        * elf64-ppc.c (ppc64_elf_check_relocs): Likewise.
        * elf64-s390.c (elf_s390_check_relocs): Likewise.
        * elf64-sh64.c (sh_elf64_relocate_section): Likewise.
        * elf64-x86-64.c (elf64_x86_64_check_relocs): Likewise.
        * elfxx-sparc.c (_bfd_sparc_elf_check_relocs): Likewise.
        * elf32-bfin.c (bfin_check_relocs): Remove redundant local
        variable 'sreloc'.
        (bfin_relocate_section): Likewise.
        * elf32-v850.c (v850_elf_check_relocs): Likewise.
2008-11-25 13:03:56 +00:00
Hans-Peter Nilsson 100382c76e Implement TLS for CRIS.
* elf32-cris.c: Include limits.h.
	(TLSHOWTO16): Redefine in terms of and move contents to...
	(TLSHOWTO16X): New macro.
	(TLSHOWTO16S, LGOT_REG_NDX, LGOT_DTP_NDX, LGOT_ALLOC_NELTS_FOR)
	(elf_cris_hash_entry): New macros.
	(cris_elf_howto_table): Make R_CRIS_16_DTPREL,
	R_CRIS_16_GOT_TPREL, R_CRIS_16_TPREL check overflow for signed,
	not unsigned values.
	(cris_info_to_howto_rela): Make r_type a enum elf_cris_reloc_type,
	not unsigned int.
	(struct elf_cris_link_hash_entry): New members reg_got_refcount,
	tprel_refcount, and dtp_refcount.
	(struct elf_cris_link_hash_table): New member dtpmod_refcount.
	(elf_cris_link_hash_newfunc): Initialize new members.
	(elf_cris_link_hash_table_create): Similar.
	(cris_final_link_relocate, elf_cris_reloc_type_class): Use a
	temporary variable when testing the relocation type.
	(cris_elf_gc_mark_hook): Ditto.  Add default case where needed.
	(cris_elf_gc_sweep_hook): Ditto.  Handle reference-counting for
	the new assembly-generated relocs.  Rewrite refcount handling to
	set temporary variables to pointers to reloc-specific variables
	and entry size and common code for the update.
	(additional_relocation_error_msg_count): New variable.
	(cris_elf_relocate_section): Use a function-local variable srelgot
	for the .rela.got section instead of looking it up for every need.
	Make r_type a enum elf_cris_reloc_type, not int.  Actually set
	symname for non-local symbols.  Handle new assembly-generated
	relocs.  For overflow, emit additional messages for the new 16-bit
	relocs as well as R_CRIS_16_GOTPLT and R_CRIS_16_GOT.
	(elf_cris_finish_dynamic_symbol): Use elf_cris_finish_dynamic_symbol
	instead of plain casts.  Check new hash entry member
	reg_got_refcount when checking whether to emit a GOT entry.
	(elf_cris_finish_dynamic_sections): Update head comment to warn
	about emitting relocs here.  Use a temporary variable when testing
	the relocation type.
	(elf_cris_discard_excess_program_dynamics)
	(elf_cris_adjust_gotplt_to_got): Handle reference counting change
	regarding h->reg_got_refcount.
	(cris_elf_check_relocs): Rewrite refcount handling to set
	temporary variables and entry size and common code for the update
	for local symbols.  Use new macro elf_cris_hash_entry.  Adjust
	allocation for change in reference counting of GOT entries for
	local symbols.
	(elf_cris_size_dynamic_sections): Adjust calculated size of
	.got.plt and .rela.got if we need a GOT entry for a
	R_CRIS_DTPMOD relocation.
	(elf_cris_got_elt_size): New function.
	(elf_backend_got_elt_size): Define.
2008-11-25 04:02:12 +00:00
Alan Modra 6b5515d6dc daily update 2008-11-25 00:00:09 +00:00
Alan Modra b6966287bc daily update 2008-11-24 00:00:06 +00:00
Alan Modra 428d1fa7e6 daily update 2008-11-23 00:00:05 +00:00
Alan Modra df899a713b daily update 2008-11-22 00:00:04 +00:00
Sterling Augustine 1fa3cd8308 2008-11-21 Sterling Augustine <sterling@tensilica.com>
* xtensa-isa.c (xtensa_state_is_shared_or): New function.

2008-11-21  Sterling Augustine  <sterling@tensilica.com>

        * xtensa-isa-internal.h (XTENSA_STATE_IS_SHARED_OR): New flag.
        * xtensa-isa.h (xtensa_state_is_shared_or): New prototype.

2008-11-21  Sterling Augustine  <sterling@tensilica.com>

        * config/tc-xtensa.c (check_t1_t2_reads_and_writes): Call
        xtensa_state_is_shared_or to allow multiple opcodes within a
        single FLIX bundle to write to these special states.
2008-11-21 22:13:32 +00:00
Hans-Peter Nilsson 10455f89a6 * elf-bfd.h (struct elf_backend_data): New member got_elt_size.
(_bfd_elf_default_got_elt_size): Declare.
	* elflink.c (struct alloc_got_off_arg): Replace member got_elt_size
	by new member info.
	(elf_gc_allocate_got_offsets): Adjust for calling bed->got_elt_size
	to get the element size instead of using a gofarg entry.
	(bfd_elf_gc_common_finalize_got_offsets): Similar.
	(_bfd_elf_default_got_elt_size): New function.
	* elfxx-target.h: New macro elf_backend_got_elt_size.
	(elfNN_bed): Use it.
2008-11-21 00:02:37 +00:00
Alan Modra f2e04a4ef3 daily update 2008-11-21 00:00:09 +00:00
Tristan Gingold 78bc95e3ba 2008-11-20 Tristan Gingold <gingold@adacore.com>
* bfdwin.c: Fix comment.
2008-11-20 09:49:00 +00:00
Tristan Gingold 6aa341c739 2008-11-20 Tristan Gingold <gingold@adacore.com>
* bfd.c (is32bit): Use architecture information for non-ELF
	targets.
2008-11-20 09:28:06 +00:00
Alan Modra d6e14abcef * elf32-ppc.c (allocate_dynrelocs): Always use tlsld_got for
TLS_LD even when symbol is used with other TLS reloc types.
	(ppc_elf_relocate_section): Bypass symbol checks when using tlsld_got.
	Leave addend zero on LD DTPMOD dynamic reloc.
2008-11-20 08:47:10 +00:00
Alan Modra 1f7d85c731 daily update 2008-11-20 00:00:05 +00:00
Bob Wilson 33430bd0ae include/
* xtensa-config.h (XCHAL_HAVE_MUL16, XCHAL_HAVE_MUL32, XCHAL_HAVE_DIV32)
	(XCHAL_HAVE_MINMAX, XCHAL_HAVE_SEXT, XCHAL_HAVE_THREADPTR)
	(XCHAL_HAVE_RELEASE_SYNC, XCHAL_HAVE_S32C1I): Change to 1.
	(XCHAL_NUM_AREGS): Change to 32.
	(XCHAL_ICACHE_SIZE, XCHAL_DCACHE_SIZE): Change to 16K.
	(XCHAL_ICACHE_LINESIZE, XCHAL_DCACHE_LINESIZE): Change to 32.
	(XCHAL_ICACHE_LINEWIDTH, XCHAL_DCACHE_LINEWIDTH): Change to 5.
	(XCHAL_DCACHE_IS_WRITEBACK): Change to 1.
	(XCHAL_DEBUGLEVEL): Change to 6.
bfd/
	* xtensa-modules.c (sysregs): Add MMID, VECBASE, EPC5, EPC6, EPC7,
	EXCSAVE5, EXCSAVE6, EXCSAVE7, EPS5, EPS6, EPS7, CPENABLE,
	SCOMPARE1, and THREADPTR registers.
	(NUM_SYSREGS, MAX_USER_REG): Update.
	(states): Change width of INTERRUPT, WindowBase, WindowStart, and
	INTENABLE.  Add VECBASE, EPC5, EPC6, EPC7, EXCSAVE5, EXCSAVE6,
	EXCSAVE7, EPS6, EPS6, EPS7, THREADPTR, CPENABLE, and SCOMPARE1 states.
	(NUM_STATES): Update.
	(enum xtensa_state_id): Add entries for new states.
	(enum xtensa_field_id): Add entries for xt_wbr15_imm and xt_wbr18_imm
	fields, along with functions to extract and set them.
	(regfiles): Change number of AR registers to 32.
	(Operand_ar0_encode, Operand_ar4_encode, Operand_ar8_encode,
	Operand_ar12_encode, Operand_ars_entry_encode): Update register mask.
	(operands): Add entries for tp7, xt_wbr15_label, xt_wbr18_label,
	xt_wbr15_imm, and xt_wbr18_imm operands, along with functions to
	encode and decode them.
	(enum xtensa_operand_id): Add entries for new operands.
	(Iclass_xt_iclass_rfi_stateArgs): Add EPC5, EPC6, EPC7, EPS5, EPS6, and
	EPC7 states.
	(Iclass_xt_iclass_rfdo_stateArgs): Replace EPC4 and EPS4 by EPC6 and
	EPS6, respectively.
	(iclasses): Add entries for rur_threadptr, wur_threadptr,
	xt_iclass_wsr_176, xt_iclass_rsr_epc5, xt_iclass_wsr_epc5,
	xt_iclass_xsr_epc5, xt_iclass_rsr_excsave5, xt_iclass_wsr_excsave5,
	xt_iclass_xsr_excsave5, xt_iclass_rsr_epc6, xt_iclass_wsr_epc6,
	xt_iclass_xsr_epc6, xt_iclass_rsr_excsave6, xt_iclass_wsr_excsave6,
	xt_iclass_xsr_excsave6, xt_iclass_rsr_epc7, xt_iclass_wsr_epc7,
	xt_iclass_xsr_epc7, xt_iclass_rsr_excsave7, xt_iclass_wsr_excsave7,
	xt_iclass_xsr_excsave7, xt_iclass_rsr_eps5, xt_iclass_wsr_eps5,
	xt_iclass_xsr_eps5, xt_iclass_rsr_eps6, xt_iclass_wsr_eps6,
	xt_iclass_xsr_eps6, xt_iclass_rsr_eps7, xt_iclass_wsr_eps7,
	xt_iclass_xsr_eps7, xt_iclass_rsr_vecbase, xt_iclass_wsr_vecbase,
	xt_iclass_xsr_vecbase, xt_iclass_mul16, xt_iclass_wsr_mmid,
	xt_iclass_icache_lock, xt_iclass_dcache_lock, xt_iclass_rsr_cpenable,
	xt_iclass_wsr_cpenable, xt_iclass_xsr_cpenable, xt_iclass_clamp,
	xt_iclass_minmax, xt_iclass_sx, xt_iclass_l32ai, xt_iclass_s32ri,
	xt_iclass_s32c1i, xt_iclass_rsr_scompare1, xt_iclass_wsr_scompare1,
	xt_iclass_xsr_scompare1, xt_iclass_div, and xt_iclass_mul32, along
	with corresponding argument and state argument arrays.  Change
	number of state arguments for xt_iclass_rfi.  Add arguments for
	xt_iclass_rfdo.
	(enum xtensa_iclass_id): Add entries for new iclasses.
	(opcodes): Add entries for RUR_THREADPTR, WUR_THREADPTR, WSR_176,
	RSR_EPC5, WSR_EPC5, XSR_EPC5, RSR_EXCSAVE5, WSR_EXCSAVE5, XSR_EXCSAVE5,
	RSR_EPC6, WSR_EPC6, XSR_EPC6, RSR_EXCSAVE6, WSR_EXCSAVE6, XSR_EXCSAVE6,
	RSR_EPC7, WSR_EPC7, XSR_EPC7, RSR_EXCSAVE7, WSR_EXCSAVE7, XSR_EXCSAVE7,
	RSR_EPS5, WSR_EPS5, XSR_EPS5, RSR_EPS6, WSR_EPS6, XSR_EPS6, RSR_EPS7,
	WSR_EPS7, XSR_EPS7, RSR_VECBASE, WSR_VECBASE, XSR_VECBASE, MUL16U,
	MUL16S, WSR_MMID, IPFL, IHU, IIU, DPFL, DHU, DIU, RSR_CPENABLE,
	WSR_CPENABLE, XSR_CPENABLE, CLAMPS, MIN, MAX, MINU, MAXU, SEXT, L32AI,
	S32RI, S32C1I, RSR_SCOMPARE1, WSR_SCOMPARE1, XSR_SCOMPARE1, QUOU, QUOS,
	REMU, REMS, and MULL opcodes, along with the corresponding functions
	to encode them.
	(enum xtensa_opcode_id): Add entries for new opcodes.
	(Slot_inst_decode): Handle new opcodes.
	(Slot_inst_get_field_fns, Slot_inst_set_field_fns): Add entries for
	xt_wbr15_imm and xt_wbr18_imm fields.
	(Slot_inst16a_get_field_fns, Slot_inst16a_set_field_fns): Likewise.
	(Slot_inst16b_get_field_fns, Slot_inst16b_set_field_fns): Likewise.
	(xtensa_modules): Update number of fields, operands, iclasses and
	opcodes.
2008-11-19 18:25:20 +00:00
Nick Clifton 793c580792 Change documentation license to FDL v1.3 2008-11-19 16:22:48 +00:00
Nick Clifton c91e322a29 * elf.c (swap_out_syms) [USE_STT_COMMON]: Fix syntax error. 2008-11-19 10:09:21 +00:00
Nick Clifton af1fb11f4b PR 7027
* elfxx-sparc.c (_bfd_sparc_elf_check_relocs): Treat WPLT30 relocs
        against local symbols in 64-bit binaries as if they were WDISP30
        relocs.
        (_bfd_sparc_elf_relocate_section): Likewise.
2008-11-19 09:25:56 +00:00
Alan Modra 156b28010a daily update 2008-11-19 00:00:09 +00:00
Catherine Moore 8e79c3df51 Add support for ARM half-precision conversion instructions. 2008-11-18 15:45:05 +00:00
Nick Clifton dc80fd5cfc * dwarf2.c (read_section): Fix formatting.
(read_n_bytes): Remove unhelpful comment.
        (read_indirect_string): Pass symbol table to read_section in case
        the .debug_str section needs relocating.

        PR 7037
        * elf32-cr16.c (cr16_elf_howto_table): Zero the src_mask field of
        the reloc descriptions.
2008-11-18 14:05:00 +00:00
Alan Modra cf78ad824e daily update 2008-11-18 00:00:08 +00:00
Alan Modra c0ef4cd878 daily update 2008-11-17 00:00:05 +00:00
Alan Modra 23965a5aa6 daily update 2008-11-16 00:00:05 +00:00
Alan Modra 1e182d3ce4 daily update 2008-11-15 00:00:05 +00:00
Eric B. Weddington 28b027518b /bfd:
2008-11-14  Eric B. Weddington  <eric.weddington@atmel.com>

	PR 7022
	* elf32-avr.c (bfd_elf_avr_final_write_processing):
	Add missing break statements.
2008-11-14 21:37:52 +00:00
Bob Wilson af4bed4bf5 * xtensa-modules.c (xtensa_state_id): New enum, replacing STATE macros.
(xtensa_field_id, xtensa_regfile_id, xtensa_operand_id)
	(xtensa_iclass_id, xtensa_opcode_id): New enums.
	Replace hardcoded constants throughout this file with enum values.
2008-11-14 17:37:29 +00:00
Nick Clifton 2b0bc0884c bfd/
* elf.c (assign_file_positions_for_load_sections): Use header_size
        to avoid moving the load address of file headers.
        (assign_file_positions_for_load_sections): Set header_size for
        segments containing the file header.

        include/elf/
        * internal.h (struct elf_segment_map): Add header_size field.
2008-11-14 14:44:09 +00:00
Tristan Gingold d387240a63 bfd/
2008-11-14  Tristan Gingold  <gingold@adacore.com>

	* configure.com: Handle bfd_default_target_size, BFD_HOST_LONG_LONG,
	BFD_HOST_64BIT_LONG_LONG, BFD_HOSTPTR_T, bfd_file_ptr.
	Generate bfdver.h.
	* vms-hdr.c (_bfd_vms_write_hdr): Use strdup/free instead of alloca.
	* hosts/alphavms.h: Defines macros to bypass i18n.
	* makefile.vms (OBJS): Update file list.
	(DEFS): Remove VMS_DEBUG, const, add DEBUGDIR.
	(CFLAGS): Update flags.
	* bfdio.c (real_fopen): Add code specific to VMS: extract attributes
	from modes.

binutils/
2008-11-14  Tristan Gingold  <gingold@adacore.com>

	* configure.com: Get version from configure.in of bfd.
	* makefile.vms-in (DEBUG_OBJS): Add dwarf.obj.
	(CFLAGS): Update flags.

include/
2008-11-14  Tristan Gingold  <gingold@adacore.com>

	* fopen-vms.h (FOPEN_RB): Use a single string to match the
	standard prototype.
	(FOPEN_WB): Ditto.
	(FOPEN_AB): Ditto.
	(FOPEN_RUB): Ditto.
	(FOPEN_WUB): Ditto.
	(FOPEN_AUB): Ditto.

libiberty/
2008-11-14  Tristan Gingold  <gingold@adacore.com>

	* makefile.vms (OBJS): Update objects list.
	(CFLAGS): Update.
	(libiberty.olb): Remove alloca-conf.h dependency.
	* config.h-vms: Use new macro sets, use builtin alloca.

opcodes/
2008-11-14  Tristan Gingold  <gingold@adacore.com>

	* makefile.vms (OBJS): Update list of objects.
	(DEFS): Update
	(CFLAGS): Update.
2008-11-14 09:57:35 +00:00
Alan Modra a3aa4338e2 daily update 2008-11-14 00:00:09 +00:00
Joel Brobecker 08c13eba50 * configure.in: Deactivate large-file support on native 32bit
sparc-solaris unless the user explicitly requested it.
        * configure: Regenerate.
2008-11-13 23:09:47 +00:00
Hans-Peter Nilsson 5726889422 PR ld/7028
* elf.c (assign_file_positions_for_load_sections): Allocate phrds
	with bfd_zalloc2 instead of bfd_alloc2.  For the amount, use
	the possibly-preset header-size, not the computed one.
2008-11-13 03:01:15 +00:00
Alan Modra 2a8a6bf5ce daily update 2008-11-13 00:00:05 +00:00
Alan Modra 3337c1e561 PR 7023
* elf.c (bfd_section_from_shdr <SHT_SYMTAB>): Fail on invalid sh_info.
2008-11-12 22:04:04 +00:00
Tristan Gingold 09c6f846b6 2008-11-12 Tristan Gingold <gingold@adacore.com>
* bfd.c (bfd_get_sign_extend_vma): Return 0 for mach-o.
2008-11-12 10:27:57 +00:00
Alan Modra 48339654f1 daily update 2008-11-11 23:58:59 +00:00
Alan Modra b84a33b5df * elf.c (assign_file_positions_for_non_load_sections): Consolidate
PT_GNU_RELRO handling.
2008-11-11 04:26:13 +00:00
Alan Modra 23c796f552 daily update 2008-11-10 23:59:04 +00:00
Alan Modra 5d0900ebc7 PR 7012
* dwarf2.c (find_line): Don't keep stale pointers into realloc'd
	memory.  Return on errors.  Fix memory leak.
	(_bfd_dwarf2_cleanup_debug_info): Free dwarf_str_buffer.
2008-11-10 23:39:19 +00:00
Andreas Schwab 129af99fb5 PR 7011
* elf.c (assign_file_positions_for_non_load_sections): Handle
	PT_GNU_RELRO specially.
2008-11-10 22:47:58 +00:00
Alan Modra 837e8dbd6f daily update 2008-11-09 23:59:09 +00:00
Alan Modra 81b317983f daily update 2008-11-08 23:59:14 +00:00
Alan Modra 58fadbce8c daily update 2008-11-07 23:59:19 +00:00
Alan Modra ea397ae880 daily update 2008-11-06 23:59:25 +00:00
Nick Clifton 8a2a2dbb65 Add m32c-*-rtems* and m32r-*-rtems* configuration targets. 2008-11-06 15:36:38 +00:00
Tom Tromey 428b207a69 * configure, config.in: Rebuild.
* configure.in: Check for fileno.
	* bfdio.c (close_on_exec): New function.
	(real_fopen): Use it.
	(FD_CLOEXEC): New define.
2008-11-06 14:10:46 +00:00
Tristan Gingold efd20d3a42 Remove extra blank line. 2008-11-06 13:10:15 +00:00
Tristan Gingold 15e1c58a0e 2008-11-06 Tristan Gingold <gingold@adacore.com>
* mach-o.h (BFD_MACH_O_NO_SECT): Add; reorders the macros.
	(BFD_MACH_O_SYM_NTYPE, BFD_MACH_O_SYM_NSECT,
	BFD_MACH_O_SYM_NDESC): New macros.
	(bfd_mach_o_i386_thread_flavour): Define according to the latest
	definition from system header.
	(bfd_mach_o_load_command_type): Add BFD_MACH_O_LC_RPATH,
	BFD_MACH_O_LC_CODE_SIGNATURE.
	(BFD_MACH_O_SECTION_TYPE_MASK, BFD_MACH_O_SECTION_ATTRIBUTES_MASK,
	BFD_MACH_O_SECTION_ATTRIBUTES_SYS, BFD_MACH_O_SECTION_ATTRIBUTES_USR,
	BFD_MACH_O_S_ATTR_LOC_RELOC, BFD_MACH_O_S_ATTR_EXT_RELOC,
	BFD_MACH_O_S_ATTR_SOME_INSTRUCTIONS, BFD_MACH_O_S_ATTR_DEBUG,
	BFD_MACH_O_S_ATTR_PURE_INSTRUCTIONS): Add.
	(bfd_mach_o_segment_command): Add room for a nul terminator in
	segname field.
	(BFD_MACH_O_PROT_READ, BFD_MACH_O_PROT_WRITE,
	BFD_MACH_O_PROT_EXECUTE): Add.
	(INDIRECT_SYMBOL_LOCAL): Renames to BFD_MACH_O_INDIRECT_SYMBOL_LOCAL.
	(INDIRECT_SYMBOL_ABS): Renames to BFD_MACH_O_INDIRECT_SYMBOL_ABS.
	(bfd_mach_o_uuid_command): Add the structure.
	(bfd_mach_o_load_command): Add uuid field.
	(bfd_get_mach_o_data): New macro.
	* mach-o.c (bfd_mach_o_bfd_print_private_bfd_data): New function which
	replaces the macro.
	(SECTION_TYPE, SECTION_ATTRIBUTES, SECTION_ATTRIBUTES_USR,
	S_ATTR_PURE_INSTRUCTIONS, SECTION_ATTRIBUTES_SYS,
	S_ATTR_SOME_INSTRUCTIONS, S_ATTR_EXT_RELOC, S_ATTR_LOC_RELOC): Renamed
	and moved to mach-o.h.
	(N_STAB, N_TYPE, N_EXT, N_UNDF, N_ABS, N_TEXT, N_DATA, N_BSS,
	N_SECT, N_INDR): Removed as they duplicated macros in mach-o.h.
	(bfd_mach_o_print_symbol): Print much more details.
	(bfd_mach_o_make_bfd_section): Add prot argument, use canonical
	dwarf name for dwarf sections.  Precisely set section flags.
	(bfd_mach_o_scan_read_section_32): Add prot argument.
	(bfd_mach_o_scan_read_section_64): Ditto.
	(bfd_mach_o_scan_read_section): Ditto.
	(bfd_mach_o_scan_read_symtab_symbol): Set section for debugging
	stabs, set BSF_GLOBAL and LOCAL flags correctly.  Fix section
	for N_SECT symbols.
	(bfd_mach_o_i386_flavour_string): Reindent and adjust for new
	names.
	(bfd_mach_o_scan_read_symtab): Set HAS_SYMS flags on bfd if there
	are symbols.
	(bfd_mach_o_scan_read_uuid): New function.
	(bfd_mach_o_scan_read_segment): Add a trailing nul.  Segments
	flags are now simply HAS_CONTENTS.  Pass protection to
	bfd_mach_o_scan_read_section.
	(bfd_mach_o_scan_read_command): Decode UUID command.
	(bfd_mach_o_flatten_sections): Add comments.  Fix flavour names.
	(bfd_mach_o_scan): Set flags according to file type.
	(mach_o_fat_archentry): Remove abfd field.
	(bfd_mach_o_archive_p): Remove initialization of abfd field.
	(bfd_mach_o_openr_next_archived_file): Find previous archive
	by position and not by bfd (as former bfds may have been freed).
	Give architecture name to archived file.
	* mach-o-target.c (TARGET_NAME): Use generic archive for non fat
	targets.
2008-11-06 13:03:43 +00:00
Alan Modra f207673a2f daily update 2008-11-05 23:59:29 +00:00
Alan Modra 04f480cdac daily update 2008-11-04 23:59:35 +00:00
Alan Modra 65ad0a5a7e daily update 2008-11-03 23:59:44 +00:00
Alan Modra 3bb5de1331 daily update 2008-11-02 23:59:45 +00:00
Alan Modra ad93e8f0de daily update 2008-11-01 23:59:50 +00:00
Alan Modra 1d5ef80c9a daily update 2008-10-31 23:59:55 +00:00
Alan Modra b59a2a16bb daily update 2008-10-31 00:00:01 +00:00
Nick Clifton cb5220a03f * cache.c (cache_bread): Cast void * pointer before performing
arithmetic on it.
2008-10-30 09:05:32 +00:00
Alan Modra 42656384ae daily update 2008-10-30 00:00:08 +00:00
Alan Modra c2470a5ab2 daily update 2008-10-29 00:00:04 +00:00
Alan Modra 0f3e7e3c00 daily update 2008-10-28 00:00:04 +00:00
Alan Modra c49bb545f8 daily update 2008-10-27 00:00:08 +00:00
Alan Modra 8ad66ec02f daily update 2008-10-26 00:00:05 +00:00
Alan Modra 0775829945 daily update 2008-10-25 00:00:05 +00:00
Alan Modra dd9f9dc96d daily update 2008-10-24 00:00:04 +00:00
Alan Modra eb6d1af8bb daily update 2008-10-23 00:00:05 +00:00
Alan Modra 11d5096372 daily update 2008-10-22 00:00:04 +00:00
Alan Modra 8a6bacd279 daily update 2008-10-21 00:00:04 +00:00
Alan Modra 7d9616d756 * elf64-ppc.c (ppc64_elf_process_dot_syms): Renamed from
ppc64_elf_check_directives.
	* elf32-sh-symbian.c (sh_symbian_process_directives): Combine..
	(sh_symbian_check_directives): ..this
	(bfd_elf32_sh_symbian_process_directives) ..and this function.
2008-10-20 11:05:47 +00:00
Alan Modra 58217f2928 * elflink.c (bfd_elf_final_link): Move code reading relocs to..
* elf32-spu.c (spu_elf_count_relocs): ..here.  Adjust params.
	* elf-bfd.h (struct elf_backend_data): Update elf_backend_count_relocs
	params.
2008-10-20 10:57:33 +00:00
Alan Modra bef264833b * elflink.c (bfd_elf_final_link): Use d_ptr rather than d_val
where Elf_Internal_Dyn holds an address.
2008-10-20 10:50:37 +00:00
Alan Modra 30b88e98a2 daily update 2008-10-20 00:00:05 +00:00
Alan Modra 3d83557f73 daily update 2008-10-19 00:00:04 +00:00
Alan Modra cdcc8e3643 daily update 2008-10-18 00:00:04 +00:00
Alan Modra cd0c322d09 daily update 2008-10-17 00:00:04 +00:00
Alan Modra 399fba252e daily update 2008-10-16 00:00:04 +00:00
Alan Modra b99a8f9a5b daily update 2008-10-15 00:00:04 +00:00
Alan Modra fa0c152bd9 daily update 2008-10-14 00:00:04 +00:00
Alan Modra 20d22ef40b daily update 2008-10-13 00:00:08 +00:00
Alan Modra 7022097db9 daily update 2008-10-12 00:00:05 +00:00
Alan Modra f342ca8ffc daily update 2008-10-11 00:00:10 +00:00
Nathan Froyd f82e0623e1 include/elf/
* ppc.h: Add Tag_GNU_Power_ABI_Struct_Return.
bfd/
	* elf32-ppc.c (ppc_elf_merge_obj_attributes): Merge
	Tag_GNU_Power_ABI_Struct_Return.
binutils/
	* readelf.c (display_power_gnu_attribute): Decode
	Tag_GNU_Power_ABI_Struct_Return.
ld/testsuite/
	* ld-powerpc/gnu-attr-12-1.s: New file.
	* ld-powerpc/gnu-attr-12-2.s: New file.
	* ld-powerpc/gnu-attr-12-11.d: New file.
	* ld-powerpc/gnu-attr-12-21.d: New file.
	* ld-powerpc/powerpc.exp: Run new dump tests.
2008-10-10 20:55:36 +00:00
Alan Modra 8611ee5267 daily update 2008-10-10 00:00:05 +00:00
Kai Tietz d078078ddb binutils/
2008-10-09  Kai Tietz  <kai.tietz@onevision.com>

	* dlltool.c (PAGE_SIZE): Make sure it has bfd_vma type.
	(PAGE_MASK): Likewise.
	(sfunc): Change to address size of bfd_vma for base-file.
	(flush_page): Likewise.
	(gen_exp_file): Likewise.
bfd/
2008-10-09  Kai Tietz  <kai.tietz@onevision.com>

	* cofflink.c (_bfd_coff_generic_relocate_section): Dump bfd_vma sized addresses instead of long sized.
2008-10-09 09:00:08 +00:00
Alan Modra 066ee829b9 * elf64-ppc.c (ppc64_elf_get_synthetic_symtab): Don't attempt to
read plt relocs if no dynamic syms.
2008-10-09 00:55:52 +00:00
Alan Modra 0396d01779 daily update 2008-10-09 00:14:24 +00:00
Nick Clifton 8cc9115f57 * configure.in (ALL_LINGUAS): Add "id".
* configure: Regenerate.
        * po/id.po: New Indonesian translation.
2008-10-08 15:58:26 +00:00
Alan Modra aea274d3a7 * elf.c (assign_file_positions_for_load_sections): When checking
a segment for contents, don't assume that a non-TLS nobits section
	must only be followed by nobits sections.
2008-10-08 08:30:27 +00:00
Alan Modra b3155dbdb3 daily update 2008-10-06 23:07:36 +00:00
Alan Modra 38bea03724 daily update 2008-10-05 23:00:05 +00:00
Alan Modra 7a09ae5c89 daily update 2008-10-04 23:00:04 +00:00
Hans-Peter Nilsson 3926fc5473 * elf32-cris.c (TLSHOWTO32, TLSHOWTO16): New macros.
(cris_elf_howto_table): Add entries for R_CRIS_32_GOT_GD,
	R_CRIS_16_GOT_GD, R_CRIS_32_GD, R_CRIS_DTP, R_CRIS_32_DTPREL,
	R_CRIS_16_DTPREL, R_CRIS_DTPMOD, R_CRIS_32_GOT_TPREL,
	R_CRIS_16_GOT_TPREL,  R_CRIS_32_TPREL,  R_CRIS_16_TPREL.
	(cris_reloc_map): Similarly.
	* reloc.c (bfd_reloc_code_type): Add entries for
	BFD_RELOC_CRIS_32_GOT_GD, BFD_RELOC_CRIS_16_GOT_GD,
	BFD_RELOC_CRIS_32_GD, BFD_RELOC_CRIS_DTP,
	BFD_RELOC_CRIS_32_DTPREL, BFD_RELOC_CRIS_16_DTPREL,
	BFD_RELOC_CRIS_DTPMOD, BFD_RELOC_CRIS_32_GOT_TPREL,
	BFD_RELOC_CRIS_16_GOT_TPREL, BFD_RELOC_CRIS_32_TPREL,
	BFD_RELOC_CRIS_16_TPREL.
	* libbfd.h, bfd-in2.h: Regenerate.
2008-10-04 17:18:36 +00:00
Alan Modra fd20c37f30 daily update 2008-10-04 00:00:06 +00:00
Alan Modra e932ca37ad add pr number for last commit 2008-10-03 10:09:51 +00:00
Alan Modra bcacc0f587 bfd/
* elf.c (bfd_elf_set_group_contents): Assign sh_info for ld -r when
	the signature symbol is global.
	* elflink.c (elf_link_input_bfd): Ensure group signature symbol
	is output when ld -r.  Set group sh_info when local.
	* linker.c (default_indirect_link_order): Handle group sections
	specially.
ld/
	* ldemul.c (ldemul_place_orphan): Add "name" param.
	* ldemul.h (ldemul_place_orphan): Update prototype.
	(struct ld_emulation_xfer_struct <place_orphan>): Likewise.
	* ldlang.c (lang_place_orphans): Generate unique section names here..
	* emultempl/elf32.em (place_orphan): ..rather than here.  Don't
	directly use an existing output section statement that has no
	bfd section.
	* emultempl/pe.em (place_orphan): Likewise.
	* emultempl/pep.em (place_orphan): Likewise.
	* emultempl/beos.em (place_orphan): Adjust.
	* emultempl/spuelf.em (spu_place_special_section): Adjust
	place_orphan call.
	* emultempl/genelf.em (gld${EMULATION_NAME}_after_open): New function.
	(LDEMUL_AFTER_OPEN): Define.
2008-10-03 09:40:49 +00:00
Alan Modra f64aaff407 daily update 2008-10-03 00:00:05 +00:00
Alan Modra 6c0e74aac4 daily update 2008-10-02 00:00:05 +00:00
Alan Modra c1ea295fc3 daily update 2008-10-01 00:00:07 +00:00
Nick Clifton e144674af8 * coffgen.c (coff_write_symbols): Check to see if a symbol's flags
do not match it class and if necessary update the class.
       (null_error_handler): New function.  Suppresses the generation of
       bfd error messages.
     * coff64-rs6000.c (bfd_xcoff_backend_data): Update comment.
     * config/tc-tic4x.c (tic4x_globl): Call S_SET_EXTERNAL as well as
     S_SET_STORAGE_CLASS.
2008-09-30 10:50:03 +00:00
Alan Modra 782e11fd41 run "make dep-am" 2008-09-30 07:49:32 +00:00
Alan Modra 33177bb154 * elflink.c (elf_link_add_object_symbols): Don't ignore returned
value of check_directives.
2008-09-30 04:47:50 +00:00
Alan Modra 9b7bf91e70 daily update 2008-09-30 00:00:05 +00:00
Steve Ellcey 718a6fd816 * configure: Regenerate for new libtool.
* aclocal.m4: Ditto.
	* Makefile.in: Ditto.
	* doc/Makefile.in: Ditto.
2008-09-29 15:34:33 +00:00
Alan Modra ceae84aacf bfd/
PR 6789
	* elf.c (assign_file_positions_for_load_sections): Call
	_bfd_elf_map_sections_to_segments, not elf_modify_segment_map.
	(get_program_header_size): Protect against NULL info.
	(_bfd_elf_map_sections_to_segments): Likewise.
	* elf32-spu.c (spu_elf_additional_program_headers): Likewise.
ld/testsuite/
	* ld-elf/extract-symbol-1sec.d: Correct section lma.
2008-09-29 14:12:02 +00:00
Nick Clifton afac680a76 * po/vi.po: Updated Vietnamese translation.
* po/fr.po: Updated French translation.
2008-09-29 09:48:31 +00:00
Alan Modra 6948ff7e01 daily update 2008-09-29 00:00:05 +00:00
Alan Modra 9659de1cb3 * elf.c (_bfd_elf_init_private_section_data): Tweak union copy.
(bfd_section_from_shdr): Don't change SHT_GROUP section name.
	* elflink.c (section_signature): New function.
	(_bfd_elf_section_already_linked): Use it.
2008-09-28 13:30:35 +00:00
Alan Modra e7714d0e20 daily update 2008-09-28 00:00:05 +00:00
Alan Modra 392b5e2b04 daily update 2008-09-27 00:00:05 +00:00
Alan Modra 6e0ee67f86 daily update 2008-09-26 00:00:05 +00:00
Alan Modra 121a04390c daily update 2008-09-25 00:00:06 +00:00
Alan Modra 9f5110a6ab daily update 2008-09-24 00:00:06 +00:00
Alan Modra cc9566afed daily update 2008-09-23 00:00:07 +00:00
Alan Modra 4388767c3b daily update 2008-09-22 00:00:05 +00:00
Alan Modra be1df7f2c7 daily update 2008-09-21 00:00:05 +00:00
Alan Modra d5026a7d6d daily update 2008-09-20 00:00:05 +00:00
Alan Modra e79f59555a * elf32-ppc.c (ppc_elf_finish_dynamic_sections): Handle vxworks
_GLOBAL_OFFSET_TABLE_ in .got.plt section.  Add BFD_ASSERTs.
2008-09-19 09:51:32 +00:00
Alan Modra 2a403edaa8 daily update 2008-09-19 00:00:05 +00:00
Bob Wilson b45329f94a * elf32-xtensa.c (elf_xtensa_check_relocs): Check for negative refcount. 2008-09-18 00:37:47 +00:00
Alan Modra bf43e54522 daily update 2008-09-18 00:00:05 +00:00
Jan Kratochvil 2a7b2e88e3 bfd/
PR 6893 - Do not consider FDEs for discarded sections as invalid.
	* elf-eh-frame.c (_bfd_elf_parse_eh_frame): New REQUIRE_CLEARED_RELOCS.
	Consider FDEs with cleared relocations as valid and ignorable.

ld/testsuite/
	* ld-elf/eh-group.exp, ld-elf/eh-group1.s, ld-elf/eh-group2.s: New test.

binutils/
	Suppress warnings on NONE relocations to discarded sections.
	* readelf.c (is_none_reloc): New function.
	(debug_apply_relocations): Ignore is_none_reloc() relocations.
2008-09-17 07:50:29 +00:00
Alan Modra 1c4a0acdd3 daily update 2008-09-17 00:00:05 +00:00
H.J. Lu 0a36a439ee bfd/
2008-09-16  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/6877
	* elflink.c (_bfd_elf_merge_symbol): Allow a common symbol to
	override the function in a shared library.

ld/testsuite/

2008-09-16  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/6877
	* ld-elf/comm1.c: New.
	* ld-elf/func1.c: Likewise.

	* ld-elf/shared.exp: Add tests for libfunc1.so and comm1.
2008-09-16 14:09:34 +00:00
Alan Modra e87d403811 PR 6844
* elf32-ppc.c (SYM_VAL): Define.  Use throughout to find symbol vma.
	(ppc_elf_relocate_section): Correct GOT offset calculation.
	(ppc_elf_finish_dynamic_symbol): Use PPC_HA and PPC_LO.
	(ppc_elf_finish_dynamic_sections): Likewise.  Error if
	htab->elf.hgot symbol is not defined in htab->got section.
2008-09-16 13:43:36 +00:00
Alan Modra d02dc88c3d daily update 2008-09-16 00:00:05 +00:00
Alan Modra 3b4f3a113f PR 6888
* elf32-ppc.c (ppc_elf_relocate_section): Handle NULL symbol section
	on R_PPC_TOC16, R_PPC_SDAREL16, R_PPC_EMB_SDA2REL, R_PPC_EMB_SDA21,
	R_PPC_EMB_RELSDA, R_PPC_SECTOFF* relocs.
2008-09-15 23:41:55 +00:00
Alan Modra c63c8ecb3c daily update 2008-09-15 00:00:06 +00:00
Alan Modra aae9ff7f49 daily update 2008-09-14 00:00:05 +00:00
Alan Modra 34a05b3e01 daily update 2008-09-13 00:00:05 +00:00
Alan Modra d140ac6b03 daily update 2008-09-12 00:00:05 +00:00
Jan Kratochvil d053aef827 bfd/
Fix loading large elf64 binaries on 32bit hosts.
	* configure.in: Call AC_SYS_LARGEFILE.
	* config.in: Regenerate.
	* configure: Regenerate.

binutils/
	Fix loading large elf64 binaries on 32bit hosts.
	* configure.in: Call AC_SYS_LARGEFILE.
	* config.in: Regenerate.
	* configure: Regenerate.

gas/
	* configure.in: Call AC_SYS_LARGEFILE.
	* config.in: Regenerate.
	* configure: Regenerate.

gprof/
	* configure.in: Call AC_SYS_LARGEFILE.
	* gconfig.in: Regenerate.
	* configure: Regenerate.

ld/
	* configure.in: Call AC_SYS_LARGEFILE.
	* config.in: Regenerate.
	* configure: Regenerate.

libiberty/
	* configure.in: Call AC_SYS_LARGEFILE.
	* config.in: Regenerate.
	* configure: Regenerate.
2008-09-11 19:02:04 +00:00
Alan Modra db6e5d65fa daily update 2008-09-11 00:00:06 +00:00
Alan Modra 07bbff8fcf daily update 2008-09-10 00:00:05 +00:00
Tom Tromey 502e814e6e * elfxx-mips.c (mips16_stub_symndx) <sec>: Mark argument as
unused.
2008-09-09 03:17:13 +00:00
Alan Modra cc19d45962 daily update 2008-09-09 00:00:05 +00:00
Daniel Jacobowitz 5609a71e68 PR ld/3191
* dwarf2.c (struct adjusted_section): Renamed from struct
	loadable_section.
	(struct dwarf2_debug): Adjust for renaming.  Add version field.
	(read_attribute_value): Correctly handle DW_FORM_ref_addr for
	DWARF3.
	(find_abstract_instance_name): Pass a pointer to
	attribute instead of offset.  For DW_FORM_ref_addr, get the
	entry at the offset from the .debug_info section.
	(scan_unit_for_symbols): Update.
	(parse_comp_unit): Allow DWARF3.  Save the version.
	(unset_sections): Update for renaming.
	(place_sections): Likewise.  Set new VMAs for DWARF sections
	also.
2008-09-08 21:58:29 +00:00
Tristan Gingold 96497422d6 2008-09-08 Tristan Gingold <gingold@adacore.com>
* configure.in: Update version to 2.19.50
        * configure: Regenerated.
2008-09-08 12:55:19 +00:00
Alan Modra 449373d9d0 daily update 2008-09-08 00:00:06 +00:00
Alan Modra 6e27dbe836 daily update 2008-09-07 00:00:05 +00:00
Alan Modra a0057aa056 daily update 2008-09-06 00:00:05 +00:00
Daniel Jacobowitz 9e32b19ffe Fix last commit. 2008-09-05 17:55:07 +00:00
Daniel Jacobowitz 2d47a72cd5 * dwarf2.c: Change leading whitespace to tabs. 2008-09-05 17:48:08 +00:00
Tristan Gingold 1e8a024a6b 2008-09-05 Tristan Gingold <gingold@adacore.com>
Add MacOSX 64 bits support.
	* mach-o.h (bfd_mach_o_ppc_thread_flavour): Add
	BFD_MACH_O_PPC_THREAD_STATE_64.
	(bfd_mach_o_i386_thread_flavour): Add BFD_MACH_O_x86_THREAD_STATE64,
	BFD_MACH_O_x86_FLOAT_STATE64, BFD_MACH_O_x86_EXCEPTION_STATE64,
	BFD_MACH_O_x86_THREAD_STATE, BFD_MACH_O_x86_FLOAT_STATE,
	BFD_MACH_O_x86_EXCEPTION_STATE.
	(bfd_mach_o_load_command_type): Add
	BFD_MACH_O_LC_SEGMENT_64, BFD_MACH_O_LC_ROUTINES_64,
	BFD_MACH_O_LC_UUID.
	(BFD_MACH_O_CPU_IS64BIT): Added.
	(bfd_mach_o_cpu_type): Add BFD_MACH_O_CPU_TYPE_POWERPC_64,
	BFD_MACH_O_CPU_TYPE_X86_64.
	(bfd_mach_o_header): Add version field.
	(bfd_mach_o_section) Add reserved3 field.
	(bfd_mach_o_segment_command): Add initprot and maxprot fields.

	* mach-o.c (N_TEXT, N_DATA, N_BSS): Added.
	(bfd_mach_o_version): New function.
	(bfd_mach_o_valid): Handle 64bits cpus.
	(bfd_mach_o_write_header): handler 64bits headers.
	(bfd_mach_o_scan_write_section_32, bfd_mach_o_scan_write_section_64):
	New functions (from bfd_mach_o_scan_write_section) to handle both
	flavors.
	(bfd_mach_o_scan_write_segment): Parameter wide added to support
	both flavors.
	(bfd_mach_o_write_contents): Support both flavors.
	(bfd_mach_o_read_header): Ditto.
	(bfd_mach_o_scan_read_section_32, bfd_mach_o_scan_read_section_64):
	New functions (from bfd_mach_o_scan_read_section) to support both
	flavors.
	(bfd_mach_o_scan_read_symtab_symbol): Support both flavors.
	(bfd_mach_o_scan_read_symtab): Ditto.
	(bfd_mach_o_scan_read_segment): Parameter wide added to support
	both flavors.
	(bfd_mach_o_scan_read_segment_32, bfd_mach_o_scan_read_segment_64):
	New functions to call bfd_mach_o_scan_read_segment.
	(bfd_mach_o_flatten_sections): Support both flavors.
	(bfd_mach_o_scan_start_address): Ditto.
	(bfd_mach_o_scan): Ditto.
	(bfd_mach_o_lookup_section): Ditto.
2008-09-05 08:07:54 +00:00
Alan Modra cf7af6f7e2 daily update 2008-09-05 00:00:06 +00:00
Alan Modra b8b8da908d daily update 2008-09-04 00:00:06 +00:00
Alan Modra a1a92630f9 daily update 2008-09-03 00:00:05 +00:00
Alan Modra 0150ecb5c0 daily update 2008-09-02 00:00:06 +00:00
Alan Modra 70296270a4 daily update 2008-09-01 00:00:06 +00:00
Alan Modra b79326b5de daily update 2008-08-31 00:00:06 +00:00
Alan Modra 4dc1b553ac daily update 2008-08-30 00:05:55 +00:00
Dave Anglin 6bba1048d6 * elf-hppa.h (elf_hppa_reloc_final_type): Handle R_PARISC_GPREL64,
R_PARISC_SEGREL32 and R_PARISC_SEGREL64.
	* som.c (som_fixup_formats): Add R_DATA_GPREL fixup.
	(som_hppa_howto_table): Likewise.
	(hppa_som_gen_reloc_type): In case R_HPPA_GOTOFF, detect R_DATA_GPREL
	final type.
	(som_write_fixups): Handle R_DATA_GPREL.

	* config/tc-hppa.c (is_SB_relative): New macro.
	(fix_new_hppa): Remove $segrel$ marker.
	(cons_fix_new_hppa): Set reloc type R_PARISC_SEGREL32 if expression is
	segment relative.
	* config/tc-hppa.h (tc_frob_symbol): Check for $segrel$.
2008-08-28 02:33:45 +00:00
Alan Modra ae72b420a0 daily update 2008-08-27 00:00:06 +00:00
Nick Clifton fcef9eb7bc * elf32-arm.c: Fix up comment describing Thumb to ARM interworking
stub.
2008-08-26 14:40:18 +00:00
Nick Clifton c820be077e bfd/
* elf32-arm.c (arm_thumb_arm_v4t_short_branch_stub): Define.
        (elf32_arm_stub_type): Add arm_thumb_arm_v4t_stub_short_branch.
        (arm_type_of_stub): Handle armv4t short branches. Update
        prototype.
        (arm_stub_is_thumb): Handle arm_thumb_arm_v4t_stub_short_branch.
        (arm_build_one_stub): Likewise.
        (arm_size_one_stub): Likewise.
        (elf32_arm_size_stubs): Use new arm_type_of_stub prototype.
        (arm_map_one_stub): Handle arm_thumb_arm_v4t_stub_short_branch.

        ld/testsuite/
        * ld-arm/arm-elf.exp: Add farcall-thumb-arm-short test.
        * ld-arm/farcall-group2.s: Fix comment.
        * ld-arm/farcall-thumb-arm-short.d: New test.
        * ld-arm/farcall-thumb-arm-short.s: New test.
2008-08-26 11:46:41 +00:00
Alan Modra 267a00c3ce daily update 2008-08-26 00:00:05 +00:00
Alan Modra 4b3a2bf238 daily update 2008-08-25 00:00:05 +00:00
Andreas Schwab 9c47c4c178 (_bfd_elf_write_section_eh_frame): Do proper
extension when calculating difference of offsets.
2008-08-24 21:43:00 +00:00
Alan Modra 50fbf7fec2 * Makefile.am (chew.o): Delete rule.
($(MKDOC)): Move options before C file.
	* Makefile.in: Regenerate.
2008-08-24 03:57:28 +00:00
Alan Modra da594c4a29 Update a number of obsolete autoconf macros. 2008-08-24 03:13:05 +00:00
Alan Modra f27f411ae7 daily update 2008-08-24 00:00:06 +00:00
Andreas Schwab 91910cddf1 (find_separate_debug_file): Use the canonical
absolute name of the bfd object for finding the debug file in
the global debugfile directory.
2008-08-23 08:08:58 +00:00
Alan Modra eb38fc9dc9 daily update 2008-08-23 00:00:14 +00:00
Jan Kratochvil b2064611d4 bfd/
Fix PR ld/3290 regression for cross-files DW_FORM_ref_addr relocations.
	* elflink.c (elf_link_add_object_symbols): Make debug symbols local
	now only for non-RELOCATABLE targets.

ld/testsuite/
	* ld-x86-64/dwarfreloc.exp, ld-x86-64/dwarfreloc.rd,
	ld-x86-64/dwarfreloc1.s, ld-x86-64/dwarfreloc2.s: New test.
2008-08-22 08:32:40 +00:00
Alan Modra c427de38f1 daily update 2008-08-22 00:00:05 +00:00
Alan Modra 655e852974 daily update 2008-08-21 00:00:11 +00:00
Bob Wilson 28dbbc0203 2008-08-20 Bob Wilson <bob.wilson@acm.org>
bfd/
        * elf-bfd.h (elf_object_id): Add XTENSA_ELF_TDATA.
        * elf32-xtensa.c (elf_howto_table): Add TLS relocations.
        (elf_xtensa_reloc_type_lookup): Likewise.
        (TCB_SIZE): Define.
        (elf_xtensa_link_hash_entry): New.
        (GOT_UNKNOWN, GOT_NORMAL, GOT_TLS_GD, GOT_TLS_IE, GOT_TLS_ANY): Define.
        (elf_xtensa_hash_entry): Define.
        (elf_xtensa_obj_tdata): New.
        (elf_xtensa_tdata): Define.
        (elf_xtensa_local_got_tls_type): Define.
        (elf_xtensa_local_tlsfunc_refcounts): Define.
        (is_xtensa_elf): Define.
        (elf_xtensa_mkobject): New.
        (elf_xtensa_link_hash_table): Add tlsbase field.
        (elf_xtensa_link_hash_newfunc): New.
        (elf_xtensa_link_hash_table_create): Use elf_xtensa_link_hash_newfunc.
        Create an entry for "_TLS_MODULE_BASE_" and save it in tlsbase field.
        (elf_xtensa_copy_indirect_symbol): New.
        (elf_xtensa_check_relocs): Rewrite to handle TLS relocations.
        (elf_xtensa_gc_sweep_hook): Likewise.
        (elf_xtensa_allocate_dynrelocs): Optimize away GOT entries for
        TLSDESC_FN relocations when an IE reference is seen.
        (elf_xtensa_allocate_local_got_size): Likewise.
        (elf_xtensa_always_size_sections): New.
        (dtpoff_base, tpoff): New.
        (elf_xtensa_do_reloc): Handle TLS relocations.
        (replace_tls_insn): New.
        (IS_XTENSA_TLS_RELOC): Define.
        (elf_xtensa_relocate_section): Handle TLS relocations.
        (get_indirect_call_dest_reg): New.
        (bfd_elf32_mkobject): Define.
        (elf_backend_always_size_sections): New.
        (elf_backend_copy_indirect_symbol): New.
        * reloc.c (BFD_RELOC_XTENSA_TLSDESC_FN, BFD_RELOC_XTENSA_TLSDESC_ARG)
        (BFD_RELOC_XTENSA_TLS_DTPOFF, BFD_RELOC_XTENSA_TLS_TPOFF)
        (BFD_RELOC_XTENSA_TLS_FUNC, BFD_RELOC_XTENSA_TLS_ARG)
        (BFD_RELOC_XTENSA_TLS_CALL): New.
        * bfd-in2.h: Regenerate.
        * libbfd.h: Regenerate.
gas/
        * config/tc-xtensa.c (O_tlsfunc, O_tlsarg, O_tlscall): Define.
        (O_tpoff, O_dtpoff): Define.
        (suffix_relocs): Add entries for TLS suffixes.
        (xtensa_elf_cons): Check for invalid use of TLS relocations.
        (map_operator_to_reloc): Add is_literal parameter and use it to
        control translating TLS instruction relocations to the corresponding
        literal relocations.
        (xg_valid_literal_expression): Allow TLS operators.
        (xg_build_to_insn): Copy TLS operators from pseudo-instruction
        operands to generated literals.
        (xg_assemble_literal): Handle TLS operators.  Update call to
        map_operator_to_reloc.
        (md_assemble): Handle CALLXn.TLS pseudo-instruction.
        (md_apply_fix): Handle TLS relocations.
        (emit_single_op): Handle TLS operators.
        (convert_frag_immed): Update call to map_operator_to_reloc.
        (vinsn_to_insnbuf): Emit relocations for TLS-related instructions.
        * config/xtensa-istack.h (tinsn_struct): Add tls_reloc field.
        * config/xtensa-relax.c (append_literal_op): Add src_op parameter
        to initialize the op_data field of the BuildOp.
        (build_transition): Use it here to record the source operand
        corresponding to a generated literal.
        * config/xtensa-relax.h (build_op): Comment op_data use for literals.
include/elf/
        * xtensa.h (R_XTENSA_TLSDESC_FN, R_XTENSA_TLSDESC_ARG)
        (R_XTENSA_TLS_DTPOFF, R_XTENSA_TLS_TPOFF, R_XTENSA_TLS_FUNC)
        (R_XTENSA_TLS_ARG, R_XTENSA_TLS_CALL): New.
ld/testsuite/
        * ld-xtensa/tlsbin.dd, ld-xtensa/tlsbin.rd, ld-xtensa/tlsbin.s,
        ld-xtensa/tlsbin.sd, ld-xtensa/tlsbin.td, ld-xtensa/tlslib.s,
        ld-xtensa/tlspic.dd, ld-xtensa/tlspic.rd, ld-xtensa/tlspic.sd,
        ld-xtensa/tlspic.td, ld-xtensa/tlspic1.s, ld-xtensa/tlspic2.s: New.
        * ld-xtensa/xtensa.exp: Run them.
2008-08-20 23:28:59 +00:00
Alan Modra 184ebfc1b7 daily update 2008-08-20 00:00:08 +00:00
Alan Modra f6a4a0ab9e daily update 2008-08-19 00:00:05 +00:00
Richard Sandiford 61b0a4af45 bfd/
* elfxx-mips.c (_bfd_mips_elf_copy_indirect_symbol): Copy MIPS16
	stub information.

ld/testsuite/
	* ld-mips-elf/mips16-pic-4a.s, ld-mips-elf/mips16-pic-4b.s,
	ld-mips-elf/mips16-pic-4.ver, ld-mips-elf/mips16-pic-4a.dd,
	ld-mips-elf/mips16-pic-4a.nd, ld-mips-elf/mips16-pic-4a.gd,
	ld-mips-elf/mips16-pic-4c.s, ld-mips-elf/mips16-pic-4b.dd: New tests.
	* ld-mips-elf/mips-elf.exp: Run them.
2008-08-18 18:14:05 +00:00
Alan Modra 8aacce0a9c daily update 2008-08-18 00:00:06 +00:00
Nick Clifton 8029a119ee * elf32-arm.c: Tidy up the code.
(bfd_elf32_arm_allocate_interworking_sections): Move common code
  into...
  (arm_allocate_glue_section_space): ... New function.
  (bfd_elf32_arm_add_glue_sections_to_bfd): Move common code
  into...
  (arm_make_glue_section): ... New function.
2008-08-17 20:48:21 +00:00
Nick Clifton 3e08fb72d9 * elfxx-mips.c (_bfd_mips_elf_check_relocs): Handle the situation
where the sym_hashes are not available.
2008-08-17 20:39:34 +00:00
Alan Modra 5c1d2f5f4c bfd/
* bfd.c (struct _bfd): Correct outsymbols comment.
	* bfd-in2.h: Regenerate.
	* linker.c (bfd_generic_link_read_symbols): Renamed from..
	(generic_link_read_symbols): ..this, and made global.

include/
	* bfdlink.h (bfd_generic_link_read_symbols): Declare.
ld/
	PR 6478
	* ldcref.c (check_local_sym_xref): Use bfd_generic_link_read_symbols.
	Don't free symbol pointer array.
	(check_refs): Likewise.
	* ldmain.c (warning_callback): Likewise.
	* ldmisc.c (vfinfo): Likewise.
	* pe-dll.c (process_def_file): Likewise.
	(pe_walk_relocs_of_symbol, generate_reloc): Likewise.
	* emultempl/pe.em (pe_find_data_imports): Likewise.
	(gld_${EMULATION_NAME}_after_open): Likewise.
	* emultempl/pep.em (pep_find_data_imports): Likewise.
	(gld_${EMULATION_NAME}_after_open): Likewise.
	* ldlang.h (lang_input_statement_type): Delete asymbols, symbol_count,
	passive_position, closed.
	* ldlang.c (new_afile): Don't set asymbols and symbol_count.
	* ldmain.c (add_archive_element): xcalloc lang_input_statement_type.
2008-08-17 03:12:50 +00:00
Alan Modra 1f5064de53 daily update 2008-08-17 00:00:06 +00:00
Alan Modra 63a09974ad daily update 2008-08-16 00:00:05 +00:00
Alan Modra 7357c5b6a6 PR 6526
* configure.in: Invoke AC_USE_SYSTEM_EXTENSIONS.
2008-08-15 08:31:52 +00:00
Alan Modra 6793a429da daily update 2008-08-15 00:00:07 +00:00
Alan Modra 70df0c05f2 * coffgen.c (coff_find_nearest_line): Correct cached line index. 2008-08-14 02:38:22 +00:00
Alan Modra f24550eedc daily update 2008-08-14 00:00:07 +00:00
Alan Modra 7b3e33dee7 daily update 2008-08-13 00:00:05 +00:00
Alan Modra b099ab9fcd * elf32-ppc.c (allocate_dynrelocs): Ignore dyn_relocs when
!dynamic_sections_created.  Don't make symbols with got
	references dynamic if !dynamic_sections_created.
	* elf64-ppc.c (allocate_dynrelocs): Likewise.  Alloc dynamic
	relocs on undefined symbols.
	(ppc64_elf_relocate_section): Allow dynamic relocs on
	undefined symbols.
2008-08-12 13:12:49 +00:00
Alan Modra 1271d27249 daily update 2008-08-12 00:00:08 +00:00
Alan Modra 90aecf7a80 * elf64-ppc.c (toc_adjusting_stub_needed): Any call via the plt
needs r2 valid, not just those to external syms.
2008-08-11 14:38:40 +00:00
Alan Modra 74235fd781 daily update 2008-08-11 00:00:05 +00:00
Pedro Alves ae38509c56 * archive.c (_bfd_archive_bsd_update_armap_timestamp): Cast stat
st_mtime to long before comparison.
2008-08-10 18:49:09 +00:00
Alan Modra 91f4687cf0 daily update 2008-08-10 00:00:05 +00:00
Eric B. Weddington 7b21ac3f45 Add AVR architectures avr25, avr31, avr35, and avr51 to match GCC.
bfd/
	* archures.c (bfd_mach_avr25, bfd_mach_avr31, bfd_mach_avr35,
	bfd_mach_avr51): New.
	* bfd-in2.h: Regenerate.
	* cpu-avr.c (arch_info_struct): Add avr25, avr31, avr35, and avr51
	architectures. Change comments to match architecture comments in GCC.
	(compatible): Add test for new AVR architectures.
	* elf32-avr.c (bfd_elf_avr_final_write_processing): Recognize
	bfd_mach_avr25, bfd_mach_avr31, bfd_mach_avr35 and bfd_mach_avr51.
	(elf32_avr_object_p): Recognize E_AVR_MACH_AVR25, E_AVR_MACH_AVR31,
	E_AVR_MACH_AVR35 and E_AVR_MACH_AVR51.

gas/
	* config/tc-avr.c (mcu_types): Add avr25, avr31, avr35, and avr51
	architectures. Reorganize list to put mcu types in correct architectures
	and to order list same as in GCC. Use new ISA definitions in
	include/opcode/avr.h.
	* doc/c-avr.texi: Add avr25, avr31, avr35, and avr51 architecture
	descriptions. Reorganize descriptions to put mcu types in correct
	architectures and to order lists same as in GCC.

include/
	* elf/avr.h (E_AVR_MACH_AVR25, E_AVR_MACH_AVR31,
	E_AVR_MACH_AVR35, E_AVR_MACH_AVR51): Define.
	(EF_AVR_MACH): Redefine to 0x7F.
	* opcode/avr.h (AVR_ISA_TINY3, AVR_ISA_ALL, AVR_ISA_USB162): Remove.
	(AVR_ISA_AVR3): Redefine.
	(AVR_ISA_AVR1, AVR_ISA_AVR2, AVR_ISA_AVR31, AVR_ISA_AVR35,
	AVR_ISA_AVR3_ALL, AVR_ISA_AVR4, AVR_ISA_AVR5, AVR_ISA_AVR51,
	AVR_ISA_AVR6): Define.

ld/
	* Makefile.am (ALL_EMULATIONS): Add eavr25.o, eavr31.o, eavr35.o,
	and eavr51.o.
	Add rules for eavr25.c, eavr31.c, eavr35.c, eavr51.c.
	* Makefile.in: Regenerate.
	* configure.tgt (avr-*-*, targ_extra_emuls): Add avr25, avr31, avr35
	and avr51.
	* emulparams/avr25.sh: New file.
	* emulparams/avr31.sh: New file.
	* emulparams/avr35.sh: New file.
	* emulparams/avr51.sh: New file.
2008-08-09 05:35:13 +00:00
Alan Modra 1838c6143a daily update 2008-08-09 00:00:05 +00:00
Daniel Jacobowitz 861fb55ab5 2008-08-08 Richard Sandiford <rdsandiford@googlemail.com>
Daniel Jacobowitz  <dan@codesourcery.com>
	    Catherine Moore  <clm@codesourcery.com>
	    Mark Shinwell  <shinwell@codesourcery.com>
	    Maxim Kuvyrkov  <maxim@codesourcery.com>

	* elf32-mips.c (mips_vxworks_copy_howto_rela): Replace with...
	(elf_mips_copy_howto): ...this howto.  Clear the size fields.
	(mips_vxworks_jump_slot_howto_rela): Replace with...
	(elf_mips_jump_slot_howto): ...this howto.
	(bfd_elf32_bfd_reloc_type_lookup): Handle BFD_RELOC_MIPS_COPY
	and BFD_RELOC_MIPS_JUMP_SLOT.
	(bfd_elf32_bfd_reloc_name_lookup): Handle "R_MIPS_COPY" and
	"R_MIPS_JUMP_SLOT".
	(mips_elf32_rtype_to_howto): Handle R_MIPS_COPY and R_MIPS_JUMP_SLOT.
	(elf_backend_plt_readonly): Define.
	(elf_backend_plt_sym_val): Define for non-VxWorks targets.
	(mips_vxworks_bfd_reloc_type_lookup): Delete.
	(mips_vxworks_bfd_reloc_name_lookup): Likewise.
	(mips_vxworks_rtype_to_howto): Likewise.
	(elf_backend_want_dynbss): Don't define for VxWorks.
	(elf_backend_plt_readonly): Likewise.
	(bfd_elf32_bfd_reloc_type_lookup): Likewise.
	(bfd_elf32_bfd_reloc_name_lookup): Likewise.
	(elf_backend_mips_rtype_to_howto): Likewise.
	(elf_backend_adjust_dynamic_symbol): Likewise.
	(elf_backend_got_symbol_offset): Don't define.
	* elfn32-mips.c (elf_mips_copy_howto, elf_mips_jump_slot_howto): New.
	(bfd_elf32_bfd_reloc_type_lookup): Handle BFD_RELOC_MIPS_COPY
	and BFD_RELOC_MIPS_JUMP_SLOT.
	(bfd_elf32_bfd_reloc_name_lookup): Handle "R_MIPS_COPY" and
	"R_MIPS_JUMP_SLOT".
	(mips_elf32_n32_rtype_to_howto): Handle R_MIPS_COPY and
	R_MIPS_JUMP_SLOT.
	(elf_backend_rela_plts_and_copies_p, elf_backend_plt_readonly)
	(elf_backend_plt_sym_val): Define.
	* elf64-mips.c (elf_mips_copy_howto, elf_mips_jump_slot_howto): New.
	(bfd_elf64_bfd_reloc_type_lookup): Handle BFD_RELOC_MIPS_COPY
	and BFD_RELOC_MIPS_JUMP_SLOT.
	(bfd_elf64_bfd_reloc_name_lookup): Handle "R_MIPS_COPY" and
	"R_MIPS_JUMP_SLOT".
	(mips_elf64_rtype_to_howto): Handle R_MIPS_COPY and R_MIPS_JUMP_SLOT.
	(elf_backend_rela_plts_and_copies_p, elf_backend_plt_readonly)
	(elf_backend_plt_sym_val): Define.
	* elfxx-mips.h (_bfd_mips_vxworks_adjust_dynamic_symbol): Delete.
	(_bfd_mips_elf_use_plts_and_copy_relocs, _bfd_mips_elf_init_stubs)
	(_bfd_mips_elf_plt_sym_val, _bfd_mips_post_process_headers): Declare.
	* elfxx-mips.c (mips_elf_la25_stub): New structure.
	(LA25_LUI, LA25_J, LA25_ADDIU): New macros.
	(mips_elf_link_hash_entry): Add "la25_stubs", "has_static_relocs"
	and "has_nonpic_branches" fields.  Remove "is_relocation_target" and
	"is_branch_target".
	(mips_elf_link_hash_table): Add blank lines.  Add
	"use_plts_and_copy_relocs", "reserved_gotno", "strampoline",
	"la25_stubs" and "add_stub_section" fields.
	(mips_htab_traverse_info): New structure.
	(PIC_OBJECT_P, MIPS_ELF_LOAD_WORD): New macros.
	(MIPS_RESERVED_GOTNO): Delete.
	(mips_o32_exec_plt0_entry, mips_n32_exec_plt0_entry)
	(mips_n64_exec_plt0_entry, mips_exec_plt_entry): New tables.
	(mips_elf_link_hash_newfunc): Update after the changes to
	mips_elf_link_hash_entry.
	(mips_elf_check_mips16_stubs): Replace the DATA parameter with
	an INFO parameter.  Don't look through warnings symbols here;
	do it in mips_elf_check_symbols instead.
	(mips_elf_create_stub_symbol): New function.
	(mips_elf_la25_stub_hash, mips_elf_la25_stub_eq): New functions.
	(_bfd_mips_elf_init_stubs, mips_elf_local_pic_function_p): Likewise.
	(mips_elf_add_la25_intro, mips_elf_add_la25_trampoline): Likewise.
	(mips_elf_add_la25_stub, mips_elf_check_symbols): New functions.
	(mips_elf_gotplt_index): Check for VxWorks.
	(mips_elf_output_dynamic_relocation): Take the relocation index
	as an extra parameter.  Do not increment reloc_count here.
	(mips_elf_initialize_tls_slots): Update the calls to
	mips_elf_output_dynamic_relocation accordingly.
	(mips_elf_multi_got): Use htab->reserved_gotno instead of
	MIPS_RESERVED_GOTNO.
	(mips_elf_create_got_section): Don't allocate reserved GOT
	entries here.  Unconditionally create .got.plt, but don't
	set its alignment here.
	(mips_elf_relocation_needs_la25_stub): New function.
	(mips_elf_calculate_relocation): Redirect branches and jumps to
	a non-PIC stub if one exists.  Check !h->has_static_relocs instead
	of !htab->is_vxworks when deciding whether to create dynamic
	relocations for R_MIPS_32, R_MIPS_REL32 and R_MIPS_64.
	(_bfd_mips_elf_create_dynamic_sections): Unconditionally call
	_bfd_elf_create_dynamic_sections.  Unconditionally set up
	htab->splt and htab->sdynbss.  Set htab->srelplt to ".rel.plt"
	if !htab->is_vxworks.  Add non-VxWorks values of
	htab->plt_header_size and htab->plt_entry_size.
	(_bfd_mips_elf_check_relocs): Set pointer_equality_needed for
	non-branch static relocations.  Set has_nonpic_branches when an la25
	stub might be required.  Set can_make_dynamic_p to TRUE if R_MIPS_32,
	R_MIPS_REL32 and R_MIPS_64 relocations can be made dynamic,
	rather than duplicating the condition.  Do not make them dynamic
	for read-only sections in non-PIC executable objects.
	Do not protect this code with dynobj == NULL || htab->sgot == NULL;
	handle each group of cases separately.  Add a default case that
	sets has_static_relocs for non-GOT relocations that cannot be
	made dynamic.  Don't set is_relocation_target and is_branch_target.
	Reject non-PIC static relocations in shared objects.
	(_bfd_mips_vxworks_adjust_dynamic_symbol): Fold into...
	(_bfd_mips_elf_adjust_dynamic_symbol): ...here, using
	htab->use_plts_and_copy_relocs instead of htab->is_vxworks
	to select PLT and copy-reloc handling.  Set the alignment of
	.plt and .got.plt when allocating the first entry.  Generalize
	code to handle REL as well as RELA sections and 64-bit as well as
	32-bit GOT entries.  Complain if we find a static-only reloc
	against an externally-defined symbol and if we cannot create
	dynamic relocations for it.  Allocate copy relocs using
	mips_elf_allocate_dynamic_relocations on non-VxWorks targets.
	Set possibly_dynamic_relocs to 0 when using PLTs or copy relocs.
	Skip reserved .got.plt entries.
	(_bfd_mips_elf_always_size_sections): Use mips_elf_check_symbols
	instead of mips_elf_check_mips16_stubs to process each symbol.
	Do the traversal for relocatable objects too.
	(mips_elf_lay_out_got): Use htab->reserved_gotno instead of
	MIPS_RESERVED_GOTNO.
	(_bfd_mips_elf_size_dynamic_sections): Exclude sdynbss if it
	is empty.  Extend the DT_PLTREL, DT_JMPREL and DT_PLTRELSZ handling
	to non-VxWorks targets.  Only add DT_REL{,A}, DT_REL{,A}SZ and
	DT_REL{,A}ENT if .rel.dyn is nonempty.  Create a symbol for the
	PLT.  Allocate a nop at the end of the PLT.  Allocate DT_MIPS_PLTGOT.
	(mips_elf_create_la25_stub_info): New function.
	(_bfd_mips_elf_finish_dynamic_symbol): Write out PLT entries
	and copy relocs where necessary.  Check pointer_equality_needed.
	(mips_finish_exec_plt): New function.
	(_bfd_mips_elf_finish_dynamic_sections): Always set DT_PLTGOT
	to the beginning of htab->sgot.  Use htab->reserved_gotno instead
	of MIPS_RESERVED_GOTNO.  Assert htab->use_plts_and_copy_relocs
	instead of htab->is_vxworks for DT_PLTREL, DT_PLTRELSZ and DT_JMPREL.
	Set DT_PLTREL to DT_REL instead of DT_RELA on non-VxWorks targets.
	Use mips_finish_exec_plt to create non-VxWorks PLT headers.  Set
	DT_MIPS_PLTGOT.
	(_bfd_mips_elf_copy_indirect_symbol): Copy has_static_relocs
	from the indirect symbol to the direct symbol.  Also copy
	has_nonpic_branches for indirect symbols.
	(_bfd_mips_elf_get_target_dtag): Handle DT_MIPS_PLTGOT and
	DT_MIPS_RWPLT.
	(_bfd_mips_elf_link_hash_table_create): Initialize the new
	mips_elf_link_hash_table fields.
	(_bfd_mips_vxworks_link_hash_table_create): Set
	use_plts_and_copy_relocs to TRUE.  Use TRUE rather than 1
	when setting is_vxworks.
	(_bfd_mips_elf_use_plts_and_copy_relocs): New function.
	(_bfd_mips_elf_final_link): Call mips_elf_create_la25_stub for
	each la25_stub.
	(_bfd_mips_elf_merge_private_bfd_data): Treat dynamic objects
	as PIC.  Generalize message about linking PIC and non-PIC.
	(_bfd_mips_elf_plt_sym_val, _bfd_mips_post_process_headers): New
	functions.
	* reloc.c: Update comment near BFD_RELOC_MIPS_JUMP_SLOT.
	* bfd-in2.h: Regenerated.

2008-08-08  Richard Sandiford  <rdsandiford@googlemail.com>
	    Daniel Jacobowitz  <dan@codesourcery.com>
	    Catherine Moore  <clm@codesourcery.com>
	    Mark Shinwell  <shinwell@codesourcery.com>

	* readelf.c (get_mips_symbol_other): Handle STO_MIPS_PLT and
	STO_MIPS_PIC.
	(slurp_rela_relocs, slurp_rel_relocs): Handle MIPS ELF64 here.
	(dump_relocations, debug_apply_relocations): Don't handle it here.
	(get_mips_dynamic_type): Handle DT_MIPS_PLTGOT and DT_MIPS_RWPLT.
	(print_mips_pltgot_entry): New function.
	(process_mips_specific): Dump the PLT GOT.

2008-08-08  Richard Sandiford  <rdsandiford@googlemail.com>
	    Daniel Jacobowitz  <dan@codesourcery.com>

	* config/tc-mips.c (OPTION_CALL_NONPIC): New macro.
	(OPTION_NON_SHARED, OPTION_XGOT, OPTION_MABI, OPTION_32)
	(OPTION_N32, OPTION_64, OPTION_MDEBUG, OPTION_NO_MDEBUG)
	(OPTION_PDR, OPTION_NO_PDR, OPTION_MVXWORKS_PIC): Bump by 1.
	(md_longopts): Add -call_nonpic.
	(md_parse_option): Handle OPTION_CALL_NONPIC.
	(md_show_usage): Add -call_nonpic.

2008-08-08  Richard Sandiford  <rdsandiford@googlemail.com>

	* gas/mips/call-nonpic-1.s, gas/mips/call-nonpic-1.d: New test.
	* gas/mips/mips.exp: Run it.

2008-08-08  Richard Sandiford  <rdsandiford@googlemail.com>
	    Daniel Jacobowitz  <dan@codesourcery.com>
	    Catherine Moore  <clm@codesourcery.com>
	    Mark Shinwell  <shinwell@codesourcery.com>

	* mips.h (STO_MIPS_PLT, ELF_ST_IS_MIPS_PLT, ELF_ST_SET_MIPS_PLT)
	(STO_MIPS_PIC, DT_MIPS_PLTGOT, DT_MIPS_RWPLT): New macros.

2008-08-08  Richard Sandiford  <rdsandiford@googlemail.com>
	    Daniel Jacobowitz  <dan@codesourcery.com>

	* emulparams/elf32bmip.sh (GOT): Define, moving .got.plt to...
	(OTHER_RELRO_SECTIONS, OTHER_READWRITE_SECTIONS): ...one of these
	two variables.
	* emulparams/elf32bmipn32-defs.sh: Likewise.
	* emultempl/mipself.em: Include ldctor.h, elf/mips.h and elfxx-mips.h.
	(is_mips_elf): New macro.
	(stub_file, stub_bfd): New variables.
	(hook_stub_info): New structure.
	(hook_in_stub): New function.
	(mips_add_stub_section): Likewise.
	(mips_create_output_section_statements): Likewise.
	(mips_before_allocation): Likewise.
	(real_func): New variable.
	(mips_for_each_input_file_wrapper): New function.
	(mips_lang_for_each_input_file): Likewise.
	(lang_for_each_input_file): Define.
	(LDEMUL_BEFORE_ALLOCATION): Likewise.
	(LDEMUL_CREATE_OUTPUT_SECTION_STATEMENTS): Likewise.

2008-08-08  Richard Sandiford  <rdsandiford@googlemail.com>
	    Daniel Jacobowitz  <dan@codesourcery.com>

	* ld-mips-elf/mips16-pic-3a.s,
	ld-mips-elf/mips16-pic-3b.s,
	ld-mips-elf/mips16-pic-3.dd,
	ld-mips-elf/mips16-pic-3.gd,
	ld-mips-elf/mips16-pic-3.rd,
	ld-mips-elf/mips16-pic-3.inc,
	ld-mips-elf/pic-and-nonpic-1a.s,
	ld-mips-elf/pic-and-nonpic-1b.s,
	ld-mips-elf/pic-and-nonpic-1.ld,
	ld-mips-elf/pic-and-nonpic-1.dd,
	ld-mips-elf/pic-and-nonpic-1.nd,
	ld-mips-elf/pic-and-nonpic-1-rel.dd,
	ld-mips-elf/pic-and-nonpic-1-rel.nd,
	ld-mips-elf/pic-and-nonpic-2a.s,
	ld-mips-elf/pic-and-nonpic-2b.s,
	ld-mips-elf/pic-and-nonpic-2.d,
	ld-mips-elf/pic-and-nonpic-3a.s,
	ld-mips-elf/pic-and-nonpic-3a.ld,
	ld-mips-elf/pic-and-nonpic-3a.dd,
	ld-mips-elf/pic-and-nonpic-3a.gd,
	ld-mips-elf/pic-and-nonpic-3a.sd,
	ld-mips-elf/pic-and-nonpic-3b.s,
	ld-mips-elf/pic-and-nonpic-3b.ld,
	ld-mips-elf/pic-and-nonpic-3b.ad,
	ld-mips-elf/pic-and-nonpic-3b.dd,
	ld-mips-elf/pic-and-nonpic-3b.gd,
	ld-mips-elf/pic-and-nonpic-3b.nd,
	ld-mips-elf/pic-and-nonpic-3b.pd,
	ld-mips-elf/pic-and-nonpic-3b.rd,
	ld-mips-elf/pic-and-nonpic-3b.sd,
	ld-mips-elf/pic-and-nonpic-3-error.d,
	ld-mips-elf/pic-and-nonpic-4a.s,
	ld-mips-elf/pic-and-nonpic-4b.s,
	ld-mips-elf/pic-and-nonpic-4b.ld,
	ld-mips-elf/pic-and-nonpic-4b.ad,
	ld-mips-elf/pic-and-nonpic-4b.dd,
	ld-mips-elf/pic-and-nonpic-4b.gd,
	ld-mips-elf/pic-and-nonpic-4b.nd,
	ld-mips-elf/pic-and-nonpic-4b.rd,
	ld-mips-elf/pic-and-nonpic-4b.sd,
	ld-mips-elf/pic-and-nonpic-4-error.d,
	ld-mips-elf/pic-and-nonpic-5a.s,
	ld-mips-elf/pic-and-nonpic-5b.s,
	ld-mips-elf/pic-and-nonpic-5b.ld,
	ld-mips-elf/pic-and-nonpic-5b.ad,
	ld-mips-elf/pic-and-nonpic-5b.dd,
	ld-mips-elf/pic-and-nonpic-5b.gd,
	ld-mips-elf/pic-and-nonpic-5b.nd,
	ld-mips-elf/pic-and-nonpic-5b.rd,
	ld-mips-elf/pic-and-nonpic-5b.sd,
	ld-mips-elf/pic-and-nonpic-5b.pd,
	ld-mips-elf/pic-and-nonpic-6.ld,
	ld-mips-elf/pic-and-nonpic-6-o32a.s,
	ld-mips-elf/pic-and-nonpic-6-o32b.s,
	ld-mips-elf/pic-and-nonpic-6-o32c.s,
	ld-mips-elf/pic-and-nonpic-6-o32.ad,
	ld-mips-elf/pic-and-nonpic-6-o32.dd,
	ld-mips-elf/pic-and-nonpic-6-o32.gd,
	ld-mips-elf/pic-and-nonpic-6-o32.nd,
	ld-mips-elf/pic-and-nonpic-6-o32.pd,
	ld-mips-elf/pic-and-nonpic-6-o32.rd,
	ld-mips-elf/pic-and-nonpic-6-o32.sd,
	ld-mips-elf/pic-and-nonpic-6-n32a.s,
	ld-mips-elf/pic-and-nonpic-6-n32b.s,
	ld-mips-elf/pic-and-nonpic-6-n32c.s,
	ld-mips-elf/pic-and-nonpic-6-n32.ad,
	ld-mips-elf/pic-and-nonpic-6-n32.dd,
	ld-mips-elf/pic-and-nonpic-6-n32.gd,
	ld-mips-elf/pic-and-nonpic-6-n32.nd,
	ld-mips-elf/pic-and-nonpic-6-n32.pd,
	ld-mips-elf/pic-and-nonpic-6-n32.rd,
	ld-mips-elf/pic-and-nonpic-6-n32.sd,
	ld-mips-elf/pic-and-nonpic-6-n64a.s,
	ld-mips-elf/pic-and-nonpic-6-n64b.s,
	ld-mips-elf/pic-and-nonpic-6-n64c.s,
	ld-mips-elf/pic-and-nonpic-6-n64.ad,
	ld-mips-elf/pic-and-nonpic-6-n64.dd,
	ld-mips-elf/pic-and-nonpic-6-n64.gd,
	ld-mips-elf/pic-and-nonpic-6-n64.nd,
	ld-mips-elf/pic-and-nonpic-6-n64.pd,
	ld-mips-elf/pic-and-nonpic-6-n64.rd,
	ld-mips-elf/pic-and-nonpic-6-n64.sd: New tests.
	* ld-mips-elf/mips-elf.exp: Run them.
2008-08-08 19:24:49 +00:00
Alan Modra 4dd07732f2 * elf.c (bfd_elf_get_elf_syms): Don't leak memory on error.
* elflink.c (_bfd_elf_link_read_relocs): bfd_release on error.
	(elf_link_add_object_symbols): Don't leak memory on error.
	(bfd_elf_size_dynsym_hash_dynstr): Likewise.
	(elf_fixup_link_order): Free sections.
2008-08-08 08:00:14 +00:00
Alan Modra e052e70470 daily update 2008-08-08 00:00:06 +00:00
Richard Sandiford d35fd65983 bfd/
* elf-bfd.h (elf_backend_data): Add a "rela_plts_and_copies_p" field.
	* elfxx-target.h (elf_backend_rela_plts_and_copies_p): New macro.
	(elfNN_bed): Use it.
	* elf.c (_bfd_elf_get_synthetic_symtab): Use rela_plts_and_copies_p
	instead of default_use_rela_p to choose between ".rel.plt" and
	".rela.plt".
	* elflink.c (_bfd_elf_create_dynamic_sections): Use
	rela_plts_and_copies_p instead of default_use_rela_p to choose
	between ".rel.plt" and ".rela.plt", and between ".rel.bss" and
	".rela.bss".
2008-08-07 20:04:32 +00:00
Richard Sandiford d5eaccd71d bfd/
* elf-bfd.h (MIPS_ELF_TDATA): New elf_object_id.
	* elf32-mips.c (bfd_elf32_mkobject): Define.
	* elf64-mips.c (bfd_elf64_mkobject): Likewise.
	* elfn32-mips.c (bfd_elf32_mkobject): Likewise.
	* elfxx-mips.h (_bfd_mips_elf_mkobject): Declare.
	* elfxx-mips.c (is_mips_elf): New macro.
	(_bfd_mips_elf_mkobject): New function.
	(_bfd_mips_elf_final_link): Use is_mips_elf.
	(_bfd_mips_elf_merge_private_bfd_data): Likewise.
2008-08-07 20:03:25 +00:00
Richard Sandiford aff469fa8d bfd/
* elfxx-mips.c (mips_elf_record_relocs): Defer allocation of a
	global GOT entry when deferring allocation of dynamic relocations.
	(allocate_dynrelocs): When allocating deferred dynamic relocations,
	also do the deferred allocation of a GOT entry.
2008-08-07 20:01:38 +00:00
Richard Sandiford 23cc69b663 bfd/
* elfxx-mips.c (mips_got_info): Add a "reloc_only_gotno" field.
	(mips_elf_got_section): Delete.
	(mips_elf_sort_hash_table): Use g->reloc_only_gotno to decide
	how many reloc-only entries there are.
	(mips_elf_count_got_symbols): Adjust g->reloc_only_gotno as
	well as g->global_gotno.
	(mips_elf_make_got_per_bfd): Initialize reloc_only_gotno.
	(mips_elf_multi_got): Likewise.  Use gg->reloc_only_gotno
	rather than gg->assigned_gotno to store the number of
	reloc-only GOT entries.
	(mips_elf_create_got_section): Remove the MAYBE_EXCLUDE parameter.
	Initialize reloc_only_gotno.
	(mips_elf_calculate_relocation): Check htab->got_info instead of
	dynobj when deciding whether to call mips_elf_adjust_gp,
	(_bfd_mips_elf_create_dynamic_sections): Adjust the call
	to mips_elf_create_got_section.
	(mips_elf_record_relocs): Likewise.  Remove redundant
	"dynobj == NULL" code.  Do not use mips_elf_create_got_section
	or mips_elf_record_global_got_symbol for R_MIPS_32, R_MIPS_REL32
	and R_MIPS_64; limit global_got_area to GGA_RELOC_ONLY instead.
	(_bfd_mips_elf_finish_dynamic_symbol): Use htab->sgot instead
	of mips_elf_got_section.
	(_bfd_mips_vxworks_finish_dynamic_symbol): Likewise.
	(_bfd_mips_elf_finish_dynamic_sections): Likewise.
	Move the initial assignment of G to the block that uses it;
	it is used for an unrelated purpose later.

ld/testsuite/
	* ld-mips-elf/tls-hidden4.got, ld-mips-elf/tls-hidden4.r: We have
	removed an unused GOT entry that was allocated for the R_MIPS_32
	relocation against "undef", so adjust addresses down by 4 bytes.
	* ld-mips-elf/got-dump-1.d, ld-mips-elf/got-dump-2.d: We have
	changed the order of the GOT entries so that reloc-only ones
	come last.  "undef" is only referred to by dynamic relocations,
	so it now comes after "glob".
	* ld-mips-elf/mips16-pic-2.dd, ld-mips-elf/mips16-pic-2.gd,
	ld-mips-elf/mips16-pic-2.nd, ld-mips-elf/mips16-pic-2.rd: We have
	removed two unused local GOT entries that were originally created
	as global entries for the hidden symbols "used2" and "used3".
	"used4" and "used5" are only referred to by relocations, so they
	now come after "used6" and "used7".
2008-08-07 20:01:14 +00:00
Richard Sandiford d4596a51eb bfd/
* elfxx-mips.c (count_section_dynsyms): Move before the new first use.
	(mips_elf_sort_hash_table): Take the output bfd as a parameter.
	Remove the MAX_LOCAL parameter.  Exit early if there are no
	dynamic symbols, if there is no dynobj, or if there is no
	GOT section.  Use count_section_dynsyms instead of MAX_LOCAL.
	Assert == rather than <= when checking hsd.max_unref_got_dynindx.
	Also assert that g->global_gotno is right.
	(mips_elf_count_forced_local_got_symbols): Rename to...
	(mips_elf_count_got_symbols): ...and count global GOT entries too.
	Set the global_got_area of a forced-local GGA_RELOC_ONLY symbol
	to GGA_NONE.
	(mips_elf_multi_got): Don't sort the symbol table.
	(mips_elf_lay_out_got): Likewise.  Use mips_elf_count_got_symbols
	to count the number of global GOT entries.
	(_bfd_mips_elf_final_link): Unconditionally call
	mips_elf_sort_hash_table.
2008-08-07 19:59:16 +00:00
Richard Sandiford 634835aefb bfd/
* elfxx-mips.c (GGA_NORMAL, GGA_RELOC_ONLY, GGA_NONE): New macros.
	(mips_elf_link_hash_entry): Add a "global_got_area" field.
	(mips_elf_link_hash_newfunc): Initialize it.
	(mips_elf_sort_hash_table_f): Use h->global_got_area instead of
	h->root.got.offset.  Do not handle forced_local symbols specially.
	(mips_elf_record_global_got_symbol): Set h->global_got_area
	instead of h->root.got.offset.
	(mips_elf_recreate_got): Assert that h->global_got_area == GGA_NONE
	for indirect and warning symbols.
	(mips_elf_count_forced_local_got_symbols): Change the argument
	from a "elf_link_hash_entry" to "mips_elf_link_hash_entry".
	Use and set h->global_got_area instead of h->root.got.offset.
	Set it to GGA_NONE for all forced-local symbols.
	(mips_elf_set_global_got_offset): Set h->global_got_area
	instead of h->root.got.offset.  Use g->global_got_area instead
	of a combination of dynindx, forced_local and tls_type.
	(mips_elf_multi_got): Remove disabled code.  Pass GGA_* values to
	mips_elf_set_global_got_offset.
	(mips_elf_lay_out_got): Use mips_elf_link_hash_traverse instead
	of elf_link_hash_traverse.
	(_bfd_mips_elf_copy_indirect_symbol): Copy the indirect symbol's
	global_got_area to the direct symbol if the latter's value is higher.
	Set the indirect symbol's area to GGA_NONE.

ld/testsuite/
	* ld-mips-elf/got-vers-1a.s, ld-mips-elf/got-vers-1b.s,
	ld-mips-elf/got-vers-1.ver, ld-mips-elf/got-vers-1.dd,
	ld-mips-elf/got-vers-1.sd, ld-mips-elf/got-vers-1.rd: New tests.
	* ld-mips-elf/mips-elf.exp: Run them.
2008-08-07 19:58:38 +00:00
Richard Sandiford 33bb52fb4e bfd/
* elf32-mips.c (elf_backend_hide_symbol): Delete.
	* elfn32-mips.c (elf_backend_hide_symbol): Likewise.
	* elf64-mips.c (elf_backend_hide_symbol): Likewise.
	* elfxx-mips.h (elf_backend_hide_symbol): Likewise.
	* elfxx-mips.c (mips_elf_link_hash_entry): Remove "forced_local"
	and add "needs_lazy_stub".
	(mips_elf_link_hash_newfunc): Update accordingly.
	(mips_elf_link_hash_table): Remove "computed_got_sizes" and
	add "lazy_stub_count".
	(_bfd_mips_elf_link_hash_table_create): Update accordingly.
	(mips_elf_output_extsym): Use hd->needs_lazy_stub to detect
	cases where a lazy stub is being used.
	(mips_elf_sort_hash_table_f): Use h->root.forced_local instead
	of h->forced_local.
	(mips_elf_record_global_got_symbol): Use _bfd_elf_link_hash_hide_symbol
	instead of _bfd_mips_elf_hide_symbol.  Do not increment local_gotno
	here.
	(mips_elf_allocate_dynamic_relocations): Move before new first use.
	(mips_elf_check_recreate_got, mips_elf_recreate_got): New functions.
	(mips_elf_resolve_final_got_entries): Move earlier in file.  Make at
	most two passes over the hash table.  Use mips_elf_check_recreate_got
	to see if there are any indirect or warning entries and
	mips_elf_recreate_got to create a new GOT without them.
	Return a boolean success value.
	(mips_elf_count_forced_local_got_entries): New function.
	(mips_elf_make_got_per_bfd): Check h->root.forced_local instead of
	h->forced_local.
	(mips_elf_set_global_got_offset): Likewise.
	(mips_elf_set_no_stub): Replace with...
	(mips_elf_forbid_lazy_stubs): ...this new function.
	(mips_elf_resolve_final_got_entry): Delete.
	(mips_elf_multi_got): Fix formatting.  Use mips_elf_forbid_lazy_stubs
	instead of mips_elf_set_no_stub.  Move the code that sets
	global offsets and allocates dynamic relocations from the main
	_bfd_mips_elf_size_dynamic_sections loop to here.
	(_bfd_mips_elf_adjust_dynamic_symbol): Do not allocate room in
	.MIPS.stubs here; just set hmips->needs_lazy_stub and increment
	htab->lazy_stub_count.
	(_bfd_mips_elf_always_size_sections): Move the stub-estimation
	code to mips_elf_estimate_stub_size and the GOT-sizing code to
	mips_elf_lay_out_got.  Do not call these functions here.
	(mips_elf_estimate_stub_size): New function, split
	out from _bfd_mips_elf_always_size_sections.  Call
	mips_elf_resolve_final_got_entries earlier.  Count the number
	of forced-local entries.  Do not add stub sizes to loadable_size;
	after this patch, the stub sizes are already included in the main
	estimate.  Allocate dynamic relocations here rather than in the
	main _bfd_mips_elf_size_dynamic_sections loop.
	(mips_elf_estimate_stub_size): New function, split out from
	_bfd_mips_elf_always_size_sections.
	(mips_elf_allocate_lazy_stub): New function.
	(mips_elf_lay_out_lazy_stubs): Likewise.
	(_bfd_mips_elf_size_dynamic_sections): Call mips_elf_estimate_stub_size,
	mips_elf_lay_out_got and mips_elf_lay_out_lazy_stubs.  Do not handle
	the allocation of sreldyn specially.
	(_bfd_mips_elf_hide_symbol): Delete.

ld/testsuite/
	* ld-mips-elf/tlsdyn-o32-2.got, ld-mips-elf/tlsdyn-o32-3.got,
	ld-mips-elf/tlsdyn-o32-2.d, ld-mips-elf/tlsdyn-o32-3.d: Change the
	GOT layout as follows:

	         BEFORE                  AFTER
	   +0x08 %call16(__tls_get_addr) %call16(__tls_get_addr)
	   +0x0c %tlsldm(tlsbin_ld)      %gottprel(tlsvar_ie)
	   +0x10   "  "                  %tlsgd(tlsvar_gd)
	   +0x14 %tlsgd(tlsvar_gd)          "  "
	   +0x18   "  "                  %tlsgd(tlsbin_gd)
	   +0x1c %gottprel(tlsvar_ie)       "  "
	   +0x20 %tlsgd(tlsbin_gd)       %tlsldm(tlsbin_ld)
	   +0x24   "  "                     "  "
	   +0x28 %gottprel(tlsbin_ie)    %gottprel(tlsbin_ie)
2008-08-07 19:57:28 +00:00
Richard Sandiford 63897e2cf0 bfd/
* elfxx-mips.c (allocate_dynrelocs): Ignore indirect and warning
	symbols.

ld/testsuite/
	* ld-mips-elf/reloc-estimate-1.d, ld-mips-elf/reloc-estimate-1.ld,
	ld-mips-elf/reloc-estimate-1a.s, ld-mips-elf/reloc-estimate-1b.s:
	New test.
	* ld-mips-elf/mips-elf.exp: Run it.
2008-08-07 19:50:05 +00:00
Alan Modra 30ad617ab2 daily update 2008-08-07 00:00:05 +00:00
Richard Sandiford 71782a7597 bfd/
* elfxx-mips.c (mips_elf_link_hash_entry): Move bfd_boolean
	fields to the end of the structure and make them single-bit
	bitfields.
	(mips_elf_link_hash_newfunc): Make the initialization statements
	follow the new field order.
2008-08-06 19:53:30 +00:00
Richard Sandiford a8028dd09a bfd/
* elfxx-mips.c (_mips_elf_section_data): Remove the "u.got_info" field.
	(mips_elf_link_hash_table): Add "sgot" and "got_info" fields.
	(_bfd_mips_elf_link_hash_table_create): Initialize them.
	(mips_elf_got_section): Always apply the !maybe_excluded behavior.
	(mips_elf_got_info): Delete.
	(mips_elf_initialize_tls_slots): Remove the DYNOBJ local variable.
	Adjust the call to mips_elf_got_section.
	(mips_elf_local_got_index): Don't call mips_elf_got_info.
	Update the call to mips_elf_create_local_got_entry.
	Use htab->got_info.
	(mips_elf_global_got_index): Don't call mips_elf_got_info;
	use htab->got_info and htab->sgot instead.
	(mips_elf_got_page): Don't call mips_elf_got_info.  Update the
	call to mips_elf_create_local_got_entry.
	(mips_elf_got16_entry): Likewise.
	(mips_elf_got_offset_from_index): Replace with DYNOBJ parameter
	with an INFO parameter.  Don't call mips_elf_got_info; use htab->sgot
	and htab->got_info instead.
	(mips_elf_create_local_got_entry): Remove the GG and SGOT parameters.
	Use htab->sgot and htab->got_info.
	(mips_elf_sort_hash_table): Remove the DYNOBJ local variable.
	Don't call mips_elf_got_info; use htab->got_info instead.
	(mips_elf_record_global_got_symbol): Turn G from a paramter to
	a local variable and read it from htab->got_info.
	(mips_elf_record_local_got_symbol): Replace the G parameter with
	an INFO parameter.  Make G a local variable and read it from
	htab->got_info instead.
	(mips_elf_record_got_page_entry): Likewise.
	(mips_elf_multi_got): Remove the G parameter and make it a local
	variable instead.  Read it from htab->got_info.
	(mips_elf_create_got_section): Cache the GOT section in htab->sgot.
	Store the GOT information in htab->got_info.
	(mips_elf_calculate_relocation): Don't call mips_elf_got_section
	and mips_elf_got_info; use htab->sgot and htab->got_info instead.
	Adjust the calls to mips_elf_got_offset_from_index and
	mips_elf_adjust_gp.
	(_bfd_mips_elf_check_relocs): Remove the G and SGOT local variables.
	Adjust the calls to mips_elf_record_local_got_symbol,
	mips_elf_record_global_got_symbol and mips_elf_record_got_page_entry.
	Use htab->sgot.
	(_bfd_mips_elf_always_size_sections): Remove the DYNOBJ local variable.
	Don't call mips_elf_got_info; use htab->sgot and htab->got_info instead.
	Update the call to mips_elf_multi_got.
	(_bfd_mips_elf_size_dynamic_sections): Don't call mips_elf_got_info;
	use htab->got_info instead.
	(_bfd_mips_elf_finish_dynamic_symbol): Update the call to
	mips_elf_got_section.  Get the got_info from the hash table
	rather than the GOT section.
	(_bfd_mips_vxworks_finish_dynamic_symbol): Likewise.
	(_bfd_mips_elf_finish_dynamic_sections): Likewise.
	(_bfd_mips_elf_hide_symbol): Don't call mips_elf_got_section;
	get the got_info from the hash table instead.  Remove the GOT
	local variable.
	(_bfd_mips_elf_final_link): Likewise.  Also remove the DYNOBJ
	local variable.
2008-08-06 19:51:29 +00:00
Richard Sandiford 4e41d0d7c3 bfd/
* elfxx-mips.c (mips_elf_link_hash_table): Add an "sstubs" field.
	(_bfd_mips_elf_create_dynamic_sections): Use it to cache the stubs
	section.  Don't check whether the section already exists.
	(_bfd_mips_elf_adjust_dynamic_symbol): Use htab->sstubs.
	(_bfd_mips_elf_finish_dynamic_symbol): Likewise.
	(_bfd_mips_elf_finish_dynamic_sections): Likewise.
	(_bfd_mips_elf_size_dynamic_sections): Likewise.  Don't add the
	dummy stub to an empty section.
	(_bfd_mips_elf_link_hash_table_create): Initialize the "sstubs" field.

ld/testsuite/
	* ld-mips-elf/tls-hidden3.ld: Remove the unused .MIPS.stubs section.
	Keep the text start address the same.
	* ld-mips-elf/tls-multi-got-1.got: We have removed a .MIPS.stubs
	section that contained only a 16-byte dummy stub.  Subtract 16
	from addresses to account for the change.
	* ld-mips-elf/tls-multi-got-1.r: Likewise.  Adjust MIPS_UNREFEXTNO
	to account the removed section symbol.
	* ld-mips-elf/tlsdyn-o32-1.d: We have deleted a .MIPS.stubs
	section that contained only a 16-byte dummy stub.  Remove it
	from the disassembly.
	* ld-mips-elf/tlsdyn-o32-2.d: Likewise.
	* ld-mips-elf/tlsdyn-o32-3.d: Likewise.
	* ld-mips-elf/tlsdyn-o32.d: Likewise.
	* ld-mips-elf/relax-jalr-n32-shared.d: Likewise.
	* ld-mips-elf/relax-jalr-n64-shared.d: Likewise.
2008-08-06 19:49:06 +00:00
Richard Sandiford 738e53487d bfd/
* reloc.c (BFD_RELOC_MIPS16_GOT16, BFD_RELOC_MIPS16_CALL16): Declare.
	* libbfd.h, bfd-in2.h: Regenerate.
	* elf32-mips.c (elf_mips16_howto_table_rel): Fill in reserved
	R_MIPS16_GOT16 and R_MIPS16_CALL16 entries.
	(mips16_reloc_map): Add mappings.
	* elf64-mips.c (mips16_elf64_howto_table_rel): Fill in reserved
	R_MIPS16_GOT16 and R_MIPS16_CALL16 entries.
	(mips16_elf64_howto_table_rela): Likewise.
	(mips16_reloc_map): Add mappings.
	* elfn32-mips.c (elf_mips16_howto_table_rel): Fill in reserved
	R_MIPS16_GOT16 and R_MIPS16_CALL16 entries.
	(elf_mips16_howto_table_rela): Likewise.
	(mips16_reloc_map): Add mappings.
	* elfxx-mips.c (mips_elf_create_shadow_symbol): New function.
	(section_allows_mips16_refs_p): Likewise.
	(mips16_stub_symndx): Likewise.
	(mips_elf_check_mips16_stubs): Treat the data argument as a
	bfd_link_info.  Mark every dynamic symbol as needing MIPS16 stubs
	and create a "shadow" symbol for the original MIPS16 definition.
	(mips16_reloc_p, got16_reloc_p, call16_reloc_p, hi16_reloc_p)
	(lo16_reloc_p, mips16_call_reloc_p): New functions.
	(_bfd_mips16_elf_reloc_unshuffle): Use mips16_reloc_p to generalize
	relocation checks.
	(_bfd_mips16_elf_reloc_shuffle): Likewise.
	(_bfd_mips_elf_lo16_reloc): Handle R_MIPS16_GOT16.
	(mips_elf_got16_entry): Add comment.
	(mips_elf_calculate_relocation): Use hi16_reloc_p,
	lo16_reloc_p, mips16_call_reloc_p, call16_reloc_p and got16_reloc_p
	to generalize relocation checks.  Use section_allows_mips16_refs_p
	instead of mips16_stub_section_p.   Handle R_MIPS16_CALL16 and
	R_MIPS16_GOT16, allowing the former to refer directly to a
	MIPS16 function if its stub is not needed.
	(mips16_stub_section_p): Delete.
	(_bfd_mips_elf_symbol_processing): Convert odd-valued function
	symbols into even MIPS16 symbols.
	(mips_elf_add_lo16_rel_addend): Use mips16_reloc_p to generalize
	a relocation check.
	(_bfd_mips_elf_check_relocs): Calculate "bed" and "rel_end"
	earlier in the function.  Use mips16_stub_symndx to identify
	the target function.  Avoid out-of-bounds accesses when the
	stub has no relocations; report an error instead.  Use
	section_allows_mips16_refs_p instead of mips16_stub_section_p.
	Use mips16_call_reloc_p and got16_reloc_p to generalize relocation
	checks.  Handle R_MIPS16_CALL16 and R_MIPS16_GOT16.  Don't create
	dynamic relocations for absolute references to __gnu_local_gp.
	(_bfd_mips_elf_always_size_sections): Pass a bfd_link_info as
	the argument to mips_elf_check_mips16_stubs.  Generalize comment.
	(_bfd_mips_elf_relocate_section): Use hi16_reloc_p and got16_reloc_p
	to generalize relocation checks.
	(_bfd_mips_elf_finish_dynamic_symbol): If a dynamic MIPS16 function
	symbol has a non-MIPS16 stub, redirect the symbol to the stub.
	Fix an overly long line.  Don't give dynamic symbols type STO_MIPS16.
	(_bfd_mips_elf_gc_sweep_hook): Handle R_MIPS16_CALL16 and
	R_MIPS16_GOT16.

gas/
	* config/tc-mips.c (mips16_reloc_p, got16_reloc_p, hi16_reloc_p)
	(lo16_reloc_p): New functions.
	(reloc_needs_lo_p): Use hi16_reloc_p and got16_reloc_p to
	generalize relocation checks.
	(matching_lo_reloc): New function.
	(fixup_has_matching_lo_p): Use it.
	(mips16_mark_labels): Don't clobber a symbol's visibility.
	(append_insn): Use hi16_reloc_p and lo16_reloc_p.
	(mips16_ip): Handle BFD_RELOC_MIPS16_GOT16 and BFD_RELOC_MIPS16_CALL16.
	(md_apply_fix): Likewise.
	(mips16_percent_op): Add %got and %call16.
	(mips_frob_file): Use got16_reloc_p to generalize relocation checks.
	Use matching_lo_reloc.
	(mips_force_relocation): Use hi16_reloc_p and lo16_reloc_p to
	generalize relocation checks.
	(mips_fix_adjustable): Use lo16_reloc_p to generalize relocation
	checks.

gas/testsuite/
	* gas/mips/elf-rel8-mips16.d, gas/mips/elf-rel8-mips16.s,
	* gas/mips/elf-rel9-mips16.d, gas/mips/elf-rel9-mips16.s,
	* gas/mips/elf-rel13-mips16.d, gas/mips/elf-rel13-mips16.s: New tests.
	* gas/mips/mips.exp: Run them.

ld/testsuite/
	* ld-mips-elf/mips16-local-stubs-1.d: Remove stub_for_h3,
	which was only referenced by the .pdr section, and was not
	actually needed by code.
	* ld-mips-elf/mips16-intermix.d: Remove unused static function stubs.
	* ld-mips-elf/mips16-pic-1a.s,
	ld-mips-elf/mips16-pic-1b.s,
	ld-mips-elf/mips16-pic-1-dummy.s,
	ld-mips-elf/mips16-pic-1.dd,
	ld-mips-elf/mips16-pic-1.gd,
	ld-mips-elf/mips16-pic-1.inc,
	ld-mips-elf/mips16-pic-1.ld,
	ld-mips-elf/mips16-pic-2a.s,
	ld-mips-elf/mips16-pic-2b.s,
	ld-mips-elf/mips16-pic-2.ad,
	ld-mips-elf/mips16-pic-2.dd,
	ld-mips-elf/mips16-pic-2.gd,
	ld-mips-elf/mips16-pic-2.nd,
	ld-mips-elf/mips16-pic-2.rd: New tests.
	* ld-mips-elf/mips-elf.exp: Run them.
2008-08-06 19:44:47 +00:00
Alan Modra e7d92e2ec6 * elf32-ppc.c (ppc_elf_relax_section): Clear R_PPC_PLTREL24 addend.
(ppc_elf_relocate_section <R_PPC_RELAX32_PLT>): Don't bother here.
2008-08-06 07:29:31 +00:00
Alan Modra d3ae097c44 add pr number 2008-08-06 00:45:10 +00:00
Alan Modra 22e47f7e1e daily update 2008-08-06 00:00:06 +00:00
Alan Modra 46f2f11d4c * coffcode.h (coff_slurp_line_table): bfd_alloc lineno_cache first
so that we don't inadvertently free it.  Use bfd_alloc for sort
	arrays, and memcpy sorted line table.
2008-08-05 03:03:46 +00:00
Alan Modra 75fad9c700 daily update 2008-08-05 00:00:07 +00:00
Alan Modra e5e6a5ff6e * elf32-spu.c (spu_elf_auto_overlay): Use the maximum possible
if --fixed-space request is too large.
2008-08-04 13:01:42 +00:00