Commit Graph

2085 Commits

Author SHA1 Message Date
Mark Mitchell
5a44662b54 * elf32-mips.c (_bfd_mips_elf_relocate_section): Handle R_MIPS_26
and R_MIPS16_26 relocations correctly when relocating.
	(_bfd_mips_elf_check_relocs): Don't assume that R_MIPS_CALL_HI16
	and R_MIPS_CALL_LO16 are for global symbols.
1999-08-03 06:04:21 +00:00
Richard Henderson
1fa0ddb30b Jakub Jelinek <jj@ultra.linux.cz>
* elflink.h (elf_bfd_final_link): Copy the whole isym, not just
        some fields.
        * elf64-sparc.c (sparc64_elf_output_arch_syms): Declare used
        variables and initialize them.
1999-08-02 22:31:18 +00:00
Mark Mitchell
7a12753dad Fix typo 1999-08-01 22:45:06 +00:00
Mark Mitchell
8b237a8965 * elf32-mips.c (_bfd_mips_elf_final_link): Handle the case where
there are no global symbols requiring GOT entries.
	(_bfd_mips_elf_size_dynamic_sections): Likewise.
	(_bfd_mips_elf_finish_dynamic_symbol): Likewise.
	(_bfd_mips_elf_finish_dynamic_sections): Likewise.
1999-08-01 22:38:53 +00:00
Mark Mitchell
972875741c * elf32-mips.c (mips_elf_calculate_relocation): Undefined weak
symbols are considered to have the value zero.
	(_bfd_mips_elf_relocate_section): Don't try to perform a
	relocation for an undefined symbol.
	(_bfd_mips_elf_check_relocs): Allocate locate GOT space for local
	GOT16 relocations.
1999-08-01 20:58:19 +00:00
Richard Henderson
a11c78e7dd Jakub Jelinek <jj@ultra.linux.cz>
* elf64-sparc.c (sparc64_elf_build_plt): Cosmetic change - ABI
        wants ba,a,pt %xcc instead of %icc.
        Emit correct .PLT0-(.PLTN+4) initial value into the pointer slots
        of large PLT entries.
        (sparc64_elf_plt_ptr_offset): Fix calculation.
        (sparc64_elf_finish_dynamic_symbol): Negative value of R_SPARC_JMP_SLOT
        addend should be relative to load address, not .plt section start.
        (sparc64_elf_size_info): Sparc64 uses 32bit .hash entries.
1999-07-30 21:42:21 +00:00
Richard Henderson
587ff49e9a Jakub Jelinek <jj@ultra.linux.cz>
* elf-bfd.h (struct elf_backend_data): Add
        print_symbol_all and output_arch_syms backend methods.
        * elfxx-target.h: Likewise.
        * elf64-sparc.c (sparc64_elf_bfd_link_hash_table_create,
        sparc64_elf_add_symbol_hook, sparc64_elf_output_arch_syms,
        sparc64_elf_get_symbol_type, sparc64_elf_symbol_processing): New
        functions.
        (sparc64_elf_size_dynamic_sections): Leave space for STT_REGISTER
        symbols in .dynsym, add their names into .dynstr. Put those symbols
        into dynlocal.
        (sparc64_elf_finish_dynamic_sections): Fix up DT_SPARC_REGISTER
        pointers to STT_REGISTER symbols in dynsym section.
        (sparc64_elf_print_symbol_all): New function.
        * elf.c (bfd_elf_print_symbol): Allow special backend symbol
        printing using the print_symbol_all hook.
1999-07-30 21:34:44 +00:00
Catherine Moore
d512aa072e Correctly handle Vtentry relocs. 1999-07-30 15:09:54 +00:00
Richard Henderson
441d6d7953 * elf32-mips.c (_bfd_mips_elf_final_link): Only re-sort dynsyms if
dynamic_sections_created.
1999-07-29 22:20:26 +00:00
Richard Henderson
c9b3cbf33c * elf32-mips.c (mips_info_to_howto_rel): Split out switch to ...
(mips_rtype_to_howto): ... new function.
        (_bfd_mips_elf_relocate_section): Use it.
1999-07-29 21:39:01 +00:00
Mark Mitchell
b89db8f2f0 * elf32-mips.c (_bfd_mips_elf_relocate_section): Fix typo. 1999-07-28 08:19:34 +00:00
Nick Clifton
f81112823f Change to strip out only symbols that start with LOCAL_LABEL_PREFIX followed
by 'L'.
1999-07-27 14:45:44 +00:00
Ian Lance Taylor
7fd9c19135 1999-07-23 Donn Terry <donn@interix.com>
* libcoff-in.h (coff_link_hash_entry): Add coff_link_hash_flags
	field, and define COFF_LINK_HASH_PE_SECTION_SYMBOL.
	* cofflink.c (coff_link_add_symbols): If PE, handle section
	symbols specially.
	* libcoff.h: Rebuild.
1999-07-24 03:16:50 +00:00
Ian Lance Taylor
7d923127c0 1999-07-23 Donn Terry <donn@interix.com>
* config.bfd (i[3456]86-*-interix*): New target.
1999-07-24 02:35:30 +00:00
Ian Lance Taylor
242eabea02 1999-07-21 Mark Elbrecht <snowball3@bigfoot.com>
* coffcode.h (styp_to_sec_flags): If COFF_LONG_SECTION_NAMES and
	COFF_SUPPORT_GNU_LINKONCE, mark sections whose names begin with
	.gnu.linkonce with SEC_LINKONCE and SEC_LINK_DUPLICATES_DISCARD.
	* coff-go32.c: (COFF_LONG_SECTION_NAMES): Define.
	(COFF_SUPPORT_GNU_LINKONCE): Define.
	* coff-stgo32.c: (COFF_LONG_SECTION_NAMES): Define.
	(COFF_SUPPORT_GNU_LINKONCE): Define.
1999-07-22 01:39:23 +00:00
Ian Lance Taylor
980e4bf7fe From Mark Elbrecht:
* configure.bat: Remove; obsolete.
1999-07-22 01:07:15 +00:00
Ian Lance Taylor
9c8ac5a997 From Mark Elbrecht:
* makefile.dos: Remove; obsolete.
1999-07-22 00:55:12 +00:00
Ian Lance Taylor
b23b8e6e55 rebuild 1999-07-22 00:51:51 +00:00
Ian Lance Taylor
957ccf4406 1999-07-21 H.J. Lu <hjl@gnu.org>
* config.bfd (i[3456]86-*-vxworks*): Add targ_underscore=yes.
1999-07-22 00:51:11 +00:00
Ian Lance Taylor
75987f837d 1999-07-21 Philippe De Muyter <phdm@macqel.be>
* cofflink.c (_bfd_coff_generic_relocate_section): Issue an error
	message	and fail if a symbol index is out of range.
1999-07-22 00:29:35 +00:00
Ian Lance Taylor
2841ecd078 * elf32-mips.c (mips_elf_calculate_relocation): Get the GP value
when looking at a R_MIPS_GOT16 relocation.
1999-07-21 23:32:29 +00:00
Nick Clifton
8a70eff3a2 Use CREATE_BIG_COFF_TARGET_VEC 1999-07-20 08:52:54 +00:00
Mark Mitchell
f1a5f37efe Fix typo in last change. 1999-07-19 20:11:22 +00:00
Mark Mitchell
0db63c1868 * elf32-mips.c (_bfd_mips_elf_final_link): Restore setting of GP
removed in previous change.
	(_bfd_mips_elf_relocate_section): Adjust GP relative relocations
 	in relocateable output.
1999-07-19 20:06:24 +00:00
Ian Lance Taylor
272dc76f04 * coff-m88k.c (m88kbcs_vec): Initialize new field of bfd_target
structure.
1999-07-19 19:22:02 +00:00
Ian Lance Taylor
accc7f6940 * elflink.h (elf_merge_symbol): Do merge symbols from the same BFD
if they appear to be specially created by the linker.
1999-07-19 19:08:33 +00:00
Nick Clifton
c3c89269f8 Add new field to bfd_target structure.
Initialise this field for all known bfd targets.
Add new search function to targets.c
1999-07-19 14:55:16 +00:00
Andreas Schwab
a9602746fa * elflink.h (elf_bfd_final_link): Remove unused variables rel_hash
and rel_hdr.
1999-07-19 09:11:14 +00:00
Mark Mitchell
31367b81b7 * elflink.h (elf_link_adjust_relocs): New function.
(elf_bfd_final_link): Use it.
	(elf_link_input_bfd): Deal with the fact that there can be
	two relocation sections for a single section.
	(elf_reloc_link_order): Likewise.

	* elf32-mips.c (_bfd_mips_elf_final_link): Don't set GP for
	a relocateable object.
	(_bfd_mips_elf_relocate_section): Handle relocateable links.
1999-07-18 06:31:29 +00:00
Richard Henderson
f65054f7be Jakub Jelinek <jj@ultra.linux.cz>
* elf64-sparc.c (sparc64_elf_info_to_howto): Use ELF64_R_TYPE_ID.
        (sparc64_elf_get_reloc_upper_bound,
        sparc64_elf_get_dynamic_reloc_upper_bound,
        sparc64_elf_slurp_one_reloc_table, sparc64_elf_slurp_reloc_table,
        sparc64_elf_canonicalize_dynamic_reloc, sparc64_elf_write_relocs):
        New functions.
        (sparc64_elf_check_relocs, sparc64_elf_relocate_section): Use
        ELF64_R_TYPE_ID/DATA where appropriate.
1999-07-16 21:28:40 +00:00
Richard Henderson
d6bcbdc1fe Jakub Jelinek <jj@ultra.linux.cz>
* elf64-sparc.c (sparc64_elf_size_dynamic_sections): Remove
        DT_SPARC_PLTFMT.
1999-07-16 21:25:28 +00:00
Ian Lance Taylor
6387d6028b * elf32-mips.c (mips_elf_local_relocation_p): New static
function.
	(mips_elf_next_lo16_addend): Call bfd_set_error on failure.
	(mips_elf_calculate_relocation): Use mips_elf_local_relocation_p.
	Always set *require_jalxp.
	(mips_elf_stub_section_p): Mark abfd parameter as unused.
	(_bfd_mips_elf_relocate_section): Only look for LO16 following
	GOT16 if the GOT16 is against a local symbol.  Don't return false
	for an undefined symbol.  If there is an overflow, assert that we
	have a name.
1999-07-16 19:09:22 +00:00
Andreas Schwab
318da145ed * elflink.h (elf_link_record_local_dynamic_symbol): Remove unused
variables `link' and `elfsec'.
	(elf_bfd_final_link): Remove unused variable `os'.
1999-07-16 08:10:27 +00:00
Mark Mitchell
435394bff7 * elf32-mips.c (_bfd_mips_elf_modify_segment_map): Don't require
a PT_PHDR program headers.
	(_bfd_mips_elf_final_link): Don't assume there are going to be
	section symbols when we're not building a shared object.
	(_bfd_mips_elf_check_relocs): Make sure we have a GOT when
	we need one.
1999-07-15 16:57:57 +00:00
Ian Lance Taylor
ac352105e1 1999-07-15 J.T. Conklin <jtc@redback.com>
* config.bfd (i[3456]86-*-vxworks*): New target.
1999-07-15 14:38:23 +00:00
Mark Mitchell
197b9ca0f9 * elf32-mips.c (mips_elf_stub_section_p): New function.
(mips_elf_calculate_relocation): Handle MIPS16 stub functions.
	(mips_elf_relocate_section): Adjust calling sequence for
	mips_elf_calculate_relocation and mips_elf_perform_relocation.
	(mips_elf_perform_relocation): Turn `jal' into `jalx' where
	required.
1999-07-15 13:12:02 +00:00
Ian Lance Taylor
3a6ae6163b * configure.in: Bump version number to 2.9.5.
* configure: Rebuild.
1999-07-15 11:48:14 +00:00
Jeff Law
6e2bf930a0 è
* elf-hppa.h (_bfd_elf_hppa_gen_reloc_type, case R_HPPA): Handle
        64bit format.
        (_bfd_elf_hppa_gen_reloc_type, case R_GOTOFF): Use base reloc type
        to derive final type instead of hardwiring a selection.
1999-07-15 02:06:03 +00:00
Jeff Law
1b83fcb388 * elf-hppa.h (_bfd_elf_hppa_gen_reloc_type, case R_HPPA): Handle
64bit format.
        (_bfd_elf_hppa_gen_reloc_type, case R_GOTOFF): Use base reloc type
        to derive final type instead of hardwiring a selection.
1999-07-15 02:06:02 +00:00
Mark Mitchell
6296902ea5 * elf32-mips.c (mips_elf_obtain_contents): Swap 16-bit halves of
things relocated by R_MIPS16_GPREL.
	(mips_elf_perform_relocation): Likewise.
1999-07-14 19:00:32 +00:00
Richard Henderson
2ac8ce5fe0 * elfxx-target.h (elfNN_bed): Add elf_backend_want_dynbss. 1999-07-14 16:14:49 +00:00
Richard Henderson
b3be9b46c2 * elf32-mips.c (struct mips_got_info): Add global_gotno.
(_bfd_mips_elf_size_dynamic_sections): Set it.
        (_bfd_mips_elf_final_link): Re-sort; verify the got did not grow.
        (mips_elf_sort_hash_table): Set max_non_got_dynindex based off
        new argument max_local.
1999-07-14 14:23:13 +00:00
Mark Mitchell
1e52e2ee34 * elf32-mips.c (mips_elf_obtain_contents): Swap the 16-bit
subwords when handling an R_MIPS16_26 relocation.
	(mips_elf_perform_relocation): Don't be paranoid abour right-shift
	semantics.
1999-07-14 11:46:04 +00:00
Mark Mitchell
b7233c24e1 * elf32-mips.c (elf_mips16_gprel_howto): Adjust src_mask and
dst_mask to match reality.
	(_bfd_mips_elf_calculate_relocation): Handle R_MIPS16_GPREL.
	(mips_elf_obtain_contents): Use bfd_get.
	(mips_elf_perform_relocation): Handle R_MIPS16_GPREL.
	(mips_elf_relocate_section): Likewise.
1999-07-14 09:45:46 +00:00
Mark Mitchell
81edd86dd1 * dwarf2.c (read_attribute): Support DW_FORM_ref8.
* elf32-mips.c (mips_elf_link_hash_entry): Change mips_32_relocs
	to possibly_dynamic_relocs.  Adjust usage throughout code.
	(elf_mips_howto_table): Handle R_MIPS_64 correctly.
	(elf_mips_ctor64_howto): Likewise.
	(mips_elf_calculate_relocation): Handle R_MIPS_64 like R_MIPS_32.
	Adjust indentation.
	(mips_elf_relocate_section): Handle R_MIPS_64 in 32-bit mode.
	(_bfd_mips_elf_check_relocs): Handle R_MIPS_64 like R_MIPS_32.
	Use MIPS_ELF_GOT_SIZE to calculate the size of GOT entries.
	* elf64-mips.c (elf_backend_may_use_rel_p): Define.
1999-07-14 08:49:40 +00:00
Mark Mitchell
e53bd91b0f * elf32-mips.c (mips_elf_calculate_relocation): Handle R_MIPS16_26.
(mips_elf_relocate_section): Adjust calling sequence for
	mips_elf_perform_relocation.
	(mips_elf_perform_relocation): Take additional argument.  Handle
	R_MIPS16_26.  Use bfd_put for convenience.
1999-07-13 23:55:08 +00:00
Richard Henderson
28a7f3e70d * elf.c (assign_file_positions_for_segments): Thinko last change.
Always overwrite p_flags.
1999-07-13 20:10:26 +00:00
Richard Henderson
3018b44153 * elf-bfd.h (struct elf_backend_data): Add want_dynbss.
* elflink.c (_bfd_elf_create_dynamic_sections): Only create
        .dynbss and .rel[a].bss if want_dynbss.
        * elfxx-target.h (elf_backend_want_dynbss): Provide default.
1999-07-13 18:31:17 +00:00
Richard Henderson
30b30c2181 * elf-bfd.h (struct elf_link_local_dynamic_entry): New.
(struct elf_link_hash_table): Add dynlocal.
	(_bfd_elf_link_lookup_local_dynindx): Prototype.
	(_bfd_elf_link_adjust_dynindx): Delete.
	(_bfd_elf_link_renumber_dynsyms): Prototype.
	(_bfd_elf,link_record_local_dynamic_symbol): Prototype.
	* elfcode.h (elf_link_record_local_dynamic_symbol): New alias.
	* elflink.c (_bfd_elf_link_adjust_dynindx): Delete.
	(_bfd_elf_link_lookup_local_dynindx): New function.
	(elf_link_renumber_hash_table_dynsyms): New function.
	(_bfd_elf_link_renumber_dynsyms): New function.
	* elflink.h (elf_link_record_local_dynamic_symbol): New function.
	(struct elf_assign_sym_version_info): Delete removed_dynamic.
	(bfd_elf,size_dynamic_sections): Use _bfd_strip_section_from_output
	instead of elf_link_remove_section_and_adjust_dynindices.
	Remove removed_dynamic code.  Use _bfd_elf_link_renumber_dynsyms.
	(elf_link_assign_sym_version): Remove removed_dynamic code.
	(elf_link_renumber_dynsyms): Delete.
	(elf_bfd_final_link): Install section and local symbols into .dynsym.
	* elf32-m68k.c (elf_m68k_adjust_dynindx): Delete.
	(elf_m68k_size_dynamic_sections): Don't set section dynindicies.
	(elf_m68k_finish_dynamic_sections): Don't write section dynsyms.
	* elf32-mips.c: Similarly.
	* elf32-ppc.c: Similarly.
	* elf32-sparc.c: Similarly.
	* elf64-alpha.c: Similarly.
	* elf64-sparc.c: Similarly.
1999-07-13 18:21:29 +00:00
Richard Henderson
e1ee1229a2 * elf.c (assign_file_positions_for_segments): Don't overwrite p_flags. 1999-07-13 17:30:21 +00:00
Mark Mitchell
97a4bb053f * elf32-mips.c (mips_elf_calculate_relocation): Do not complain
when _gp_disp is undefined.  Do not check R_MIPS_LO16 for overflow
	when the relocation is against _gp_disp.
1999-07-13 15:23:22 +00:00
Mark Mitchell
a3c7651d1a * dwarf2.c (read_attribute): Support DW_FORM_ref8.
* elf32-mips.c (mips_elf_link_hash_entry): Change mips_32_relocs
	to possibly_dynamic_relocs.  Adjust usage throughout code.
	(elf_mips_howto_table): Handle R_MIPS_64 correctly.
	(elf_mips_ctor64_howto): Likewise.
	(mips_elf_calculate_relocation): Handle R_MIPS_64 like R_MIPS_32.
	Adjust indentation.
	(mips_elf_relocate_section): Handle R_MIPS_64 in 32-bit mode.
	(_bfd_mips_elf_check_relocs): Handle R_MIPS_64 like R_MIPS_32.
	Use MIPS_ELF_GOT_SIZE to calculate the size of GOT entries.
	* elf64-mips.c (elf_backend_may_use_rel_p): Define.
1999-07-12 17:15:34 +00:00
Ian Lance Taylor
67e5d3d6d0 * bfd-in.h: Remove tests of COFF_IMAGE_WITH_PE.
* bfd-in2.h: Rebuild.
1999-07-12 11:06:03 +00:00
Ian Lance Taylor
e788a1a310 * Makefile.am: Rebuild dependencies.
* Makefile.in: Rebuild.
1999-07-12 11:05:04 +00:00
Ian Lance Taylor
5f771d47c7 * Many files: Changes to avoid gcc warnings: Add ATTRIBUTE_UNUSED
as appropriate.  Use EMPTY_HOWTO as appropriate.  Fill in
	structure initializations.  Add casts.
	* reloc.c (EMPTY_HOWTO): Define.
	* bfd-in2.h: Rebuild.
	* coff-h8300.c (h8300_reloc16_extra_cases): Remove useless
	comparisons against 0.
	* elf32-sparc.c (elf32_sparc_merge_private_bfd_data): Change
	previous_ibfd_e_flags to unsigned long.
	* vms.h (struct vms_private_data_struct): Change section_count to
	unsigned.
	* vms-gsd.c (_bfd_vms_slurp_gsd): Change psect_idx to unsigned.
	(_bfd_vms_write_gsd): Change symnum to unsigned.
	* vms-hdr.c (_bfd_vms_write_hdr): Change symnum to unsigned.
	* vms-tir.c (etir_sta): Change psect to unsigned.
	(alloc_section): Change idx to unsigned.
	(tir_sta, tir_ctl): Change psect to unsigned.
	(_bfd_vms_write_tir): Change len and before to bfd_size_type.
	* vms.c (priv_section_count): Change to unsigned.
1999-07-12 10:30:21 +00:00
Andreas Schwab
121089cbf0 * elf32-m68k.c: Add some ATTRIBUTE_UNUSED.
* m68klinux.c: Likewise.
1999-07-12 08:15:36 +00:00
Ian Lance Taylor
e049a0de5a * Many files: Changes to avoid gcc warnings: Remove unused local
variables.  Add default case to enum switches.
	* coff-arm.c (bfd_arm_allocate_interworking_sections): Only
	compile if not COFF_IMAGE_WITH_PE.
	(record_arm_to_thumb_glue, record_thumb_to_arm_glue): Likewise.
	(bfd_arm_get_bfd_for_interworking): Likewise.
	(bfd_arm_process_before_allocation): Likewise.
	* epoc-pei-arm.c: Don't rename bfd_arm functions.
	* pei-arm.c: Likewise.
	* elf32-mips.c (mips_elf_link_hash_table_create): Don't declare.
	(MIPS_ELF_ADD_DYNAMIC_ENTRY): Correct last change.
	(mips_elf_got16_entry): Put parens around & in body of ==.
	(mips_elf_calculate_relocation): Correct test for empty string.
	* vms-gsd.c: Use _bfd_error_handler rather than fprintf to
	stderr.
	* vms-misc.c (_bfd_vms_length_hash_symbol): Correct sprintf
	format.
1999-07-12 07:35:20 +00:00
Ian Lance Taylor
7442e600c8 * Many files: Changes to avoid gcc warnings: Add ATTRIBUTE_UNUSED
as appropriate.  Fill in structure initializations.  Add variable
	initializations.  Add casts.
	* dwarf1.c (parse_line_table): Change eachLine to unsigned long.
	(dwarf1_unit_find_nearest_line): Change i to unsigned long.
1999-07-11 19:49:48 +00:00
Ian Lance Taylor
3a99b017b3 * elf.c (bfd_elf_hash): Change parameter from unsigned char * to
char *.
	* elf-bfd.h (bfd_elf_hash): Update declaration.
	* elflink.h (NAME(bfd_elf,size_dynamic_sections)): Remove casts
	when calling bfd_elf_hash.
1999-07-11 17:13:36 +00:00
Mark Mitchell
2848824236 Fix typo in previous change. 1999-07-11 09:46:10 +00:00
Mark Mitchell
9ebbd33e6f * libbfd.c (bfd_put_8): Make it of type `void'.
* bfd-in2.h: Regenerated.
	* elf32-mips.c (MIPS_ELF_ADD_DYNAMIC_ENTRY): Conditionalize
	for 32-bit hosts.
	(_bfd_mips_elf_final_link): Likewise.
1999-07-11 09:28:45 +00:00
Mark Mitchell
65388f2d50 * elflink.h (elf_link_read_relocs_from_section): Be type-correct. 1999-07-11 00:12:14 +00:00
Jeff Law
5b4e28187c * config.bfd (hppa*-*-linux-gnu*): New target 1999-07-08 11:33:37 +00:00
Mark Mitchell
103186c62b * elf-bfd.h (_bfd_mips_elf_section_from_shdr): Constify.
(_bfd_mips_elf_create_dynamic_sections): New function.
	(_bfd_mips_elf_add_symbol_hook): Likewise.
	(_bfd_mips_elf_adjust_dynamic_symbol): Likewise.
	(_bfd_mips_elf_finish_dynamic_symbol): Likewise.
	(_bfd_mips_elf_finish_dynamic_sections): Likewise.
	(_bfd_mips_elf_gc_mark_hook): Likewise.
	(_bfd_mips_elf_gc_sweep_hook): Likewise.
	(_bfd_mips_elf_always_size_sections): Likewise.
	(_bfd_mips_elf_size_dynamic_sections): Likewise.
	(_bfd_mips_elf_check_relocs): Likewise.
	(_bfd_mips_elf_link_hash_table_create): Likewise.
	(_bfd_mips_elf_print_private_data): Likewise.
	(_bfd_mips_elf_link_output_symbol_hook): Likewise.
	(_bfd_mips_elf_final_link): Likewise.
	(_bfd_mips_elf_additional_program_headers): Likewise.
	(_bfd_mips_elf_modify_segment_map): Likewise.
	(_bfd_mips_elf_relocate_section): Likewise.
	* elf32-mips.c (mips_elf32_object_p): Move contents into
	_bfd_mips_elf_object_p.
	(mips_elf_additional_program_headers): Rename to
	_bfd_mips_elf_additional_program_headers.
	(mips_elf_modify_segment_map): Rename to
	_bfd_mips_elf_modify_segment_map.
	(elf_mips_abi_name): Change prototype.
	(mips_elf32_section_from_shdr): Merge into
	_bfd_mips_elf_section_from_shdr.
	(mips_elf32_section_processing): Merge into
	_bfd_mips_elf_section_processing.
	(mips_elf_final_link): Rename to _bfd_mips_elf_final_link.  Invoke
	the right back-end ELF linker.
	(mips_elf_relocate_section): Rename to
	_bfd_mips_elf_relocate_section.  Clean up.  Adjust for 64-bit code.
	(mips_elf_link_output_symbol_hook): Rename to
	_bfd_mips_elf_link_output_symbol_hook.
	(mips_elf_create_dynamic_section): Rename to
	_bfd_mips_elf_create_dynamic_section.
	(mips_elf_check_relocs): Rename to _bfd_mips_elf_check_relocs.
	Adjust for 64-bit code.  Use mips_elf_got_section.
	(mips_elf_adjust_dynamic_symbol): Rename to
	_bfd_mips_elf_adjust_dynamic_symbol.  Use
	mips_elf_allocate_dynamic_relocations.
	(mips_elf_finish_dynamic_symbol): Rename to
	_bfd_mips_elf_finish_dynamic_symbol.  Use mips_elf_got_section.
	Adjust for 64-bit code.
	(mips_elf_finish_dynamic_sections): Rename to
	_bfd_mips_elf_finish_dynamic_sections.  Adjust for 64-bit code.
	(mips_elf_always_size_sections): Rename to
	_bfd_mips_elf_always_size_sections.
	(mips_elf_add_symbol_hook): Rename to
	_bfd_mips_elf_add_symbol_hook.
	(mips_elf_next_lo16_addend): Constify.
	(mips_elf_calculate_relocation): Likewise.
	(mips_elf_obtain_contents): Likewise.
	(mips_elf_perform_relocation): Likewise.
	(mips_elf_create_dynamic_relocation): Likewise.
	(mips_elf_allocate_dynamic_relocations): New function.
	(MIPS_ELF_REL_DYN_SECTION_NAME): New macro.
	(MIPS_ELF_REL_SIZE): Likewise.
	(MIPS_ELF_DYN_SIZE): Likewise.
	(MIPS_ELF_GOT_SIZE): Likewise.
	(MIPS_ELF_SYM_SIZE): Likewise.
	(MIPS_ELF_LOG_FILE_ALIGN): Likewise.
	(MIPS_ELF_GET_WORD): Likewise.
	(MIPS_ELF_PUT_WORD): Likewise.
	(MIPS_ELF_ADD_DYNAMIC_ENTRY): Likewise.
	(STUB_LW): Conditionalize for 64-bit value.
	(elf_mips_howto_table): Add R_MIPS_HIGHER and R_MIPS_HIGHEST
	entries.
	(_bfd_mips_elf_merge_private_bfd_data): Merge e_ident[EI_CLASS].
	Check it for inconsistency.
	(_bfd_mips_elf_print_private_bfd_data): Print ABI=64 for 64-bit
	ABI.
	(_bfd_mips_elf_fake_sections): Remove duplicate handling of
	.msym.
	(mips_elf_global_got_index): Use MIPS_ELF_GOT_SIZE.
	(mips_elf_got_offset_from_index): Use misp_elf_got_section.
	(mips_elf_create_local_got_entry): Use MIPS_ELF_GOT_SIZE.
	(mips_elf_local_got_index): Likewise.
	(mips_elf_got_page): Likewise.
	(mips_elf_got_info): Likewise.
	(mips_elf_create_dynamic_relocation): Handle 32-bit/64-bit split.
	(ELF_DYNAMIC_INTERPRETER): Handle 64-bit code.
	(mips_elf_create_dynamic_sections): Use MIPS_ELF_LOG_FILE_ALIGN,
	instead of constant `2'.
	(mips_elf_create_got_section): Tidy.  Use MIPS_ELF_GOT_SIZE.
	(mips_elf_create_msym_section): Use MIPS_ELF_LOG_FILE_ALIGN.
	(mips_elf_size_dynamic_sections): Use
	MIPS_ELF_REL_DYN_SECTION_NAME, MIPS_ELF_GOT_SIZE,
	MIPS_ELF_ADD_DYNAMIC_ENTRY.  Remove #if 0'd code.
	Adjust all releveant entries in elf backend table.
	* elf64-mips.c (mips_elf64_section_from_shdr): Remove.
	(mips_elf64_section_processing): Likewise.
	Adjust elf backend entries to use _bfd_mips_elf variants now
	publicly available.
1999-07-07 19:23:22 +00:00
Mark Mitchell
c7ac6ff835 * elflink.h (elf_link_create_dynamic_sections): Handle non-standard
hash-entry sizes.
	(size_dynamic_sections): Likewise.
	(elf_link_output_extsym): Likewise.
	* elf.c: (elf_fake_sections): Likewise.
	* libbfd.c (bfd_get): New macro.
	(bfd_put): Likewise.
	* bfd-in2.h: Regenerated.
	* elf-bfd.h (elf_size_info): Add hash_entry_size,
	int_rels_per_ext_rel, swap_dyn_out, swap_reloc_in, swap_reloc_out,
	wap_reloca_in, and swap_reloca_out.
	* elflink.h (elf_link_read_relocs_from_section): Adjust to handle
	multiple internal relocations per external relocation.
	(link_read_relocs): Likewise.
	(elf_bfd_final_link): Likewise.
	(elf_link_input_bfd): Likewise.
	(elf_gc_mark): Likewise.
	(elf_gc_smash_unused_vtentry_relocs): Likewise.
	* elfcode.h (elf_swap_dyn_out): Adjust type to match
	elf_swap_dyn_in.
	(size_info): Add entries for new fields.
	* elf64-mips.c (mips_elf64_swap_reloc_out): Enable.
	(mips_elf64_be_swap_reloc_in): New function.
	(mips_elf64_be_swap_reloc_out): Likewise.
	(mips_elf64_be_swap_reloca_in): Likewise.
	(mips_elf64_be_swap_reloca_out): Likewise.
	(mips_elf64_size_info): Add entries for new fields.
1999-07-07 17:50:56 +00:00
Ian Lance Taylor
b4536acd1f tweak last elf_merge_symbol patch 1999-07-07 15:29:06 +00:00
Ian Lance Taylor
3b62fea85c rebuild 1999-07-07 11:40:42 +00:00
Ian Lance Taylor
0525d26ec3 * elflink.h (elf_bfd_final_link): Assert that section reloc_count
field equals the new rel_count field.
	(elf_link_input_bfd): When doing a relocateable link, use the new
	rel_count field rather than the reloc_count field.
	(elf_reloc_link_order): Likewise.
	(elf_finish_pointer_linker_section): Likewise.
	Based on patch from H.J. Lu <hjl@gnu.org>:
	* elflink.h (elf_merge_symbol): Permit a non-weak definition in a
	shared library to override a weak definition in a regular object.
1999-07-07 11:39:43 +00:00
Jeff Law
37afc161ab * libhppa.h: Revert July 2, 1999 patch. 1999-07-06 23:50:45 +00:00
Jeff Law
f31cedf7ae è
* elf-hppa.h (_bfd_elf_hppa_gen_reloc_type): T mode selectors
        need to generate DLTIND relocations, not DLTREL relocations.
1999-07-06 09:27:18 +00:00
Jeff Law
9db37001c6 ÿ
* elf-hppa.h (_bfd_elf_hppa_gen_reloc_type): T mode selectors
        need to generate DLTIND relocations, not DLTREL relocations.
1999-07-06 09:27:17 +00:00
Nick Clifton
478d07d67c Add support for arm v5 architectures. 1999-07-05 07:28:24 +00:00
Nick Clifton
752149a058 Add BFD_RELOC_ARM_ADRL_IMMEDIATE. 1999-07-05 06:29:47 +00:00
Mark Mitchell
5e38c3b856 * dwarf2.c (parse_comp_unit): Add ABBREV_LENGTH parameter.
(_bfd_dwarf2_find_nearest_line): Add ADDR_SIZE parameter.
	* elf.c (_bfd_elf_find_nearest_line): Pass it.
	* elf32-arm.h (elf32_arm_find_nearest_line): Likewise.
	* elf32-mips.c (ABI_64_P): New macro.
	(IRIX_COMPAT): We are IRIX6-compatible if ABI_64_P.
	(_bfd_mips_elf_find_nearest_line): Adjust call to
	_bfd_dwarf2_find_nearest_line.
	* libbfd-in.h (_bfd_dwarf2_find_nearest_line): Update prototype.
	* libbfd.h: Regenerated.
1999-07-02 21:03:56 +00:00
Ian Lance Taylor
4766cbee7a * config.bfd: Add * at the end of i[3456]86-*-unixware. 1999-07-02 12:52:21 +00:00
Jeff Law
2a6d0fe7b3 * libhppa.h (HPPA_R_ARG_RELOC): Delete.
(HPPA_R_CONSTANT, HPPA_R_ADDEND): Likewise.
1999-07-02 11:26:12 +00:00
Mark Mitchell
23bc299bd8 * elf-bfd.h (bfd_elf_section_data): Add rel_count and rel_count2
fields.
	(_bfd_elf_init_reloc_shdr): New function.
	* elf.c (_bfd_elf_new_section_hook): Use bfd_zalloc, rather than
	bfd_alloc followed by memset.
	(_bfd_elf_init_reloc_shdr): New function, split out from ...
	(elf_fake_sections): Here.
	(assign_section_numbers): Assign section numbers for the second
	relocation section, if required.
	* elflink.h (elf_link_output_relocs): New function.
	(elf_link_size_reloc_section): Likewise.
	(elf_bfd_final_link): Use elf_link_size_reloc_section.
	(elf_link_input_bfd): Use elf_link_output_relocs.
	* elf32-mips.c (_bfd_mips_elf_fake_sections): Use
	_bfd_elf_init_reloc_shdr to initialize rel_hdr2.
1999-07-01 23:20:08 +00:00
Jeff Law
341362b58e X
* elf-hppa.h (_bfd_elf_hppa_gen_reloc_type): Handle R_PCREL_CALL
        with 22bit format.
1999-07-01 13:02:50 +00:00
Jeff Law
17bb48e0f2 è
* elf-hppa.h (_bfd_elf_hppa_gen_reloc_type): Handle R_PCREL_CALL
        with 22bit format.
1999-07-01 13:02:48 +00:00
Mark Mitchell
7403cb6305 * elf32-mips.c (mips_elf_got_info): Move declaration before
prototypes.  Change global_gotsym to be a pointer to a hash entry,
	rather than a number index.
	(mips_elf_link_hash_entry): Move declaration before prototypes.
	(mips_elf_irix6_finish_dynamic_symbol): New function.
	(mips_elf_sign_extend): Likewise.
	(mips_elf_high): Likewise.
	(mips_elf_higher): Likewise.
	(mips_elf_highest): Likewise.
	(mips_elf_global_got_index): Likewise.
	(mips_elf_local_got_index): Likewise.
	(mips_elf_got_offset_from_index): Likeiwse.
	(mips_elf_record_global_got_symbol): Likewise.
	(mips_elf_got_page): Likewise.
	(mips_elf_next_lo16_addend): Likewise.
	(mips_elf_calculate_relocation): Likewise.
	(mips_elf_obtain_contents): Likewise.
	(mips_elf_perform_relocation): Likewise.
	(mips_elf_assign_gp): Likewise.
	(mips_elf_sort_hash_table_f): Likewise.
	(mips_elf_sort_hash_table): Likewise.
	(mips_elf_got_section): Likewise.
	(mips_elf_got_info): Likewise.
	(mips_elf_create_local_got_entry): Likewise.
	(mips_elf_got16_entry): Likewise.
	(mips_elf_create_dynamic_relocation): Likewise.
	(elf_mips_howto_table): Add description of R_MIPS_SCN_DISP.
	(mips_elf_final_gp): Use mips_elf_assign_gp.
	(_bfd_mips_elf_symbol_processing): Don't move SHN_COMMON symbols
	into SHN_SCOMMON automatically on IRIX6.
	(mips_elf_add_symbol_hook): Likewise.
	(mips_elf_relocate_section): Rewrite, using
	mips_elf_calculate_relocation and mips_elf_perform_relocation.
	(mips_elf_create_dynamic_section): Use MIPS_ELF_STUB_SECTION_NAME.
	Don't deal with .rld_map on IRIX6.
	(mips_elf_create_got_section): Adjust use of global_gotsym.  Set
	section flags appropriately for .got.
	(mips_elf_check_relocs): Handle IRIX6 relocations making use of
	the got.  Call mips_elf_record_global_got_symbol and allocate
	local got space appropriately.
	(mips_elf_size_dynamic_sections): Use bfd_byte *, not unsigned
	char *.  Rework calculation of GOT size.  Sort dynamic symbol
	table entries so entries that do not require GOT entries appear at
	the beginning.  Don't use DT_MIPS_HIPAGENO on IRIX6.  Remove dead
	code dealing with DT_INIT and DT_FINI.  Remove fiddling with
	global_gotsym.
	(mips_elf_finish_dynamic_symbol): Adjust creation of global GOT
	entries.
	(mips_elf_finish_dynamic_symbol): Use
	mips_elf_irix6_finish_dynamic_symbol.
	(mips_elf_finish_dynamic_sections): Correct off-by-one error
	setting DT_MIPS_UNREFEXTNO.  Adjust setting of DT_MIPS_GOTSYM for
	change to global_gotsym.  Set DT_MIPS_OPTIONS on IRIX6.
1999-06-30 20:13:43 +00:00
Ian Lance Taylor
0dda5f7af8 * elf32-mips.c (mips_elf_final_link): Don't set CPIC when doing a
relocateable link.  From Ralf Baechle <ralf@uni-koblenz.de>.
1999-06-30 18:16:46 +00:00
Nick Clifton
04f7c78d64 Define 'elf_backend_got_header_size' and 'elf_backend_plt_header_size'. 1999-06-30 02:30:04 +00:00
Nick Clifton
a72747a354 Patch from: Jim Pick <jim@jimpick.com>
Take note of 'no_undefined'.
1999-06-29 02:51:50 +00:00
Jeff Law
9acc3dfe89 °
* elf-hppa.c (elf_hppa_howto_table): Use bfd_elf_generic_reloc as
        relocation function.
        * elf32-hppa.c (hppa_elf_reloc): Kill unused/unwanted function.
1999-06-29 01:28:26 +00:00
Jeff Law
caf3d37ccc è
* elf-hppa.c (elf_hppa_howto_table): Use bfd_elf_generic_reloc as
        relocation function.
        * elf32-hppa.c (hppa_elf_reloc): Kill unused/unwanted function.
1999-06-29 01:28:25 +00:00
Mark Mitchell
303f629d61 * elf32-mips.c (MIPS_ELF_SRDATA_SECTION_NAME): New macro.
(MIPS_ELF_OPTIONS_SECTION_NAME): Likewise.
	(MIPS_ELF_STUB_SECTION_NAME): Likewise.
	(_bfd_mips_elf_section_from_shdr): Use them.
	(_bfd_mips_elf_fake_sections): Likewise.  Add .srdata to the list
	of GP-relative sections.
	(_bfd_mips_elf_set_section_contents): Use them.
	(_bfd_mips_elf_section_processing): Share code between .sdata and
	.lit4/.lit8 sections.  Set appropriate flags for .srdata.
	(mips_elf_additional_program_headers): Add handling for
	PT_MIPS_OPTIONS segment on IRIX6.
	(mips_elf_modify_segment_map): Likeiwse.
	(mips_elf_final_link): Set EF_MIPS_CPIC when required by the ABI.
	Include the options sections on IRIX6.  Don't look for GP-relative
	sections by name; use SHF_MIPS_GPREL instead.
	(ELF_DYNAMIC_INTERPRETER): Adjust to use /usr/lib32/libc.so.1 for
	the N32 ABI.
	(mips_elf_create_dynamic_sections): Don't muck about with section
	alignments and such on IRIX6.
	(mips_elf_adjust_dynamic_symbol): Use MIPS_ELF_STUB_SECTION_NAME.
	(mips_elf_size_dynamic_sections): Likewise. Adjust to handle the
	fact that ELF_DYNAMIC_INTERPRETER is no longer a constant.  Use
	bfd_zalloc rather than bfd_alloc and memset.
	(mips_elf_finish_dynamic_symbol): Use MIPS_ELF_STUB_SECTION_NAME.
	Don't assert the existence of .rld_map on IRIX6.
	(mips_elf_finish_dynamic_sections): Use MIPS_ELF_STUB_SECTION_NAME.
1999-06-27 21:23:34 +00:00
Mark Mitchell
9886bd4365 * elf32-mips.c (mips_elf_adjust_dynindx): Remove.
(mips_elf_size_dynamic_sections): Use _bfd_elf_link_adjust_dynindx
	instead.
1999-06-27 16:11:13 +00:00
Mark Mitchell
c6142e5d05 * elf32-mips.c (mips_elf_swap_msym_in): New function.
(mips_elf_swap_msym_out): New function.
	(mips_elf_create_msym_section): Likewise.
	(MIPS_ELF_MSYM_SECTION_NAME): New macro.
	(_bfd_mips_elf_final_write_processing): Set sh_link for .msym.
	(_bfd_mips_elf_section_from_shdr): Reject an SHT_MIPS_MSYM
	section not named .msym.
	(_bfd_mips_elf_fake_sections): Use MIPS_ELF_MSYM_SECTION_NAME, not
	.msym directly.  Set appropriate attributes for the .msym
	section.
	(mips_elf_link_hash_entry): Add min_dyn_reloc_index field.
	(mips_elf_link_hash_newfunc): Clear it.
	(mips_elf_create_dynamic_sections): Create the .msym section
	on IRIX6.
	(mips_elf_size_dynamic_sections):  Allocate space for the
	.msym section.  Add a DT_MIPS_MSYM entry.
	(mips_elf_finish_dynamic_symbol): Write out a .msym entry for
	the symbol.
	(mips_elf_finish_dynamic_sections): Assign a value for
	DT_MIPS_MSYM.  Add .msym entries for the section symbols as well.
1999-06-27 11:05:15 +00:00
Mark Mitchell
a94a7c1c32 * elf32-mips.c (irix_compat_t): New enumeration.
(ABI_N32_P): New macro.
	(IRIX_COMPAT): Likewise.
	(SGI_COMPAT): Implement in terms of IRIX_COMPAT.
	(mips_elf_relocate_section): Fix typo.
1999-06-26 21:17:49 +00:00
Ian Lance Taylor
368d086045 fix copyright 1999-06-26 19:33:44 +00:00
Ian Lance Taylor
254f5c45f5 1999-06-26 Mumit Khan <khan@xraylith.wisc.edu>
* peicode.h (coff_swap_scnhdr_out): Mark non readonly BFD sections
	as writable PE sections.
1999-06-26 19:32:54 +00:00
Richard Henderson
f623be2b68 David Mosberger <davidm@hpl.hp.com>
* dwarf2.c (struct arange): New type.
        (struct comp_unit): Replace LOW and HIGH by member ARANGE.
        (arange_add): New function.
        (decode_line_info): Keep track of address ranges that a compilation
        unit covers.
        (comp_unit_contains_address): Return true if address is contained
        in _any_ of the address ranges associated with a compilation unit.
        (_bfd_dwarf2_find_nearest_line): Call comp_unit_find_nearest_line
        on the first comp_unit that contains the address.
1999-06-26 16:05:58 +00:00
Richard Henderson
69dd2e2d55 David Mosberger <davidm@hpl.hp.com>
* dwarf2.c (struct dwarf2_debug): Add member dwarf_line_buffer.
        (decode_line_info): Add variable STASH and initialize it to point
        to the per-bfd dwarf2_debug info.  Remove static variable
        dwarf_line_buffer and use stash->dwarf_line_buffer in its place.
1999-06-26 15:48:47 +00:00
Ian Lance Taylor
1d7b28df8d * elflink.h (elf_link_output_extsym): It's OK for a -Bsymbolic
shared library to have an undefined symbol.
1999-06-26 09:00:19 +00:00
Ian Lance Taylor
0429ebd010 From Franz Sirl <Franz.Sirl-kernel@lauterbach.com>:
* elf32-ppc.c (ppc_elf_relocate_section): Fix last patch.
1999-06-26 08:57:54 +00:00
Jeff Law
31bd8f254f ð
* elf-hppa.c (elf_hppa_final_write_processing): New function.
        * elf32-hppa.c: Remove everything related to symbol extension
        sections & records.  Use the common elf_hppa_final_write_processing.
1999-06-24 20:01:44 +00:00
Jeff Law
95cbae0b17 *** empty log message *** 1999-06-24 20:01:43 +00:00
Jeff Law
4517897e01 d
* elf-hppa.c (elf_hppa_final_write_processing): New function.
        * elf32-hppa.c: Remove everything related to symbol extension
        sections & records.  Use the common elf_hppa_final_write_processing.
1999-06-24 20:01:42 +00:00
Mark Mitchell
f0c2e336c8 * elflink.h (size_dynamic_sections): Use user-specified init/fini
functions instead of _init/_fini if requested.
1999-06-23 11:06:57 +00:00
Ian Lance Taylor
03ae5f594e * elf.c (bfd_section_from_shdr): Avoid crashing on a bogus sh_link
field.
1999-06-22 21:25:49 +00:00
Ian Lance Taylor
464e1740d2 From Franz Sirl <Franz.Sirl-kernel@lauterbach.com>:
* elf32-ppc.c (ppc_elf_size_dynamic_sections): Set unused dynindx
	field to 0, not -1.
	(ppc_elf_finish_dynamic_sections): Check for positive section
	dynindx field, rather than comparing against -1.
	(ppc_elf_relocate_section): Only return false if undefined_symbol
	or reloc_overflow fail, not always upon encountering an error.
1999-06-22 21:01:24 +00:00
Ian Lance Taylor
75945f9f4c clarify section dynindx comment 1999-06-22 20:58:43 +00:00
Mark Mitchell
2f5116e25d * elflink.h (link_read_relocs): Explicitly cast external_relocs to
bfd_byte * before performing pointer arithmetic.
1999-06-22 13:57:15 +00:00
Jeff Law
9e103c9cd2 * elf-hppa.h: New file. Common stuff for elf32 and elf64 PA
support.
        * elf32-hppa.c: Include elf-hppa.h.
        (ARCH_SIZE): Define.
        (elf_hppa_reloc_type_lookup): Delete.  Found in the common code
        now.
        (elf32_hppa_info_to_howto): Similarly.
        (elf_hppa_howto_table): Similarly.
        (elf_hppa_reloc_type_lookup): Similarly.
        (hppa_elf_gen_reloc_type): Similarly.
        * elf32-hppa.h (ELF_HOWTO_TALBE, N_PARISC_RELOCS): Delete.
1999-06-22 12:20:30 +00:00
Nick Clifton
232fb1a3f6 Catch overflow in 22_PCREL reloc. 1999-06-22 02:41:43 +00:00
Ian Lance Taylor
271025ebee * coff-arm.c (arm_emit_base_file_entry): Explicitly declare return
type.
1999-06-21 10:04:37 +00:00
Richard Henderson
0bde07d41a * section.c (_bfd_strip_section_from_output): Ignore sections
DISCARDed by the link script.
1999-06-20 14:15:42 +00:00
Ian Lance Taylor
f800e11d88 * elflink.h (elf_link_remove_section_and_adjust_dynindices):
Remove unused local variable spp.
1999-06-19 14:10:28 +00:00
Ian Lance Taylor
cdb72c32be * xcofflink.c (bfd_xcoff_size_dynamic_sections): Don't crash if
the entry symbol is not set.
1999-06-19 14:08:46 +00:00
Richard Henderson
72b60c230f * elf64-alpha.c (elf64_alpha_relocate_section): Don't adjust
GPDISP or LITUSE in a relocatable link.
1999-06-18 04:25:56 +00:00
Joern Rennecke
aec89efbf6 * dwarf1.c (alloc_dwarf1_unit): Allocate using bfd_zalloc.
* (alloc_dwarf1_func): Likewise.
1999-06-17 13:26:08 +00:00
Jeff Law
5ba624b0f4 * libhppa.h: Fix various formatting errors.
(assemble_3); Rewrite using CATENATE.
        (assemble_17): Fix various bugs.
1999-06-16 02:13:40 +00:00
Nick Clifton
59d23ada01 Fix definition of R_MCORE_NONE reloc 1999-06-16 02:11:50 +00:00
Richard Henderson
0c3ff40b22 * section.c (SEC_SHORT): Define.
* bfd-in2.h: Rebuild.
1999-06-15 15:12:23 +00:00
Ian Lance Taylor
f6886bc42e remove duplicate entry, add missing blank line 1999-06-13 19:46:31 +00:00
Mark Mitchell
78de0b4335 * elflink.h (elf_link_remove_section_and_adjust_dynindices):
Remove abfd parameter.  Use _bfd_strip_section_from_output.
	(bfd_elf_size_dynamic_sections): Adjust callers accordingly.
1999-06-13 18:35:29 +00:00
Mark Mitchell
42751cf354 * elf-bfd.h (_bfd_elf_link_adjust_dynindx): New function.
* elflink.c (_bfd_elf_link_adjust_dynindx): Define it.
	* elflink.h (elf_link_remove_section_and_adjust_dynindices): New
	function.
	(bfd_elf_size_dynamic_sections): Use it.
1999-06-13 14:49:51 +00:00
Ian Lance Taylor
3e2699126a 1999-06-13 Alan Modra <alan@spri.levels.unisa.edu.au>
* elf32-i386.c (elf_howto_table): Change R_386_PC8 from
	complain_overflow_bitfield to complain_overflow_signed.
1999-06-13 09:23:04 +00:00
Mark Mitchell
6b5bd373fb * elflink.h (elf_link_read_relocs_from_section): New function,
split out from ...
	(elf_link_read_relocs): Here.  Use it for both relocation
	sections.
1999-06-13 01:13:26 +00:00
Mark Mitchell
57e21befb9 * elfcode.h (elf_slurp_reloc_table_from_section): Don't assume
asect->reloc_count is valid.
1999-06-12 17:56:26 +00:00
Ian Lance Taylor
cc3bfcee61 * elf32-mips.c (mips_elf32_section_processing): Permit a
SHT_MIPS_REGINFO section to have a size of 0.
1999-06-12 13:08:29 +00:00
Ian Lance Taylor
7a50d4ac66 1999-06-12 David O'Brien <obrien@freebsd.org>
* config.bfd (alpha*-*-freebsd*): New target.
	(i[3456]86-*-freebsd*): Now defaults to ELF.
1999-06-12 13:06:26 +00:00
Ian Lance Taylor
44257b8b9d * reloc.c (_bfd_relocate_contents): Permit bitfield relocations to
wrap if the relocation covers the high bit of an address.
1999-06-11 20:23:58 +00:00
Ian Lance Taylor
f5f9cc4ffb * dwarf2.c (decode_line_info): Remove unused variable first_time. 1999-06-10 21:28:56 +00:00
Richard Henderson
60dac29966 Jakub Jelinek <jj@ultra.linux.cz>
* elf64_sparc.c (sparc64_elf_relocate_section): Use R_SPARC_max_std
        instead of R_SPARC_max.
        (sparc64_elf_info_to_howto): Likewise.
        * elf32_sparc.c (elf32_sparc_relocate_section): Likewise.
        (elf32_sparc_info_to_howto): Likewise; handle vtable relocations.
1999-06-10 20:59:54 +00:00
Richard Henderson
9d7428a9e3 * section.c (_bfd_strip_section_from_output): Remove output
sections with no initial link_order.
1999-06-07 23:22:00 +00:00
Nick Clifton
3c82f80fc0 Define ELF_MAXPAGESIZE 1999-06-07 10:27:21 +00:00
Andreas Schwab
eb519dff86 * Makefile.am (SOURCE_HFILES): Add missing headers.
* Makefile.in: Regenerated.
1999-06-07 02:51:40 +00:00
Mark Mitchell
7f7e7b689c * elf32-mips.c (_bfd_mips_elf_print_private_data): Recognize
the N32 ABI.
1999-06-06 22:31:46 +00:00
Richard Henderson
dc1bc0c9a5 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
* elf32-ppc.c (ppc_elf_relocate_section): Don't barf on out of
        range undefweak symbols.
        * hash.c: Add missing comma after @xref{}
        * linker.c: Likewise.
1999-06-04 13:25:23 +00:00
Nick Clifton
79e5982fed Define ELF_MAXPAGESIZE for all ELF based ports.
Produce an error message of ELF_MAXPAGESIZE is not defined.
1999-06-04 12:45:07 +00:00
Ian Lance Taylor
4a54b4654d * Makefile.am: Rebuild dependencies.
(BFD32_BACKENDS): Add dwarf1.lo.
	(BFD32_BACKENDS_CFILES): Add dwarf1.c.
	* Makefile.in: Rebuild.
1999-06-04 12:00:31 +00:00
Nick Clifton
7714a18c89 oops - omitted from previous delta 1999-06-04 07:42:55 +00:00
Nick Clifton
10ab5357b1 Rename epoc-pe interworking function names to avoid a name space clash.
Add epoc-pe to built targets.
1999-06-04 07:39:48 +00:00
Nick Clifton
dece465892 (ELF_MAXPAGESIZE): Default to 0x1000 not 1 1999-06-04 06:35:04 +00:00
Andreas Schwab
a9d024b8b0 * elf.c (elf_fake_sections): Undo change of 1999-05-10. 1999-06-04 01:07:38 +00:00
Joern Rennecke
06e1ba78a0 * elf32-sh.c (sh_elf_relax_delete_bytes): Fix setting of
start / stop for recalculating of r_addend of R_SH_SWITCH*.
1999-06-03 19:12:54 +00:00
Joern Rennecke
084aa3aa9f * elf32-sh.c (sh_elf_relax_delete_bytes): Handle R_SH_SWITCH32
in other text sections.
1999-06-03 18:54:32 +00:00
Joern Rennecke
875f7f6940 * libbfd.c (_bfd_generic_verify_endian_match): New function.
* libbfd-in.h (_bfd_generic_verify_endian_match): Declare.
	* libbfd.h: Regenerate.
	* coff-sh.c (sh_merge_private_data): Delete.
	(coff_bfd_merge_private_bfd_data): Change to
	_bfd_generic_verify_endian_match.
	(elf32-sh.c): bfd_elf32_bfd_merge_private_bfd_data: Define.
1999-06-03 18:48:24 +00:00
Ulrich Drepper
6a9d5c9a12 Update. 1999-06-03 12:46:39 +00:00
Ulrich Drepper
f21f3fe0b8 Fix typo: change ELF_MAXPAGE_SIZE to ELF_MAXPAGESIZE. 1999-06-03 12:46:15 +00:00
Ian Lance Taylor
a3e38ad3ed * bfd-in.h (bfd_elf32_arm_allocate_interworking_sections): Correct
prototype.
	(bfd_elf32_arm_process_before_allocation): Likewise.
	* bfd-in2.h: Rebuild.
1999-06-03 09:21:53 +00:00
Richard Henderson
e0a2c38a7b Update. 1999-06-03 03:26:53 +00:00
Richard Henderson
159002ff69 David Mosberger <davidm@hpl.hp.com>
* dwarf2.c (struct line_info): Add member END_SEQUENCE to keep
        track of end_sequence markers.
        (add_line_info): Add END_SEQUENCE arg.
        (decode_line_info): Don't try to infer lo_pc and hi_pc from the
        debug-line info---it doesn't work right if a compilation unit
        consists of multiple discontiguous code-sequences.  It would be
        worthwhile to optimize for the common case where a compilation
        unit results in a contiguous set of code sequences, but this is
        quite tricky to get right for arbitrary DWARF2 files.
        (lookup_address_in_line_info_table): Don't use the last line entry
        for a compilation unit for anything with an address higher than
        this line entry.  Also, check for end_sequence markers to
        correctly handle discontinuities.
        (_bfd_dwarf2_find_nearest_line): When checking previously loaded
        compilation units, check all compilation units with each->high==0
        just like when reading compilation units.
        * dwarf2.c (decode_line_info): Initialize table->files and
        table->last_line to NULL to avoid segfaults due to random
        values in these members.
        (concat_filename): Check for out-of-range file number before
        indexing filename table.  Segfaults suck.
        * dwarf2.c (decode_line_info): Don't truncate address to least
        significant 32 bits (breaks 64 bit targets).
        (lookup_address_in_function_table): Ditto.
        (comp_unit_contains_address): Ditto.
1999-06-03 02:46:47 +00:00
Mark Mitchell
d2905643ff * elf32-mips.c (elf_mips_howto_table): Add R_MIPS_JALR.
* elf64-mips.c (mips_elf64_howto_table_rel): Likewise.
	(mips_elf64_howto_table_rela): Likewise.
1999-06-02 18:17:59 +00:00
Mark Mitchell
42fdc50906 * elf32-mips.c (elf_mips_howto_table): Add R_MIPS_JALR.
* elf64-mips.c (mips_elf64_howto_table_rel): Likewise.
	(mips_elf64_howto_table_rela): Likewise.
	* elfcode.h (elf_slurp_reloc_table_from_section): New function,
	split out from ...
	(elf_slurp_reloc_table): Here.  Use it to handle the case where a
	single section has two associated relocation sections.
1999-06-02 18:16:48 +00:00
Mark Mitchell
6c8cb66eb1 Update copyright dates. 1999-06-02 16:31:16 +00:00
Richard Henderson
c71c54c969 Update copyright. 1999-06-02 16:11:43 +00:00
Richard Henderson
9d8cefa978 Mark Salter <msalter@cygnus.com>
* coffcode.h (coff_set_alignment_hook): Set lma from s_vaddr if
        COFF_WITH_PE defined.
1999-06-02 15:36:48 +00:00
Nick Clifton
c9fca91dfb Rename interworking functions to avoid a name space collision 1999-06-02 14:27:10 +00:00
Mark Mitchell
bf572ba0b9 * elf-bfd.h (elf_backend_data): Remove use_rela_p. Add
may_use_rel_p, may_use_rela_p, default_use_rela_p.
	(bfd_elf_section_data): Add use_rela_p.
	* elf.c (bfd_section_from_shdr): Set use_rela_p appropriately.
	(_bfd_elf_new_section_hook): Likewise.
	(elf_fake_sections): Use may_use_rela_p, etc., instead of
	use_rela_p.
	(_bfd_elf_copy_private_section_data): Copy use_rela_p.
	* elfcode.h (write_relocs): Determine whether or not use rela
	relocs based on the relocation section header.
	* elflink.c (_bfd_elf_create_dynamic_sections): Use default_use_rela_p
	instead of use_rela_p.
	* elfxx-target.h (elf_backend_may_use_relp): New macro.
	(elf_backend_may_use_rela_p): Likewise.
	(elf_backend_default_use_rela_p): Likewise.
	(elfNN_bed): Use them.
1999-06-02 13:01:04 +00:00
Richard Henderson
3fe702fddf * hosts/alphalinux.h (TRAD_CORE_EXTRA_SIZE_ALLOWED): Expand to 4096. 1999-06-02 12:39:44 +00:00
Mark Mitchell
3f830999e3 * reloc.c (BFD_RELOC_MIPS_SUB): New relocation.
(BFD_RELOC_MIPS_GOT_PAGE): Likewise.
	(BFD_RELOC_MIPS_GOT_OFST): Likewise.
	(BFD_RELOC_MIPS_GOT_DISP): Likewise.
	* bfd-in2.h: Regenerated.
	* libbfd.h: Likewise.
	* elf32-mips.c (mips_info_to_howto_rela): New function.
	(USE_REL): Adjust for new conventions.
	(MINUS_ONE): New macro.
	(elf_mips_howto_table): Add R_MIPS_SUB.
	(mips_r): Add entries for MIPS_SUB, MIPS_GOT_PAGE, MIPS_GOT_OFST,
	and MIPS_GOT_DISP.
	(mips_elf_final_write_processing): Set sh_link, not sh_info, for a
	.MIPS.content section.
	(_bfd_mips_elf_fake_sections): Treat all sections that begin
	with .MIPS.content as .MIPS.content sections.  Set
	SHF_MNIPS_NOSTRIP for such section.
	(elf_info_to_howto): Define to mips_info_to_howto_rela.
	* elf64-mips.c (mips_r):  Add entries for MIPS_SUB, MIPS_GOT_PAGE,
	MIPS_GOT_OFST, and MIPS_GOT_DISP.
1999-06-02 10:20:16 +00:00
Andreas Schwab
015985c9fc * vms-misc.c (_bfd_vms_hash_newfunc): Fix use of uninitialized
variable.
1999-06-02 02:56:30 +00:00
Andreas Schwab
70f06c4ad0 * elf32-m68k.c (elf_m68k_adjust_dynamic_symbol): Avoid ambigous
`else'.
1999-06-02 02:53:21 +00:00
Nick Clifton
2ef994e0d6 Philip Blundell <philb@gnu.org>
* elf32-arm.h (elf32_arm_relocate_section): Reinstate change of
	1993-03-25 (!!).  Take into account the bitmasks for the reloc so
	the addend does not overflow into the rest of the word
1999-05-30 11:36:53 +00:00
Nick Clifton
ba96a88f08 Fix implementation of R_ARM_PC24 and R_ARM_THM_PC22 relocs to conform to spec. 1999-05-29 11:05:22 +00:00
Nick Clifton
e6c51ed4df Initialise EI_OSABI and EI_ABIVERSION fields of e_ident array.
Add ability for backends to process program and section headers after they
have been created.
1999-05-28 13:24:33 +00:00
Ian Lance Taylor
633fd09f3c * configure.in: Check whether getuid and getgid exist.
* archive.c: Define getuid and getgid as macros if HAVE_GETUID or
	HAVE_GETGID are not defined, respectively.
	(bfd_write_armap): Don't special case on _WIN32 for getuid and
	getgid.
	* configure.host: Set ac_cv_func_get{ug}id for *-*-windows*.
	* configure, config.in: Rebuild.
1999-05-27 22:48:53 +00:00
Ian Lance Taylor
dc93fc57a9 fix copyrights 1999-05-27 21:44:39 +00:00
Ian Lance Taylor
b2ef150dc1 1999-05-28 Martin Dorey <mdorey@madge.com>
* elf32-i960.c: New file.
	* elf.c (prep_headers): Handle bfd_arch_i960.
	* targets.c (bfd_target_vector): Add &bfd_elf32_i960_vec.
	* config.bfd (i960-*-elf*): New target.
	* configure.in (bfd_elf32_i960_vec): New target vector.
	* Makefile.am (BFD32_BACKENDS): Add elf32-i960.lo.
	(BFD32_BACKENDS_CFILES): Add elf32-i960.c.
	* Makefile.in, aclocal.m4, configure: Rebuild.
1999-05-27 21:42:14 +00:00
Ian Lance Taylor
2d1d084fef rebuild 1999-05-27 21:40:25 +00:00
Nick Clifton
5f97aa0c8a Add support for BFD_RELOC_ARM_PLT32 1999-05-27 07:41:14 +00:00
Nick Clifton
780a67af1e Applied patches from Philip Blundell <pb@nexus.co.uk>, to improve PIC support. 1999-05-26 08:27:38 +00:00
Catherine Moore
fa0e42e457 * coff-arm.c (coff_arm_relocate_section): Don't emit
base file entries for pc-relative values.
1999-05-25 11:56:16 +00:00
DJ Delorie
93dfcdf061 * peicode.h (coff_swap_sym_in): When we create the actual section
to reflect the not-there section C_SECTION symbols refer to,
change the symbol class to C_STAT as the section is now really
there.
1999-05-25 11:37:40 +00:00
Nick Clifton
db65e864b3 1999-05-24 Philip Blundell <pb@nexus.co.uk>
* elf32-arm.h (elf32_arm_relocate_section): Undo change of
 	1999-03-25
1999-05-24 10:06:39 +00:00
Catherine Moore
1ceea51453 * coff-arm.c (coff_arm_relocate_section): Account for
multiple glue sections when generating base file entries.
1999-05-19 10:20:12 +00:00
Nick Clifton
948221a8bd Use renamed ARM cpu flag bits 1999-05-19 07:27:14 +00:00
Nick Clifton
1349dd650d reinstate uin_reloc_p 1999-05-16 14:16:52 +00:00
Nick Clifton
36797d47c9 Add support for mcore RVA relocs. 1999-05-15 15:38:13 +00:00
Andreas Schwab
97eaf9de67 * elf32-arm.h (elf32_arm_relocate_section): Fix operator
precedence between bit-and and comparison.
1999-05-14 02:02:26 +00:00
Richard Henderson
2e9a84c864 Joel Sherrill (joel@OARcorp.com)
* config.bfd (i[3456]86*-*-rtems*, m68k*-*-rtems*): Added to
        list of target formats (targ_selvecs).
        (i[3456]86*-*-rtemself*, mips*el-*-rtems*): New targets.
        (powerpcle*-*rtems*, sh-*-rtemself*): New targets.
1999-05-13 09:49:09 +00:00
DJ Delorie
ec0ef80e9f * ecoff.c (_bfd_ecoff_write_armap): give the symtab element a
reasonable mode until "ar x" is smart enough to skip it (fixes
	gcc/libgcc.a builds on mips-ecoff targets
	* coffcode.h (styp_to_sec_flags): Explain how COMDATs are supposed
	to work.  Hack to support MS import libraries, which use different
	COMDAT types than GNU.
	(coff_slurp_symbol_table): C_SECTION symbols are local; they refer
	to implied zero-length sections (see peicode below)
	* coffgen.c (coff_get_normalized_symtab): Properly read long MS
	filename symbols, which use one *or more* auxents.
	* coffswap.h (coff_swap_aux_in): ditto
	* peicode.h (coff_swap_sym_in): Build the implied zero-length
	sections
1999-05-11 21:05:44 +00:00
Jeff Law
5c746d907d * elf32-v850.c (v850_elf_howto_table): Make partial_inplace false
for all relocations.
1999-05-11 14:57:28 +00:00
Catherine Moore
ba1b93173e * bfd-in.h (bfd_arm_allocate_interworking_sections): Static
if COFF_IMAGE_WITH_PE.
        (bfd_arm_process_before_allocation): Likewise.
        (bfd_arm_get_bfd_for_interworking): Likewise.
        * coff-arm.c: Likewise.
        * bfd-in2.h: Regenerate.
        * configure.in (armpe_little_vec): Remove coff-arm.lo.
        (armpe_big_vec): Likewise.
        * configure: Rebuild.
1999-05-10 18:27:37 +00:00
Nick Clifton
c1f6bc0323 Check for period after .rel{a} when detecting reloc sections. 1999-05-10 08:36:58 +00:00
Nick Clifton
b23f908b61 Replace assert (about endianism) with an error message 1999-05-07 07:44:11 +00:00
Richard Henderson
7fafc0fd27 Fred Fish <fnf@be.com>
* dwarf2.c (read_abbrevs): Change cast of dwarf_abbrev_buffer
        assignment from "unsigned char *" to "char *".
        (decode_line_info): Likewise for dwarf_line_buffer assignment.
1999-05-06 17:12:02 +00:00
Catherine Moore
b44267fd40 * coff-arm.c (coff_arm_relocate_section): Add one to
address of ARM_RVA32 thumb functions.
1999-05-05 18:56:25 +00:00
Catherine Moore
e1346c8d09 Remove extra copy of elf32_m68k_copy_private_bfd_data. 1999-05-05 11:34:29 +00:00
Catherine Moore
9e1281c780 * elf32-m68k.c (elf32_m68k_set_private_flags): New.
(elf32_m68k_copy_private_bfd_data): New.
        (elf32_m68k_merge_private_bfd_data): New.
        (elf32_m68k_print_private_bfd_data): New.
        (CPU32_FLAG): Define.
        (PLT_CPU32_ENTRY_SIZE): Define.
        (elf_cpu32_plt0_entry): Declare.
        (elf_cpu32_plt_entry): Declare.
        (elf_m68k_adjust_dynamic_symbol): Generate cpu32 plt entries.
        (elf_m68k_finish_dynamic_symbol): Likewise.
        (elf_m68k_finish_dynamic_sections): Likewise.
        (elf_backend_plt_header_size): Remove definition.
        (bfd_elf32_bfd_copy_private_bfd_data): Define.
        (bfd_elf32_bfd_merge_private_bfd_data): Define.
        (bfd_elf32_bfd_set_private_flags): Define.
        (bfd_elf32_bfd_print_private_bfd_data): Define.
1999-05-05 10:56:18 +00:00
Jeff Law
c10067812f M
* som.c (som_fixup_formats): Fix comments for R_SHORT_PCREL_MODE
        and R_LONG_PCREL_MODE.
1999-05-03 09:12:29 +00:00
Jeff Law
ac79f2f399 ÿ
* som.c (som_fixup_formats): Fix comments for R_SHORT_PCREL_MODE
        and R_LONG_PCREL_MODE.
1999-05-03 09:12:28 +00:00
Richard Henderson
252b5132c7 19990502 sourceware import 1999-05-03 07:29:11 +00:00