Commit Graph

1234 Commits

Author SHA1 Message Date
Thiemo Seufer
77bfe34f56 * elf64-mips.c (mips_elf64_howto_table_rel): Fix relocation HOWTO
definitions.
	(mips_elf64_howto_table_rel): Likewise.
2001-09-06 21:30:15 +00:00
Tom Rix
1fdf02497c Fix import symbols for AIX. 2001-09-06 15:20:01 +00:00
Richard Henderson
dfe57ca0af * elf64-alpha.c (SKIP_HOWTO): New.
(elf64_alpha_howto_table): Use it to remove dead ECOFF relocs.
        Fix sizes of 16-bit mem format relocs.
        (elf64_alpha_reloc_map): Update to match.
        (elf64_alpha_relax_with_lituse): Use GPREL16 as appropriate.
        (elf64_alpha_relax_without_lituse): Likewise.
        (elf64_alpha_check_relocs): Handle GPREL16.
        (elf64_alpha_relocate_section): Likewise.
        * reloc.c (BFD_RELOC_ALPHA_USER_*): Remove.
        (BFD_RELOC_ALPHA_GPREL_HI16, BFD_RELOC_ALPHA_GPREL_LO16): New.
        * bfd-in2.h, libbfd.h: Rebuild.
2001-09-05 03:00:14 +00:00
Jeff Law
5907e6285e * elf32-h8300.c (elf32_h8_relax_section): New function.
(elf32_h8_relax_delete_bytes): Likewise.
        (elf32_h8_symbol_address_p): Likewise.
        (elf32_h8_get_relocated_section_contents): Likewise.
        (bfd_elf32_bfd_relax_section): Define.
        (bfd_elf32_bfd_get_relocated_section_contents): Likewise.
2001-09-04 21:06:01 +00:00
Jeff Law
a00c9dbc18 * elf32-h8300.c (special): New function.
(h8_elf_howto_table): Use it for SPECIAL_FUNCTION field in
        all relocations.
        (elf32_h8_final_link_relocate): Treat R_H8_DIR24A8 like 32bit
        relocations.  Fix problems with the true 24bit reloc R_H8_DIR24R8.
        Fix minor problems with 8bit and 16bit PC relative relocations.
2001-09-04 17:29:36 +00:00
Andreas Jaeger
524f76c97e * vms-tir.c: Add missing prototypes.
* vms-hdr.c: Likewise.
	* vms-gsd.c: Likewise.
	* vms-misc.c: Likewise.
2001-09-01 10:29:27 +00:00
H.J. Lu
6140b3b903 2001-08-31 H.J. Lu <hjl@gnu.org>
* elf32-mips.c (_bfd_mips_elf_check_relocs): Report filename
	with bad relocation.
2001-08-31 21:41:10 +00:00
Eric Christopher
a1cd6a8fe3 2001-08-31 Eric Christopher <echristo@redhat.com>
Jason Eckhardt  <jle@redhat.com>

	* bfd/archures.c: Add mipsisa32 and mipsisa64. Remove mips32,
	mips32_4k and mips64.
	* bfd/aoutx.h: Remove bfd_mach_mips32, bfd_mach_mips32_4k,
	bfd_mach_mips64.  Add bfd_mach_mipsisa32, bfd_mach_mipsisa64.
	* bfd/cpu-mips.c: Ditto.
	* bfd/elf32-mips.c (_bfd_mips_elf_final_write_processing): Ditto.
	* bfd/bfd-in2.h: Regenerate.
2001-08-31 21:24:28 +00:00
Jakub Jelinek
28cfee261d * elf64-alpha.c (elf64_alpha_relocate_section): Duplicate memory
value into R_ALPHA_RELATIVE's addend.
	(elf64_alpha_finish_dynamic_symbol): Likewise.
2001-08-31 19:20:12 +00:00
Nick Clifton
08bf74c587 amend entry to mention only if not USE_REL 2001-08-31 16:24:39 +00:00
Nick Clifton
5fb1c3f282 Do not rightshift recomputed addend during relocatable link if not USE_REL. 2001-08-31 16:23:25 +00:00
Nick Clifton
374b596dd6 Fix off-by-one error whilst sweeping vtable relocs 2001-08-31 16:16:14 +00:00
H.J. Lu
2bab97856d 2001-08-30 H.J. Lu <hjl@gnu.org>
* elf32-mips.c (mips_elf_calculate_relocation): Revert the last
	2 changes.
	(_bfd_mips_elf_adjust_dynamic_symbol): Allocate dynamic
	relocations for weak definitions.
2001-08-30 21:26:26 +00:00
H.J. Lu
ee8a3a3be4 2001-08-30 H.J. Lu <hjl@gnu.org>
* Makefile.am (BFD32_BACKENDS): Add elf32-h8300.lo.
	(BFD32_BACKENDS_CFILES): Add elf32-h8300.c.
	* Makefile.in: Rebuild.
2001-08-30 16:02:40 +00:00
H.J. Lu
8eb59a907a 2001-08-30 H.J. Lu <hjl@gnu.org>
* elf32-mips.c (mips_elf_calculate_relocation): Don't create
	dynamic relocation for undefined weak symbols when creating
	executables. Check h->root.root.type, instead of h->root.type.
2001-08-30 15:24:18 +00:00
Tom Rix
8df8c6197a Fix for xty_ld symbols 2001-08-30 12:48:35 +00:00
Jeff Law
f235248854 * elf32-h8300.c (h8_elf_howto_table): Add new PC relative
relocations.
	(h8_reloc_map): Similarly.
	(elf32_h8_final_link_relocate): Remove incorrect overflow tests.
	Add support for PC relative relocations.
2001-08-30 02:15:58 +00:00
Jeff Law
5e47149d10 * elf32-h8300.c: Put all prototypes together.
(elf32_h8_info_to_howto): Parameter elf_reloc is used.
        (elf32_h8_final_link_relocate): New function for linker.
        (elf32_h8_relocate_section): Similarly.
        (elf_backend_relocate_section): Define.
2001-08-30 00:08:12 +00:00
Phil Blundell
d43ded80a7 2001-08-29 Joel Sherrill <joel@OARcorp.com>
* configure.tgt (i[3456]86-*-rtems*, m68*-*-rtems*): Change
	default from coff to elf.
2001-08-29 18:47:28 +00:00
Jeff Law
f18a3b8579 Fix typos in ChangeLog dates. 2001-08-29 17:24:40 +00:00
Jeff Law
0a83638b54 * cpu-h8300.c (h8300_scan, compatible): Prototype.
(h8300_scan): Handle architecture:machine encodings typically
        found in linker scripts.
        * elf.c (prep_headers): Do not try to do H8 machine recognition
        here.
        * elf32-h8300.c:  Add some missing prototypes.
        (elf32_h8_mach, elf32_h8_final_write_processing): New functions.
        (elf32_h8_object_p): Similarly.
2001-08-29 17:23:16 +00:00
Alan Modra
102ab33260 * targmatch.sed: Delete case statements.
* config.bfd <powerpc-*-aix* entry>: Select 64 bit xcoff for
	aix4.3 and above.
2001-08-29 03:39:47 +00:00
Joern Rennecke
e01b0e6981 * Makefile.am (elf32-h8300.lo): New target.
* config.bfd (h8300*-*-elf): New case.
	* configure.in (bfd_elf32_h8300_vec): New case.
	* elf.c (prep_headers): Add case for bfd_arch_h8300.
	* reloc.c (BFD_RELOC_H8_DIR16A8): New relocation.
	(BFD_RELOC_H8_DIR16R8, BFD_RELOC_H8_DIR24A8): Likewise.
	(BFD_RELOC_H8_DIR24R8, BFD_RELOC_H8_DIR32A16): Likewise.
	* targets.c (bfd_target bfd_elf32_h8300_vec): New extern declaration.
	* elf32-h8300.c: New file.
	* Makefile.in, bfd-in2.h, libbfd.h, configure: Regenerated.
2001-08-29 01:33:52 +00:00
Nick Clifton
42ef282fe7 Add missing prototypes 2001-08-28 09:35:16 +00:00
Daniel Jacobowitz
2e67030cdb * elf32-i386.c: Add missing prototypes.
* elf32-ppc.c: Likewise.
        * elf32-sh-lin.c: Likewise.
        * elfarm-nabi.c: Likewise.
2001-08-27 18:04:37 +00:00
Daniel Jacobowitz
c5fccbec35 * elf32-i386.c (elf_i386_grok_prstatus): New function.
(elf_i386_grok_psinfo): New function.
        (elf_backend_grok_prstatus): Define.
        (elf_backend_grok_psinfo): Likewise.
        * elf32-ppc.c (ppc_elf_grok_prstatus): New function.
        (ppc_elf_grok_psinfo): New function.
        (elf_backend_grok_prstatus): Define.
        (elf_backend_grok_psinfo): Likewise.
        * elf32-sh-lin.c (elf32_shlin_grok_prstatus): New function.
        (elf32_shlin_grok_psinfo): New function.
        (elf_backend_grok_prstatus): Define.
        (elf_backend_grok_psinfo): Likewise.
        * elfarm-nabi.c (elf32_arm_nabi_grok_prstatus): New function.
        (elf32_arm_nabi_grok_psinfo): New function.
        (elf_backend_grok_prstatus): Define.
        (elf_backend_grok_psinfo): Likewise.
2001-08-27 17:36:32 +00:00
H.J. Lu
14d5043ad0 2001-08-27 H.J. Lu <hjl@gnu.org>
* elf32-mips.c (mips_elf_create_dynamic_relocation): Add more
	sanity check.
	(mips_elf_calculate_relocation): Create dynamic relocation for
	symbols with weak definition or the ELF_LINK_HASH_DEF_REGULAR
	bit is not set.
2001-08-27 15:40:38 +00:00
H.J. Lu
9e80ff3a40 2001-08-27 H.J. Lu <hjl@gnu.org>
* elf32-mips.c (_bfd_mips_elf_hide_symbol): Add prototype.
	(_bfd_mips_elf_copy_indirect_symbol): Likewise.
	(_bfd_elf32_mips_grok_prstatus): Likewise.
	(_bfd_elf32_mips_grok_psinfo): Likewise.
	(_bfd_mips_elf_hide_symbol): Make it static and cast to
	`struct mips_elf_link_hash_entry *'.
	(_bfd_mips_elf_copy_indirect_symbol): Make it static.
2001-08-27 14:47:33 +00:00
Nick Clifton
e4b172749c Add missing prototypes 2001-08-27 10:35:20 +00:00
Alan Modra
5bd4f1692e * config.bfd: Add powerpc64 target. Add powerpc64 vectors to
targ64_selvecs for 32 bit powerpc targets.
	* Makefile.am (BFD64_BACKENDS): Add elf64-ppc.lo.
	(BFD64_BACKENDS_CFILES): Add elf64-ppc.c.
	Run "make dep-am".
	* Makefile.in: Regenerate.
	* configure.in: Add elf64_powerpc vecs.
	* configure: Regenerate.
	* cpu-powerpc.c: Default to bfd_mach_ppc_620 entry for 64 bit.
	* elf.c (prep_headers): EM_PPC64 for 64 bit ppc elf target.
	* targets.c: Add bfd_elf64_powerpc_vec and bfd_elf64_powerpcle_vec.
	* elf64-ppc.c: New file.
	* reloc.c: Add powerpc64 relocs.
	* libbfd.h: Regenerate.
	* bfd-in2.h: Regenerate.
2001-08-27 10:22:03 +00:00
Andreas Schwab
aa91b392b3 * elf32-m68k.c (elf32_m68k_check_relocs): Set DF_TEXTREL if the
reloc is against read-only section.
	(elf32_m68k_size_dynamic_sections): Use DF_TEXTREL flag instead of
	looking up section names for DT_TEXTREL.
	(elf32_m68k_reloc_type_class): New function.
	(elf_backend_reloc_type_class): Define.
2001-08-27 09:16:10 +00:00
Andreas Jaeger
29c2fb7c2b * elf64-s390.c (elf_s390_check_relocs): Set DF_TEXTREL if the
reloc is against read-only section.
	(elf_s390_size_dynamic_sections): Use DF_TEXTREL flag instead of
	looking up section names for DT_TEXTREL.
	(elf_s390_reloc_type_class): New.
	(elf_backend_reloc_type_class): Define.

	* elf32-s390.c (elf_s390_check_relocs): Set DF_TEXTREL if the
	reloc is against read-only section.
	(elf_s390_size_dynamic_sections): Use DF_TEXTREL flag instead of
	looking up section names for DT_TEXTREL.
	(elf_s390_reloc_type_class): New.
	(elf_backend_reloc_type_class): Define.

	* elf32-ppc.c (ppc_elf_check_relocs): Set DF_TEXTREL if the reloc
	is against read-only section.
	(ppc_elf_size_dynamic_sections): Use DF_TEXTREL flag instead of
	looking up section names for DT_TEXTREL.
	(ppc_elf_reloc_type_class): New.
	(elf_backend_reloc_type_class): Define.
2001-08-27 08:59:08 +00:00
Andreas Jaeger
99e4ae17b9 * elf32-cris.c (cris_elf_check_relocs): Set DF_TEXTREL if the
reloc is against read-only section.
	(elf_cris_size_dynamic_sections): Use DF_TEXTREL flag instead of
	looking up section names for DT_TEXTREL.
	(elf_cris_reloc_type_class): New.
	(elf_backend_reloc_type_class): Define.

	* elf32-sh.c (sh_elf_check_relocs): Set DF_TEXTREL if the reloc is
	against read-only section.
	(elf_backend_reloc_type_class): Define.
	(sh_elf_reloc_type_class): New.
	(sh_elf_size_dynamic_sections): Use DF_TEXTREL flag instead of
	looking up section names for DT_TEXTREL.

	* elf32-arm.h (elf32_arm_check_relocs): Set DF_TEXTREL if the
	reloc is against read-only section.
	(elf32_arm_size_dynamic_sections): Use DF_TEXTREL flag instead of
	looking up section names for DT_TEXTREL.
	(elf32_arm_reloc_type_class): New.
2001-08-26 18:03:19 +00:00
Andreas Jaeger
24a35864ab * oasys.c: Add missing prototypes.
* elf64-alpha.c (elf64_alpha_size_dynamic_sections): Add unused
	attribute for parameter.
	* elf.c (_bfd_elf_reloc_type_class): Likewise.

	* versados.c (get_4): Make static.
	(get_10): Make static.
	Add missing prototypes.
	(process_esd): Fix call to versados_new_symbol.
2001-08-26 11:46:04 +00:00
Nick Clifton
917583ad77 Add missing prototypes 2001-08-25 09:49:44 +00:00
Thiemo Seufer
aee61b1396 * elf32-mips.c (elf_mips_abi_name): Return the right ABI string for
E_MIPS_ABI_O64 and E_MIPS_ABI_EABI64
2001-08-25 01:27:54 +00:00
H.J. Lu
b0f35f365d 2001-08-24 H.J. Lu <hjl@gnu.org>
* elf.c (_bfd_elf_merge_sections): Fail if not using an ELF
	hash structure.
2001-08-24 20:10:25 +00:00
Nick Clifton
8ea2e4bd70 Apply H.J.'s patch to revert change to elfxx-target.h
Apply my patch to allow SREC as output format.
2001-08-24 16:36:04 +00:00
Alexandre Oliva
8c98ec7dcc * bfd.c (bfd_alt_mach_code): New function.
* bfd-in2.h: Rebuilt.
2001-08-24 13:55:55 +00:00
Alexandre Oliva
17ea634937 * elf-m10300.c (mn10300_elf_relocate_section): Test the right
`type' field in the hash entry when deciding whether to follow a
link.
2001-08-24 13:14:46 +00:00
Jakub Jelinek
fcfbdf319e * elflink.h (elf_link_sort_cmp1): Sort RELATIVE relocs first, not
last.
	(elf_link_sort_relocs): Adjust accordingly.

	* elf64-alpha.c (struct alpha_elf_link_hash_entry): Add reltext flag.
	(elf64_alpha_check_relocs): Set it if section this reloc is against
	is read-only.  Set DF_TEXTREL if a RELATIVE reloc is needed against
	read-only section.
	(elf64_alpha_calc_dynrel_sizes): Set DF_TEXTREL flag if relocation
	is is against read-only section.
	(elf64_alpha_size_dynamic_sections): Use DF_TEXTREL flag, don't
	check section names.
	(elf64_alpha_reloc_type_class): New.
	(elf_backend_reloc_type_class): Define.
2001-08-24 11:17:30 +00:00
Thiemo Seufer
f6be24f9a4 * linker.c (_bfd_generic_link_add_archive_symbols): Replace alloca()
by bfd_malloc().
2001-08-24 03:56:28 +00:00
Andreas Jaeger
8df9fc9d6a * elf64-x86-64.c (elf64_x86_64_check_relocs): Set DF_TEXTREL if
the reloc is against read-only section.
	(elf64_x86_64_size_dynamic_sections): Use DF_TEXTREL flag instead
	of looking up section names for DT_TEXTREL.
	(elf64_x86_64_reloc_type_class): New.
	(elf_backend_reloc_type_class): Define.
2001-08-23 18:14:29 +00:00
Nick Clifton
f4ffd77818 Add more missing prototypes 2001-08-23 17:05:52 +00:00
H.J. Lu
60b89a1878 2001-08-23 H.J. Lu <hjl@gnu.org>
* syms.c (bfd_print_symbol_vandf): Add abfd to arg.
	* bfd-in2.h (bfd_print_symbol_vandf): Regenerated.

	* aoutx.h (NAME(aout,print_symbol)): Pass abfd to
	bfd_print_symbol_vandf.
	* coffgen.c (coff_print_symbol): Likewise.
	* elf.c (bfd_elf_print_symbol): Likewise.
	* ieee.c (ieee_print_symbol): Likewise.
	* nlmcode.h (nlm_print_symbol): Likewise.
	* oasys.c (oasys_print_symbol): Likewise.
	* pdp11.c (NAME(aout,print_symbol)): Likewise.
	* som.c (som_print_symbol): Likewise.
	* srec.c (srec_print_symbol): Likewise.
	* tekhex.c (tekhex_print_symbol): Likewise.
	* versados.c (versados_print_symbol): Likewise.
	* vms.c (vms_print_symbol): Likewise.

	* elf.c (_bfd_elf_print_private_bfd_data): Replace fprintf_vma
	with bfd_fprintf_vma.
	(bfd_elf_print_symbol): Likewise.
	* syms.c (bfd_print_symbol_vandf): Likewise.
2001-08-23 15:45:19 +00:00
Nick Clifton
67a374a5f1 Add missing prototypes for bout.c 2001-08-23 15:30:34 +00:00
Jakub Jelinek
db6751f2e7 * elf-bfd.h (enum elf_reloc_type_class): New.
(struct elf_backend_data): Add elf_backend_reloc_type_class.
	(_bfd_elf_reloc_type_class): New.
	* elfxx-target.h (elf_backend_reloc_type_class): Define.
	(elfNN_bed): Add elf_backend_reloc_type_class.
	* elf.c (_bfd_elf_reloc_type_class): New.
	* elf32-i386.c (elf_i386_check_relocs): Set DF_TEXTREL if the reloc
	is against read-only section.
	(elf_i386_size_dynamic_sections): Use DF_TEXTREL flag instead of
	looking up section names for DT_TEXTREL.
	(elf_i386_reloc_type_class): New.
	(elf_backend_reloc_type_class): Define.
	* elf32-sparc.c (elf32_sparc_check_relocs): Set DF_TEXTREL if the
	reloc is against read-only section.
	(elf32_sparc_size_dynamic_sections): Use DF_TEXTREL flag instead of
	looking up section names for DT_TEXTREL.
	(elf32_sparc_reloc_type_class): New.
	(elf_backend_reloc_type_class): Define.
	* elf64-sparc.c (sparc64_elf_check_relocs): Set DF_TEXTREL if the
	reloc is against read-only section.
	(sparc64_elf_size_dynamic_sections): Use DF_TEXTREL flag instead of
	looking up section names for DT_TEXTREL.
	(sparc64_elf_reloc_type_class): New.
	(elf_backend_reloc_type_class): Define.
	* elfxx-ia64.c (struct elfNN_ia64_link_hash_table): Add reltext field.
	(elfNN_ia64_hash_table_create): Clear ia64_info.
	(get_reloc_section): Set DF_TEXTREL if the reloc is against read-only
	section.
	(elfNN_ia64_size_dynamic_sections): Use ia64_info->reltext flag
	instead of looking up section names for DT_TEXTREL.
	(elfNN_ia64_reloc_type_class): New.
	(elf_backend_reloc_type_class): Define.
	* elflink.h (size_dynamic_sections): Add spare DT_NULL tags.
	(struct elf_link_sort_rela): New.
	(elf_link_sort_cmp1, elf_link_sort_cmp2, elf_link_sort_relocs): New.
	(elf_bfd_final_link): Call elf_link_sort_relocs.
	Convert one spare DT_NULL into DT_RELCOUNT resp. DT_RELACOUNT if
	necessary.

	* bfdlink.h (struct bfd_link_info): Add combreloc and
	spare_dynamic_tags fields.

	* emultempl/elf32.em (place_orphan): Place orphan .rel* sections
	into .rel.dyn resp. .rela.dyn if combreloc.
	(get_script): If .x linker script is equal to .xn, only put it
	once into the binary.
	Add .xc and .xsc scripts.
	(parse_args): Handle -z combreloc and -z nocombreloc.
	* scripttempl/elf.sc (.rela.sbss): Fix a typo.
	For .xc and .xsc scripts put all .rel* or .rela* input sections
	but .rel*.plt and PLT-like sections into .rel.dyn resp. .rela.dyn.
	* genscripts.sh (GENERATE_COMBRELOC_SCRIPT): Set if SCRIPT_NAME
	is elf.
	Strip trailing whitespace from script.
	Generate .xc and .xsc scripts if requested.
	* ldmain.c (main): Initialize link_info.combreloc and
	link_info.spare_dynamic_tags.
	* lexsup.c (OPTION_SPARE_DYNAMIC_TAGS): Define.
	(ld_options): Add --spare-dynamic-tags option.
	(parse_args): Likewise.
	* ld.texinfo: Document -z combreloc and -z nocombreloc.
	* ldint.texinfo: Document .xc and .xsc linker scripts.
	* NEWS: Add notes about -z combreloc and SHF_MERGE.
2001-08-23 15:14:18 +00:00
Nick Clifton
7e3b3466d0 No corefile support for x86-bsdi systems 2001-08-23 14:33:50 +00:00
Nick Clifton
26cd54bf89 Add missing comma 2001-08-22 08:43:00 +00:00
DJ Delorie
4f6fbb1acd * coff-go32.c: Set the alignment of dwarf2 linkonce sections to 0.
* coff-stgo32.c: Likewise.
2001-08-21 22:39:47 +00:00
DJ Delorie
a7bda527f6 * coff-go32.c: Make DWARF2 sections use an alignment of 0.
* coff-sto32.c: Likewise.
2001-08-21 20:23:38 +00:00
Andreas Jaeger
5a65713f64 * coff-sparc.c: Add missing prototypes.
* elf32-s390.c: Likewise.
	* elf32-i960.c: Likewise.
	* aout-target.h: Likewise.
2001-08-21 08:40:23 +00:00
H.J. Lu
4e89ac30f3 2001-08-20 H.J. Lu <hjl@gnu.org>
* elf-bfd.h (elf_obj_tdata): Add num_section_syms.
	(elf_num_section_syms): New for num_section_syms.

	* elf.c (elf_map_symbols): Set num_section_syms.
	(_bfd_elf_symbol_from_bfd_symbol): Check num_section_syms for
	the section symbol index.
2001-08-21 01:02:41 +00:00
Nick Clifton
28db233b6c Never select the generic has table creator. All elf backends need elf specific
fields in the hash table.
2001-08-20 14:28:46 +00:00
Alan Modra
ba3ef70e78 * archive.c (offsetof): Remove define.
* elf.c: Likewise.
	* oasys.c: Likewise
	* sysdep.h (offsetof): Define.
2001-08-19 23:42:47 +00:00
Alan Modra
c0846b2397 * bfd.c (bfd_get_gp_size): Return an unsigned int.
(bfd_set_gp_size): Make param unsigned.
	* bfd-in2.h: Regenerate.
	* elf32-ppc.c (ppc_elf_add_symbol_hook): Use elf_gp_size rather
	than calling bfd_get_gp_size.
	* elf64-alpha.c (elf64_alpha_add_symbol_hook): Likewise.
	* elfxx-ia64.c (elfNN_ia64_add_symbol_hook): Likewise.
2001-08-17 15:56:58 +00:00
Alan Modra
0ac450b689 * linker.c (default_fill_link_order): Handle four byte fill value. 2001-08-17 09:50:05 +00:00
Alan Modra
5d964dfa3e * elf64-sparc.c (sparc64_elf_output_arch_syms): Add missing
prototype.
	* nlm32-alpha.c (nlm_alpha_write_external): Fix warning.
2001-08-17 09:44:19 +00:00
Alan Modra
5e57284986 * elf64-mips.c (UNUSED_RELOC): Define.
(mips_elf64_howto_table_rel): Use it.
	(mips_elf64_howto_table_rela): Here too.
	(mips_elf64_write_relocs): Fix signed/unsigned warning.
2001-08-17 09:21:34 +00:00
Alan Modra
cea4409c0f * coffcode.h (coff_write_object_contents): Add ATTRIBUTE_UNUSED to
silence warning.
	* coffgen.c (coff_print_symbol): Fix warnings.
	(coff_find_nearest_line): Likewise.
	* cofflink.c (_bfd_coff_link_input_bfd): Likewise.
	* coff-alpha.c (alpha_convert_external_reloc): Likewise.
	* format.c (bfd_check_format_matches): Likewise.
	(bfd_set_format): Likewise.
	* coff-ia64.c: Add missing prototypes.
	* elf64-alpha.c (struct alpha_elf_link_hash_entry): Make addend
	signed to silence warnings.
	(elf64_alpha_relocate_section): Likewise.
	(elf64_alpha_find_reloc_at_ofs): Fix warnings.
	(elf64_alpha_add_symbol_hook): Likewise.
	(elf64_alpha_final_link): Likewise.
	(elf64_alpha_relax_section): Remove redundant assign to info.gotent.
	(elf64_alpha_merge_gots): Add ATTRIBUTE_UNUSED to unused args.
	(elf64_alpha_size_got_sections): Likewise.
	* elfxx-ia64.c: Add missing prototypes.
	(elfNN_ia64_relocate_section): Fix warning.
	(elfNN_ia64_unwind_entry_compare): Make params const.
2001-08-17 08:57:42 +00:00
Alan Modra
e9e69f5a09 * config.bfd (targ64_selvecs): New.
<powerpc-*-aix* entry>: Use it here instead of ineffectual #ifdef.
2001-08-17 04:17:18 +00:00
Alan Modra
69263e9083 * bfd-in.h (BFD_VERSION): Remove wrong comment.
(BFD_DEFAULT_TARGET_SIZE): New.
	(BFD_ARCH_SIZE): Comment.
	* configure.in (target_size): New.  Set instead of target64 in
	selvecs case statement.  Set target64 from it.
	(bfd_default_target_size): New.  Set from taget_size. AC_SUBST.
	* bfd-in2.h: Regenerate.
	* configure: Regenerate.
2001-08-17 03:54:53 +00:00
Alan Modra
3619ad0439 * bfd.c (enum bfd_error): Add bfd_error_wrong_object_format.
(bfd_errmsgs): Add corresponding message.
	* archive.c (bfd_generic_archive_p): Don't release bfd_ardata when
	finding an archive that contains different format object files.
	Return bfd_error_wrong_object_format for this case.
	* format.c: Formatting fixes.  s/CONST/const/.
	(bfd_check_format_matches): Accept archives that give
	bfd_error_wrong_object_format if no full match is found.  Tidy
	code handling matching_vector.  Don't return a pointer to freed
	memory in `matching'.  Handle ambiguous matches as for partial
	archive matches.
	* bfd-in2.h: Regenerate.
2001-08-17 03:19:01 +00:00
Alan Modra
47fda0d3d9 * libieee.h (common_header_type): Add last_byte field.
* ieee.c: Add missing prototypes.  Some format fixes.
	(struct output_buffer_struct): Move for availability to prototypes.
	(ieee_part_after): New function.
	(ieee_slurp_debug): Use it here.
	(ieee_seek): Pass in ieee_data_struct rather than bfd.  Use
	ieee_part_after to set last_byte to one past end of current part.
	Update callers.
	(ieee_pos): Pass in ieee_data_struct rather than bfd.
	Update callers.
	(parse_expression): Don't go beyond the end of the current part.
	(ieee_slurp_external_symbols): Correct type passed to read_2bytes.
	(ieee_get_symtab_upper_bound, ieee_get_symtab,
	ieee_get_symbol_info, ieee_print_symbol, ieee_new_section_hook,
	ieee_get_reloc_upper_bound, ieee_canonicalize_reloc, block,
	ieee_set_section_contents, ieee_write_object_contents,
	ieee_make_empty_symbol): Make static.
	(ieee_archive_p): Correct comments regarding bfd_read.
	(ieee_object_p): Similarly.
	(ieee_mkobject): Move it.  Clear output_ptr_start, output_ptr,
	output_ptr_end, input_ptr_start, input_ptr, input_ptr_end,
	input_bfd, output_bfd, output_buffer.
	(do_as_repeat): Write out ieee_set_current_pc_enum value as for
	do_with_relocs, ie. as a symbol for relocatable files.
	(ieee_vec): Add comments showing functions referenced by macros.
2001-08-15 14:44:40 +00:00
Nick Clifton
1725a96ea6 Add missing protypes 2001-08-14 10:01:29 +00:00
Nick Clifton
fa645acb92 oops - omitted from previous delta! 2001-08-13 10:06:53 +00:00
Nick Clifton
4e771d61a3 replace direct invocation og elf vma print functions with indirect invocation 2001-08-11 16:48:15 +00:00
Andreas Jaeger
99c79b2e5d 2001-08-10 Andreas Jaeger <aj@suse.de>
* elf64-sparc.c: Add missing prototypes.
	* elf32-cris.c: Likewise.
	* elf32-i370.c: Likewise.
	* elf64-hppa.c: Likewise.
	* elf64-s390.c: Likewise.
2001-08-11 07:59:54 +00:00
Andreas Jaeger
1e1b3bc252 * elf64-x86-64.c (elf64_x86_64_elf_object_p): Make static.
Add prototypes where needed.
2001-08-10 19:29:59 +00:00
H.J. Lu
ef071f2471 2001-08-10 H.J. Lu <hjl@gnu.org>
* bfd.c (bfd_sprintf_vma): Fix a typo in the last change.
	(bfd_fprintf_vma): Likewise.
2001-08-10 18:43:44 +00:00
H.J. Lu
5c36c02b3b 2001-08-10 H.J. Lu <hjl@gnu.org>
* bfd.c (bfd_sprintf_vma): Don't return void.
	(bfd_fprintf_vma): Likewise.
2001-08-10 16:32:03 +00:00
Andreas Jaeger
0218d1e4c2 * configure.in: Add -Wstrict-prototypes and -Wmissing-prototypes
to build warnings.
	* configure: Regenerate.
2001-08-10 10:56:47 +00:00
Alan Modra
cc55aec9b7 * elf.c (bfd_elf_sprintf_vma): Add ATTRIBUTE_UNUSED to quiet
warning if not BFD64.  Add braces so emacs auto format works.
	(bfd_elf_fprintf_vma): Likewise.
2001-08-10 08:06:23 +00:00
Alan Modra
814fa6ab15 * libxcoff.h (struct xcoff_backend_data_rec): Constify src param
of _xcoff_swap_ld*.
	* coff-rs6000.c (xcoff_swap_ldhdr_in): Modify type of external
	param to agree with libxcoff.h.
	(xcoff_swap_ldhdr_out): Likewise.
	(xcoff_swap_ldsym_in): Likewise.
	(xcoff_swap_ldsym_out): Likewise.
	(xcoff_swap_ldrel_in): Likewise.
	(xcoff_swap_ldrel_out): Likewise.
	(xcoff_create_csect_from_smclas): Likewise.
	* coff64-rs6000.c: Add missing prototypes.
	(xcoff64_swap_ldhdr_in): Modify type of external param to agree
	with libxcoff.h.
	(xcoff64_swap_ldhdr_out): Likewise.
	(xcoff64_swap_ldsym_in): Likewise.
	(xcoff64_swap_ldsym_out): Likewise.
	(xcoff64_swap_ldrel_in): Likewise.
	(xcoff64_swap_ldrel_out): Likewise.
	(xcoff64_ppc_relocate_section): Make static.
	(xcoff64_slurp_armap): Likewise.
	(xcoff64_archive_p): Likewise.
	(xcoff64_openr_next_archived_file): Likewise.
	(xcoff64_sizeof_headers): Likewise.
	(xcoff64_is_lineno_count_overflow): Likewise.
	(xcoff64_is_reloc_count_overflow): Likewise.
	(xcoff64_loader_symbol_offset): Likewise.
	(xcoff64_loader_reloc_offset): Likewise.
	* elf64-gen.c: Add missing prototypes.
2001-08-10 06:00:53 +00:00
H.J. Lu
d3b05f8d41 2001-08-09 H.J. Lu <hjl@gnu.org>
* elf.c (bfd_elf_sprintf_vma): Check ELFCLASS64 only in BFD64.
	(bfd_elf_fprintf_vma): Likewise.
2001-08-09 21:10:25 +00:00
H.J. Lu
d69bb69b89 2001-08-09 H.J. Lu <hjl@gnu.org>
* bfd-in.h (bfd_elf_sprintf_vma, bfd_elf_fprintf_vma): Moved
	to ...
	* elf-bfd.h: Here.
	* bfd-in2.h: Regenerated.
2001-08-09 16:46:02 +00:00
H.J. Lu
ae4221d7c2 2001-08-09 H.J. Lu <hjl@gnu.org>
* bfd-in.h (bfd_sprintf_vma): New prototype.
	(bfd_fprintf_vma): Likewise.
	(bfd_elf_sprintf_vma): Likewise.
	(bfd_elf_fprintf_vma): Likewise.
	(bfd_printf_vma): New. Defined with bfd_fprintf_vma.
	* bfd-in2.h: Regenerated.

	* bfd.c (bfd_sprintf_vma): New. Defined.
	(bfd_fprintf_vma): Likewise.

	* elf.c (bfd_elf_sprintf_vma): New. Defined.
	(bfd_elf_fprintf_vma): Likewise.
2001-08-09 16:00:21 +00:00
Alan Modra
a7b97311da * coff-rs6000.c: Add missing prototypes.
(xcoff_ppc_relocate_section, xcoff_is_lineno_count_overflow,
	xcoff_is_reloc_count_overflow, xcoff_loader_symbol_offset,
	xcoff_loader_reloc_offset): Make static.
	* dwarf1.c: Add missing prototypes.
	* dwarf2.c: Add missing prototypes.
	(struct abbrev_info): Move definition.
	(struct attr_abbrev, ABBREV_HASH_SIZE, ATTR_ALLOC_CHUNK): Likewise.
	* elf.c: Add missing prototypes.
	* elf32-gen.c: Likewise.
	* elf32-i386.c: Likewise.
	* elf32-ppc.c: Likewise.
	(ppc_elf_sort_rela): Use PTR instead of "void *".
	* elflink.h: Add missing prototypes.  Formatting fixes.
	* merge.c: Add missing prototypes.
	(last4_eq): Use PTR instead of "void *".
	(last_eq): Likewise.
	* syms.c: Add missing prototypes.
2001-08-09 14:38:04 +00:00
Nick Clifton
55ab10f0ee Fix formatting 2001-08-09 09:09:03 +00:00
Nick Clifton
1c26dc27b5 Change 'partial_inplace' to true (this target uses REL relocations) and
'pcrel_offset' to false (the PC is implied, not stored in the offset).
2001-08-09 09:00:58 +00:00
Alan Modra
2517a57fdf * elf-bfd.h (struct elf_backend_data): Add want_got_sym.
* elfxx-target.h (elf_backend_want_got_sym): Define.
	(elfNN_bed): Add elf_backend_want_got_sym.
	* elflink.c (_bfd_elf_create_got_section): Define
	_GLOBAL_OFFSET_TABLE_ only if bed->want_got_sym.
2001-08-08 13:09:33 +00:00
Alexandre Oliva
f2363ce55b * dwarf2.c (struct dwarf2_debug): Add sec, sec_info_ptr and syms.
(find_rela_addend): New function.
(parse_comp_unit): Call it to find the abbrev offset addend.
(_bfd_dwarf2_find_nearest_line): Initialize and maintain the new
members of dwarf2_debug as debugging information is read.
2001-08-08 11:17:34 +00:00
Nick Clifton
993e9275d7 Support relocs for sh-coff targets as well as sh-pe. 2001-08-07 18:32:07 +00:00
Nick Clifton
62efb34674 Include offset of reloc from start of section when computing value for
R_ARM_REL32 reloc.
2001-08-03 11:14:42 +00:00
Alan Modra
8e1d4bbbc0 * elf32-i386.c (allocate_plt_and_got_and_discard_relocs): Don't
keep relocs for undefined syms if there are no dynamic sections in
	executable.
	* elf32-hppa.c (allocate_plt_and_got_and_discard_relocs): Likewise.
2001-08-03 05:10:39 +00:00
Charles Wilson
8ceb7a1b8e 2001-08-02 Paul Sokolovsky <paul.sokolovsky@technologist.com>
* cofflink.c (coff_link_check_ar_symbols): also search for
        __imp__symbol as well as _symbol.
        * linker.c (_bfd_generic_link_add_archive_symbols): also
        search for __imp__symbol as well as _symbol.
2001-08-02 23:05:54 +00:00
Nick Clifton
00a7cdc55a Return zero only as the last step of qsort function. 2001-08-01 16:10:42 +00:00
Nick Clifton
d8adc60f05 Replace VXWORKS with ARM_COFF_BUGFIX. 2001-08-01 15:18:32 +00:00
Nick Clifton
407c2b92ba Fix prototype of _bfd_ecoff_styp_to_sec_flags 2001-07-30 18:38:35 +00:00
Alan Modra
8a5cc6beb1 Update dependencies with "make dep-am". 2001-07-24 10:02:00 +00:00
H.J. Lu
01467f2afb 2001-07-15 H.J. Lu <hjl@gnu.org>
* Makefile.am (po/SRC-POTFILES.in): Use tmp.src instead of tmp.
	(po/BLD-POTFILES.in): Use tmp.bld instead of tmp.
	* Makefile.in: Regenerate.
2001-07-15 19:33:11 +00:00
H.J. Lu
824e2cb428 2001-07-11 H.J. Lu <hjl@gnu.org>
* elf64-alpha.c (elf64_alpha_check_relocs): Set the ALLOC|LOAD
	flags when creating the reloc section if the ALLOC flag in the
	source section is set.
2001-07-12 04:24:44 +00:00
Jim Wilson
a4bd839069 sje patch for 32-bit IA-64 ELF relocs for HPUX
* reloc.c (bfd_reloc_code_type): Add IA64 relocs
	BFD_RELOC_IA64_LTOFF_FPTR32MSB and BFD_RELOC_IA64_LTOFF_FPTR32LSB
	* bfd-in2.h: Regenerate.
	* libbfd.h: Regenerate.
	* elfxx-ia64.c (ia64_howto_table): Define how to handle
	new relocations.
	(elfNN_ia64_reloc_type_lookup): Handle new relocations.
	(elfNN_ia64_check_relocs): Likewise.
	(elfNN_ia64_install_value): Likewise.
	(elfNN_ia64_relocate_section): Likewise.
2001-07-12 01:24:14 +00:00
Jakub Jelinek
20278fa326 * elf32-sparc.c (_bfd_sparc_elf_howto_table): Remove support for
R_SPARC_UA64.
	(elf32_sparc_check_relocs): Likewise.
	Only create .rela section for alloced sections in shared libraries.
	(elf32_sparc_relocate_section): Likewise.
	Remove redundant check.
	Optimize unaligned reloc usage.
	* elf64-sparc.c (sparc64_elf_relocate_section): Remove redundant
	check.

	* testsuite/gas/sparc/unalign.s: Remove .uaxword test.
	* testsuite/gas/sparc/unalign.d: Adjust accordingly.
2001-07-11 19:40:32 +00:00
H.J. Lu
067a7d17c4 2001-07-11 H.J. Lu <hjl@gnu.org>
* elf64-alpha.c (elf64_alpha_check_relocs): Only use the same
	ALLOC|LOAD flags as the source section for debugging sections
	when creating the reloc section.
2001-07-11 19:03:10 +00:00
Jim Wilson
0a2afbc13a Fix ia64-linux fortran common linking problem.
* linker.c (_bfd_generic_link_add_one_symbol, case BIG): Use
	the section of the bigger symbol.
2001-07-05 22:40:16 +00:00
Jim Wilson
a78f18dc3a Fix ia64-linux binutils readelf -s testsuite failure.
* syms.c (bfd_is_local_label): Return false if BSF_SECTION_SYM.
2001-07-05 18:27:55 +00:00
Nick Clifton
0515494aac For sections containing uninitialised data, only set their size to s_paddr
if this does not reset their size to zero.  MS's latest compilers will set
s_paddr to zero.
2001-07-05 10:52:25 +00:00
H.J. Lu
5e7079af51 2001-07-04 H.J. Lu <hjl@gnu.org>
* bfd/elf32-mips.c (_bfd_mips_elf_final_write_processing):
	Handle bfd_mach_mips4400, bfd_mach_mips4600 and
	bfd_mach_mips5000.
2001-07-04 07:15:20 +00:00
Nick Clifton
f47e50716b Support DJGPP COFF targets in bfd_get_sign_extend_vma() 2001-07-03 16:27:45 +00:00
Nick Clifton
440c46077c Skip section symbols from sections being discarded 2001-07-03 15:49:46 +00:00
Alan Modra
936e320bf4 * elfcore.h (elf_core_file_p): Call bfd_section_from_phdr directly
instead of _bfd_elfcore_section_from_phdr.
	* elf-bfd.h (_bfd_elfcore_section_from_phdr): Remove.
	* elf.c (_bfd_elfcore_section_from_phdr): Remove.
	(_bfd_elfcore_make_pseudosection): Expedite tail-call.
	(elfcore_grok_prstatus): Likewise.
	(elfcore_grok_lwpstatus): Likewise.
	(bfd_get_elf_phdr_upper_bound): Likewise.
	(elfcore_make_note_pseudosection): Formatting.
	(_bfd_elfcore_strndup): Formatting.
	* elf32-mips.c (mips_elf_sym_is_global): Formatting.
	(_bfd_elf32_mips_grok_prstatus): Expedite tail-call.
2001-06-30 04:05:13 +00:00
Alan Modra
bb0082d686 * elf-bfd.h: Add prototypes for _bfd_elfcore_make_pseudosection
and _bfd_elfcore_strndup.
	(struct elf_backend_data): Add elf_backend_grok_prstatus
	and elf_backend_grok_psinfo.
	* elf.c (_bfd_elfcore_make_pseudosection): New function.
	(elfcore_grok_prstatus): Use it.
	(elfcore_make_note_pseudosection): Likewise.
	(elfcore_strndup):  Rename to...
	(_bfd_elfcore_strndup): Here, and make global.
	(elfcore_grok_psinfo): Use _bfd_elfcore_strndup.
	(elfcore_grok_note): Call elf_backend_grok_prstatus
	and elf_backend_grok_psinfo if available.
	* elf32-mips.c (_bfd_elf32_mips_grok_prstatus): New function.
	(_bfd_elf32_mips_grok_psinfo): New function.
	(elf_backend_grok_prstatus): Define.
	(elf_backend_grok_psinfo): Define.
	* elfxx-target.h (elf_backend_grok_prstatus): Default to NULL.
	(elf_backend_grok_psinfo): Likewise.
	(elfNN_bed): Include elf_backend_grok_prstatus and
	elf_backend_grok_psinfo.
2001-06-30 03:15:46 +00:00
H.J. Lu
b64977c5ff 2001-06-29 H.J. Lu <hjl@gnu.org>
* elf32-hppa.c (elf32_hppa_finish_dynamic_sections): Check if
	hplink->sgot is NULL before filling GOT. Checck if hplink->splt
	is NULL before filling PLT.
2001-06-30 00:34:10 +00:00
Alan Modra
e45bf86378 * elflink.h (elf_link_output_extsym): Revert 1999-04-10. 2001-06-29 07:00:33 +00:00
Alan Modra
446f286313 Avoid creating COPY relocs.
* elf32-hppa.c (elf32_hppa_check_relocs): Don't make syms dynamic
	here..
	(elf32_hppa_adjust_dynamic_symbol): ..nor here..
	(allocate_plt_and_got_and_discard_relocs): .. instead do so here
	after gc has run.
	* elf32-hppa.c (RELATIVE_DYNAMIC_RELOCS): Delete.
	(IS_ABSOLUTE_RELOC): Define.
	(elf32_hppa_link_hash_entry): Always include reloc_entries field.
	(hppa_link_hash_newfunc): Always init it.
	(elf32_hppa_check_relocs): Mark symbols as ELF_LINK_NON_GOT_REF to
	create COPY relocs only when the reloc is in a read-only section.
	Instead, allocate space for a dynamic reloc to reference the
	library symbol directly.  Keep track of space we allocate using
	relocs_entries.
	(hppa_discard_copies): Delete, and move code to..
	(allocate_plt_and_got): ..here.  Rename to
	allocate_plt_and_got_and_discard_relocs.  Remove unneeded dynamic
	relocs for non-shared link.
	(elf32_hppa_size_dynamic_sections): Update calls to above.
	(elf32_hppa_relocate_section): Write out the dynamic relocs used
	in lieu of COPY relocs.
2001-06-27 02:42:09 +00:00
Alan Modra
5a15f56fea * elf32-i386.c (elf_i386_check_relocs): Don't make syms dynamic
here..
	(elf_i386_adjust_dynamic_symbol): ..nor here..
	(allocate_plt_and_got_and_discard_relocs): .. instead do so here
	after gc has run.
	(elf_i386_size_dynamic_sections): Fix a comment.
	(elf_i386_relocate_section <R_386_32, R_386_PC32>): Rearrange code
	involved in writing reloc out.
2001-06-27 01:46:17 +00:00
Alan Modra
28d0b90eb7 * elf32-i386.c (elf_i386_check_relocs <R_386_32, R_386_PC32>):
Ensure syms are dynamic if we might be emitting a reloc.
	(allocate_plt_and_got_and_discard_relocs): Don't discard relocs
	for undefweak or undefined syms..
	(elf_i386_relocate_section <R_386_32, R_386_PC32>): .. and emit.
2001-06-25 08:16:44 +00:00
Alan Modra
866b34001a * elf32-i386.c (allocate_plt_and_got_and_discard_relocs): Discard
relocs without ELF_LINK_HASH_DEF_DYNAMIC set.
	(elf_i386_relocate_section <R_386_32, R_386_PC32>): Remove
	redundant bfd_link_hash_defined, bfd_link_hash_defweak test.
2001-06-25 02:40:47 +00:00
H.J. Lu
6cbac8b9dd 2001-06-24 H.J. Lu <hjl@gnu.org>
* cpu-i960.c (scan_960_mach): Don't modify const char *. Use
	strncasecmp/strcasecmp instead of strncmp/strcmp.
2001-06-24 16:06:38 +00:00
H.J. Lu
62b7d3f1f1 2001-06-23 H.J. Lu <hjl@gnu.org>
* elf32-i386.c (elf_i386_relocate_section): Check the
	ELF_LINK_HASH_DEF_DYNAMIC to see if a symbol is not defined
	in the regular object file and treat the weak definition as
	the normal one.
2001-06-24 00:36:47 +00:00
Alan Modra
8c69491410 * elf32-i386.c (elf_i386_relocate_section <R_386_GOT32>): Tighten
unresolved_reloc test to exclude cases where we use "relocation"
	before setting it to point into the .got.  Reinstate fudge for
	unresolved relocs in debugging sections.
2001-06-23 15:02:43 +00:00
Alan Modra
83be169b62 * elf32-i386.c (elf_i386_relocate_section): Replace ugly
complicated tests for unresolvable relocs with a simple direct
	scheme using "unresolved_reloc" var.
2001-06-23 11:01:44 +00:00
Alan Modra
ffb2e45bfb * elf32-i386.c (struct elf_i386_pcrel_relocs_copied): Rename to
elf_i386_dyn_relocs.  Update comment.
	(struct elf_i386_link_hash_entry): Rename pcrel_relocs_copied to
	dyn_relocs.
	(elf_i386_adjust_dynamic_symbol): Remove a BFD_ASSERT, change
	others to aborts.
	(allocate_plt_and_got_and_discard_relocs): Replace BFD_ASSERT with
	abort.
	(elf_i386_size_dynamic_sections): Likewise.
	(elf_i386_finish_dynamic_symbol): Likewise.
	(elf_i386_finish_dynamic_sections): Likewise.
	(elf_i386_relocate_section): Likewise.  Tidy R_386_GOT32 and error
	handling code.
2001-06-23 10:03:53 +00:00
Alan Modra
12d0ee4aca Avoid creating COPY relocs if possible.
* elf32-i386.c (elf_i386_check_relocs): Tweak condition under
	which .got created.  Mark symbols used by R_386_32 and R_386_PC32
	relocs as ELF_LINK_NON_GOT_REF to create COPY relocs only when the
	reloc is in a read-only section.  Instead, allocate space for a
	dynamic reloc to reference the library symbol directly.  Keep
	track of space we allocate using pcrel_relocs_copied.
	(discard_copies): Delete, and move code to ..
	(allocate_plt_and_got): ..here.  Rename to
	allocate_plt_and_got_and_discard_relocs.  Remove unneeded dynamic
	relocs for non-shared link.
	(elf_i386_size_dynamic_sections): Update calls to above functions.
	(elf_i386_relocate_section): Write out the dynamic relocs.  Add
	more ugly logic to avoid "unresolvable relocation" error.  Use
	htab shortcut in place of elf_hash_table macro.
	(elf_i386_finish_dynamic_sections): Allow that dynamic .got may
	not always be created now.
2001-06-23 05:54:15 +00:00
Andreas Jaeger
f631948d0b * elf64-x86-64.c (elf64_x86_64_relocate_section): Fix linking of
shared libraries.
2001-06-21 16:33:14 +00:00
Nick Clifton
89084430cd Fix typos 2001-06-21 07:44:32 +00:00
Alan Modra
68fb2e56a3 * elf32-hppa.c (elf32_hppa_size_dynamic_sections): Always
allocate local .got space.  Use shortcuts from hash table for .got
	and .plt rather than comparing section names.
	(elf32_hppa_check_relocs): Use local_plt_refcounts var rather than
	adjusting index into local_got_refcounts to document what we are
	really doing.
	(elf32_hppa_relocate_section): Similarly for local_plt_offsets.
	Tidy .got and .plt error checking.
2001-06-21 05:47:12 +00:00
Catherine Moore
9317eaccac * elf-bfd.h (struct elf_backend_data):
elf_backend_emit_relocs: New field: Function for emitting
        relocs.
        elf_backend_count_relocs: New field: Function for determining
        the number of relocs to be emitted.
        * elfxx-target.h: Provide default (NULL) values for
        elf_backend_emit_relocs and elf_backend_count_relocs.
        * elflink.h (elf_link_size_reloc_section): Make the hash table
        big enough to hold the relocs counted by either reloc_count or
        o->reloc_count.
        (elf_bfd_final_link) emit_relocs: New boolean, set if relocs
        should be emitted, either because of a command line option
        stored in the info structure or because the target provides a
        special reloc emitting function.
        If the target provides a reloc counting function use it,
        unless performing a relocatable link or emitting all relocs.
        Also set the SEC_RELOC flag on any output section which will
        contain relocs.
        (elf_link_input_bfd): emit_relocs: New boolean, set if relocs
        should be emitted, either because of a command line option
        stored in the info structure or because the target provides a
        special reloc emitting function.
        If the target provides a reloc emitting function, use it,
        unless performing a relocatable link or emitting all relocs.
2001-06-20 20:34:10 +00:00
H.J. Lu
161d71a639 2001-06-20 H.J. Lu <hjl@gnu.org>
* elf32-i386.c (elf_i386_size_dynamic_sections): Always
	allocate local .got space.
2001-06-20 18:54:52 +00:00
Andreas Jaeger
fd8ab9e538 (elf64_x86_64_relocate_section): Fix creation of dynamic symbols. 2001-06-19 13:30:40 +00:00
Hans-Peter Nilsson
99293407a5 * elflink.h (struct elf_assign_sym_version_info): Remove member
export_dynamic.  All users changed to use info member.
	NAME(bfd_elf,size_dynamic_sections)): Remove parameter
	export_dynamic, instead use member in parameter info.
	* bfd-in.h (bfd_elf32_size_dynamic_sections,
	bfd_elf64_size_dynamic_sections): Update prototype.
	* bfd-in2.h: Regenerate.
2001-06-18 22:05:10 +00:00
H.J. Lu
bc2b6df7ca 2001-06-18 H.J. Lu <hjl@gnu.org>
* elflink.h (elf_info_failed): Add a new field, verdefs.
	(NAME(bfd_elf,size_dynamic_sections): Pass verdefs to
	elf_export_symbol.
	(elf_export_symbol): Check eif->verdefs to decide if a symbol
	should be exported.
2001-06-18 18:57:06 +00:00
H.J. Lu
4391705434 2001-06-17 H.J. Lu <hjl@gnu.org>
* elf32-mips.c (mips_elf_link_hash_entry): Add a new field,
	readonly_reloc, to record if a relocation in the .rel.dyn
	section is against a read-only section.
	(mips_elf_link_hash_newfunc): Initialize the readonly_reloc
	field to false.
	(_bfd_mips_elf_check_relocs): Record if there is a relocation
	in the .rel.dyn section against a read-only section by setting
	DF_TEXTREL or readonly_reloc.
	(_bfd_mips_elf_copy_indirect_symbol): Copy readonly_reloc if
	it is true.
	(_bfd_mips_elf_adjust_dynamic_symbol): Record DF_TEXTREL if
	there is a relocation in the .rel.dyn section against a
	read-only section.
	(_bfd_mips_elf_size_dynamic_sections): Set DT_TEXTREL if
	DF_TEXTREL is set.
2001-06-17 16:14:42 +00:00
Nick Clifton
7c8ca0e488 Chnage styp_flags_to_sec_flags() to a boolean function 2001-06-15 09:03:14 +00:00
Nick Clifton
dee0a8f47f Only pad the tesxt section if the data section is going to follow it. 2001-06-13 07:58:05 +00:00
Catherine Moore
0d1ea5c088 * elflink.h (elf_gc_propagate_vtable_entries): Replace FILE_ALIGN
with the file_align entry from elf_backend_data.
        (elf_gc_smash_unused_vtentry_relocs): Likewise.
        (elf_gc_record_vtentry): Likewise.
2001-06-12 17:44:38 +00:00
Alan Modra
4e8a9624b8 * elflink.h: Whitespace changes.
(elf_link_read_relocs_from_section): Use "unsigned int" iterator
	rather than "unsigned char".
	(elf_link_output_relocs): Likewise.
	(elf_link_input_bfd): Likewise.
	(elf_reloc_link_order): LIkewise.
	* elf.c: s/CONST/const/.  Whitespace changes.
	* elf32-mips.c: Formatting fix.

	* Makefile.am (SOURCE_HFILES): Include xcoff-target.h, remove xcoff.h.
	* Makefile.in: Regenerate.
	* po/Make-in: Remove trailing tab.
2001-06-10 05:21:00 +00:00
Phil Blundell
7a25cd3e1a 2001-06-09 Philip Blundell <philb@gnu.org>
* elf32-arm.h (elf32_arm_plt0_entry): Correct error in last
	change.
	(elf32_arm_plt_entry): Likewise.
2001-06-09 20:19:29 +00:00
H.J. Lu
3f5a136d64 2001-06-08 H.J. Lu <hjl@gnu.org>
* elf.c (swap_out_syms): Keep names for global section symbols.
2001-06-08 15:30:52 +00:00
H.J. Lu
d8fe1fed28 2001-06-07 H.J. Lu <hjl@gnu.org>
* config.bfd: Put back ecoff for Linux/mips. Firmwares on some
	MIPS-based machines need it.
2001-06-08 06:21:29 +00:00
H.J. Lu
c36e006fbc 2001-06-07 H.J. Lu <hjl@gnu.org>
* elf32-mips.c (_bfd_mips_elf_object_p): Set the bad symtab
	for SGI only.

	* config.bfd: Remove ecoff from Linux/mips.
2001-06-07 17:31:22 +00:00
Andreas Jaeger
cc78d0afbe 2001-06-07 Andreas Jaeger <aj@suse.de>
* elf64-x86-64.c (elf64_x86_64_finish_dynamic_symbol): Add an
	assertion.
	(elf64_x86_64_check_relocs): Fix VTENTRY relocation; set an
	alignment of 8 for .rela sections; handle further relocations.
2001-06-07 14:45:36 +00:00
Nick Clifton
879db8be1a Remove warnings building z8k port.
Fix ld -r behaviour
2001-06-06 17:01:35 +00:00
Nick Clifton
cbb1fd5052 Add mips64*-*-linux host 2001-06-05 07:35:10 +00:00
Alan Modra
6725bdbfa9 * elf32-i386.c (elf_i386_discard_copies): Rename to
discard_copies, and use elf_link_hash_entry arg rather than
	elf_i386_link_hash_entry.
	(elf_i386_link_hash_traverse): Delete.
	(elf_i386_size_dynamic_sections): Adjust call to discard_copies.
	Tidy sizing of dynamic sections.
	(elf_i386_check_relocs <R_386_32, R_386_PC32>): Reference count
	possible .plt entries.
	(elf_i386_gc_sweep_hook): Likewise.
	(elf_i386_adjust_dynamic_symbol): Discard .plt entries for
	everything with plt.refcount <= 0.

	* elf32-i386.c (elf_i386_check_relocs): Don't allocate .got and
	.relgot space here.
	(elf_i386_gc_sweep_hook): ..and no need to deallocate here..
	(elf32_hppa_adjust_dynamic_symbol): ..and don't allocate .plt and
	.rel.plt here..
	(allocate_plt_and_got): ..instead do it all here.  New function.
	(elf_i386_size_dynamic_sections): Allocate local .got space and
	call allocate_plt_and_got.  No need to zap .relgot if not dynamic.
	(bfd_elf32_bfd_final_link): Delete.  (ie. use regular final link
	rather than gc variety).
	(WILL_CALL_FINISH_DYNAMIC_SYMBOL): Define.
	(elf_i386_relocate_section): Use it here and correct handling of
	R_386_GOT32.  Provide section and offset for "unresolvable
	relocation" error message.
	(elf_i386_finish_dynamic_symbol): Correct handling of R_386_GOT32.

	* elf32-i386.c (struct elf_i386_link_hash_table): Add sgot,
	sgotplt, srelgot, splt, srelplt, sdynbss, srelbss fields.
	(elf_i386_link_hash_table_create): Init them.
	(create_got_section): New function.
	(elf_i386_create_dynamic_sections): New function.
	(elf_backend_create_dynamic_sections): Set to above.
	(elf_i386_check_relocs): Use shortcuts from hash table rather than
	calling bfd_get_section_by_name.
	(elf_i386_gc_sweep_hook): Likewise.
	(elf_i386_adjust_dynamic_symbol): Likewise.
	(elf_i386_size_dynamic_sections): Likewise.
	(elf_i386_relocate_section): Likewise.
	(elf_i386_finish_dynamic_sections): Likewise.
2001-06-05 05:51:55 +00:00
Alan Modra
73a74a624e * elf32-hppa.c (allocate_plt_and_got): Skip indirect and warning syms. 2001-06-05 04:39:31 +00:00
H.J. Lu
24a5e75166 2001-06-02 H.J. Lu <hjl@gnu.org>
* elf32-hppa.c (elf32_hppa_object_p): Check ELFOSABI_LINUX
	and ELFOSABI_HPUX.
	* elf64-hppa.c (elf64_hppa_object_p): Likewise.
2001-06-03 02:41:58 +00:00
H.J. Lu
1510318892 2001-06-02 H.J. Lu <hjl@gnu.org>
* aout-cris.c (MACHTYPE_OK): New. Defined.
2001-06-02 19:42:40 +00:00
Hans-Peter Nilsson
2f484710e6 * section.c (_bfd_strip_section_from_output): Handle NULL
output_section.
2001-06-02 19:05:34 +00:00
H.J. Lu
a5ac692bb5 2001-06-02 H.J. Lu <hjl@gnu.org>
* config.bfd (powerpc-*-aix*, powerpc-*-beos*, rs6000-*-*): Add
	rs6000coff64_vec only if BFD64 is defined.
	(powerpc64-*-aix*): Enable only if BFD64 is defined.
2001-06-02 17:32:09 +00:00
H.J. Lu
27e530993c 2001-06-02 H.J. Lu <hjl@gnu.org>
* coff-ia64.c (ia64coff_object_p): Rewrite with
	external_PEI_DOS_hdr and external_PEI_IMAGE_hdr.
2001-06-02 15:46:43 +00:00
Andreas Jaeger
80643fbcda * elf64-x86-64.c (elf64_x86_64_relocate_section): Add PC8
relocation, small reformatting.
2001-06-01 11:52:11 +00:00
Andreas Jaeger
6b3db54654 * elf64-x86-64.c (elf64_x86_64_check_relocs): Handle R_X86_64_64.
(elf64_x86_64_relocate_section): Likewise.
2001-05-30 18:44:46 +00:00
Alan Modra
4dc8668677 * elf32-hppa.c (elf32_hppa_check_relocs): Don't NEED_PLT for
millicode.  Don't allocate .got and .rela.got space here..
	(elf32_hppa_gc_sweep_hook): ..and no need to deallocate here..
	(elf32_hppa_adjust_dynamic_symbol): ..and don't allocate .plt and
	.rela.plt here..
	(hppa_handle_PIC_calls): ..nor here..
	(allocate_plt_and_got): ..instead do it all here.  New function.
	(elf32_hppa_size_dynamic_sections): Allocate local .got space and
	call allocate_plt_and_got.  No need to zap .got if not dynamic.
	(elf32_hppa_final_link): Call regular bfd_final_link instead of
	gc_common_final_link.
	(WILL_CALL_FINISH_DYNAMIC_SYMBOL): Define.
	(elf32_hppa_relocate_section): Use it here.
	(elf32_hppa_finish_dynamic_symbol): Remove superfluous test of
	dynamic_sections_created.
	(hppa_type_of_stub): Don't LONG_BRANCH_VIA_PLT if millicode sym.
2001-05-30 14:30:33 +00:00
Andreas Jaeger
de41dcd889 * elf64-x86-64.c (elf64_86_64_size_info): Remove, we can use the
generic version since we want a hashsize of 4.
	(elf_backend_size_info): Likewise.
2001-05-28 15:45:47 +00:00
Nick Clifton
209f668ef2 Handle MIPS64 relocs which use a non-1 valued int_rels_per_ext_rel 2001-05-28 11:57:54 +00:00
Nick Clifton
f7a74f8c82 Support big endian PLT entries. 2001-05-28 10:50:31 +00:00
Alan Modra
8dea12685e * elf32-hppa.c (elf32_hppa_relocate_section): Set up .plt entries
for symbols forced local that need plabels.
	(elf32_hppa_adjust_dynamic_symbol): Don't allocate space in
	.plt.rela for local syms if non-shared.
	(hppa_build_one_stub): Mask lsb of plt.offset.
	(elf32_hppa_finish_dynamic_symbol): Abort if lsb of plt.offset set.
	(clobber_millicode_symbols): Correct comment.
	(elf32_hppa_relocate_section): Likewise.
	(elf32_hppa_finish_dynamic_symbol): Likewise.
2001-05-28 10:12:04 +00:00
Nick Clifton
0f2712edc9 Add support for .uahword, .uaword and .uaxword pseudo ops 2001-05-28 09:23:54 +00:00
H.J. Lu
6768c14a4f 2001-05-25 H.J. Lu <hjl@gnu.org>
* Makefile.am (BFD32_BACKENDS): Remove coff-pmac.lo.
	(BFD32_BACKENDS_CFILES): Remove coff-pmac.c.
	(coff-rs6000.lo): Remove the old dependency.
	* Makefile.in: Rebuild.

	* configure.in (pmac_xcoff_vec): Replace coff-pmac.lo with
	coff-rs6000.lo.
2001-05-25 22:50:27 +00:00
H.J. Lu
b55039f458 2001-05-25 H.J. Lu <hjl@gnu.org>
* coff-rs6000.c (rs6000coff_vec): Use rs6000coff_core_p,
	rs6000coff_core_file_matches_executable_p,
	rs6000coff_core_file_failing_command and
	rs6000coff_core_file_failing_signal only if AIX_CORE is
	defined.
	(pmac_xcoff_vec): Likewise.
	* coff64-rs6000.c (rs6000coff64_vec): Likewise.
2001-05-25 21:23:48 +00:00
Timothy Wall
64e9ece0ca monterey updates 2001-05-25 12:42:28 +00:00
H.J. Lu
f34d8777dd 2001-05-25 H.J. Lu <hjl@gnu.org>
* bfd-in2.h: Regenerated.
	* libcoff.h: Likewise.
2001-05-25 06:29:21 +00:00
Alan Modra
49e9d0d3b6 * elf32-hppa.c (elf32_hppa_relocate_section): Don't allow
undefined millicode syms in shared libs.
	(hppa_build_one_stub): Turn BFD_ASSERTs into aborts.
	(elf32_hppa_check_relocs): Likewise.
	(elf32_hppa_adjust_dynamic_symbol): Likewise.
	(elf32_hppa_size_dynamic_sections): Likewise.
	(elf32_hppa_relocate_section): Likewise.
	(elf32_hppa_finish_dynamic_symbol): Likewise.
	(elf32_hppa_finish_dynamic_sections): Likewise.
2001-05-25 03:46:49 +00:00
Tom Rix
beb1bf64d0 Support for xcoff64 2001-05-24 20:50:50 +00:00
Alexandre Oliva
e90fdc1abd * elf64-sparc.c (sparc64_elf_slurp_reloc_table): Fix typo
s/ENTIRES/ENTRIES/.
2001-05-23 23:56:22 +00:00
Nick Clifton
c2feb66418 Add MIPS ELF64 relocs 2001-05-23 17:36:38 +00:00
Nick Clifton
d1cf510e5e Add MIPS r12k support 2001-05-23 17:26:40 +00:00
Nick Clifton
6c426cf36e Change PLT code to avoid using r2 - it used by GCC to return large startures 2001-05-23 16:38:36 +00:00
Nick Clifton
d9bc7a4499 Replace sh_size/sh_entsize with NUM_SHDR_ENTRIES 2001-05-23 08:23:27 +00:00
Andreas Jaeger
f5198f610d * dwarf2.c (decode_line_info): Fix error message.
(read_abbrevs): Fix test for offset as suggested by Alan Modra and
	adjust error message.
2001-05-21 11:52:42 +00:00
H.J. Lu
7913c838b3 2001-05-18 H.J. Lu <hjl@gnu.org>
* elflink.h (elf_link_add_object_symbols): Revert the last
	change.
2001-05-18 16:06:43 +00:00
Alan Modra
e0522e891a * elf32-hppa.c (clobber_millicode_symbols): Temporarily set
ELF_LINK_FORCED_LOCAL to suit 2001-04-30 change.
	(hppa_build_one_stub): Add an assert to check plt.offset.
2001-05-18 03:11:13 +00:00
H.J. Lu
96fd004e0e 2001-05-17 H.J. Lu <hjl@gnu.org>
* elflink.h (NAME(bfd_elf,size_dynamic_sections)): Set the
	version definition to basename of the output filename.
2001-05-18 01:20:02 +00:00
H.J. Lu
f3876d8bc6 2001-05-17 H.J. Lu <hjl@gnu.org>
* elflink.h (elf_link_add_object_symbols): Set DT_NEEDED to
	basename of the bfd filename.
2001-05-17 19:08:46 +00:00
Alan Modra
d1778b88f8 Add a flag to asection, linker_has_input, and use it to reliably
determine whether an input section is the first one assigned to
an output section.
2001-05-17 03:58:45 +00:00
Alexandre Oliva
2a0fa9433c * elf-m10300.c (mn10300_elf_relax_section): Don't relax
negative 32-bit operands to 16 operands when the operand is
going to be zero-extended by the modified opcode.
2001-05-16 01:48:13 +00:00
Alan Modra
bcee8eb8ca Peter Targett's backwards compatibility and other arc fixes. 2001-05-12 15:14:53 +00:00
Jakub Jelinek
579f31ac74 * elfxx-ia64.c (is_unwind_section_name): Consider linkonce unwind
sections as well.
	(elfNN_ia64_final_write_processing): Map .gnu.linkonce.ia64unw.FOO
	to .gnu.linkonce.t.FOO text section.

	* readelf.c (process_unwind): Print all unwind sections, not just
	one.

	* config/tc-ia64.c (special_linkonce_name): New.
	(make_unw_section): Map .gnu.linkonce.t.FOO text section into
	.gnu.linkonce.ia64unw{,i}.FOO.
	(ia64_elf_section_type): Handle .gnu.linkonce.ia64unw{,i}.FOO.
	(dot_endp): Add comment about it.

	* elf/ia64.h (ELF_STRING_ia64_unwind_once): Define.
	(ELF_STRING_ia64_unwind_info_once): Define.

	* emulparams/elf64_ia64.sh (OTHER_READONLY_SECTIONS): Put
	.gnu.linkonce.ia64unw{,i} sections into corresponding .IA_64.unwind*
	output sections.
	* emulparams/elf64_aix.sh (OTHER_READONLY_SECTIONS): Likewise.
2001-05-11 12:36:47 +00:00
Jakub Jelinek
8550eb6e64 * merge.c (struct sec_merge_hash_entry): Add u.entsize and u.suffix
fields, change sec into secinfo.
	(struct sec_merge_info): Add chain, remove last fields.
	(struct sec_merge_sec_info): Add next, sec, psecinfo fields.
	(sec_merge_hash_lookup): If lookup could not use a string only
	because it has bad alignment, mark the old string for deletion.
	(sec_merge_add): Add secinfo argument. Don't compute entry's
	position, instead record the section.
	(sec_merge_emit): Update for the sec into secinfo change in
	struct sec_merge_hash_entry.
	(_bfd_merge_section): Only record the section for merging, defer
	putting strings into the hash table.
	(cmplengthentry, last4_eq, last_eq, record_section, merge_strings,
	_bfd_merge_sections): New functions.
	(_bfd_merged_section_offset): Update for the sec_merge_hash_entry
	changes.
	* libbfd-in.h (_bfd_merge_sections): Add prototype.
	(_bfd_nolink_bfd_merge_sections): Define.
	* libbfd.h: Likewise.
	(bfd_generic_merge_sections): Add prototype.
	* targets.c (BFD_JUMP_TABLE_LINK): Add _bfd_merge_sections.
	(struct bfd_target): Likewise.
	* bfd.c (bfd_merge_sections): Define.
	* bfd-in2.h: Rebuilt.
	* elf.c (_bfd_elf_merge_sections): New function.
	* elf-bfd.h (_bfd_elf_merge_sections): Add prototype.
	* elfxx-target.h (bfd_elfNN_bfd_merge_sections): Define.
	* reloc.c (bfd_generic_merge_sections): New function.
	* vms.c (vms_bfd_merge_sections): New function.
	* aout-adobe.c (aout_32_bfd_merge_sections): Define.
	* aout-target.h (MY_bfd_merge_sections): Define.
	* aout-tic30.c (MY_bfd_merge_sections): Define.
	* binary.c (binary_bfd_merge_sections): Define.
	* bout.c (b_out_bfd_merge_sections): Define.
	* coff-alpha.c (_bfd_ecoff_bfd_merge_sections): Define.
	* coffcode.c (coff_bfd_merge_sections): Define.
	* coff-mips.c (_bfd_ecoff_bfd_merge_sections): Define.
	* i386msdos.c (msdos_bfd_merge_sections): Define.
	* i386os9k.c (os9k_bfd_merge_sections): Define.
	* ieee.c (ieee_bfd_merge_sections): Define.
	* ihex.c (ihex_bfd_merge_sections): Define.
	* nlm-target.h (nlm_bfd_merge_sections): Define.
	* oasys.c (oasys_bfd_merge_sections): Define.
	* ppcboot.c (ppcboot_bfd_merge_sections): Define.
	* som.c (som_bfd_merge_sections): Define.
	* srec.c (srec_bfd_merge_sections): Define.
	* tekhex.c (tekhex_bfd_merge_sections): Define.
	* versados.c (versados_bfd_merge_sections): Define.
	* xcoff-target.h (_bfd_xcoff_bfd_merge_sections): Define.

	* ldlang.c (lang_process): Call bfd_merge_sections.
2001-05-11 12:23:48 +00:00
Nick Clifton
1548c54f2e Change type of 'addr' to be unsigned long, in order to match its use. 2001-05-11 09:55:02 +00:00
H.J. Lu
689effed70 2001-05-10 H.J. Lu <hjl@gnu.org>
* linker.c (_bfd_generic_link_add_one_symbol): Check loop on
	indirect symbols.
2001-05-10 22:59:29 +00:00
H.J. Lu
6e5222be78 2001-05-09 H.J. Lu <hjl@gnu.org>
* elflink.h (elf_link_add_object_symbols): Fix a typo. Allocate
	versymhdr->sh_size bytes for extversym instead of hdr->sh_size.
	Remove the unused veriable `dynver'.
2001-05-09 22:34:30 +00:00
Ian Lance Taylor
8e191bd38c * coff-i386.c (coff_i386_reloc): Don't dump core if output_bfd is
NULL or is not COFF.
	(coff_i386_rtype_to_howto): Don't dump core if output section
	owner is not COFF.
2001-05-08 17:44:00 +00:00
Alan Modra
062e23589d * ecoff.c (bfd_debug_section): Fix initialization.
* elf.c (_bfd_elf_slurp_version_tables): Change maxidx to unsigned, it
	is always a positive integer. Cast away sign mismatch.
	* elf32-mips.c: Fix misleading comment and typo.
	(_bfd_mips_elf_section_from_bfd_section): Remove unused attribute, use
	correct data type.
	* elflink.c: Fix typo.
	(_bfd_elf_create_dynamic_sections): Remove superfluous initialization.
	* ecoffswap.h (ecoff_swap_fdr_in): Cast away sign mismatch.
2001-05-07 09:15:26 +00:00
Richard Henderson
16b65e4ea2 * elf64-alpha.c (SREL16, SREL32, SREL64): Set pcrel_offset true. 2001-05-04 23:22:31 +00:00
Nick Clifton
cac1532771 Set EF_ARM_HASENTRY if the start address is set. 2001-05-04 08:32:21 +00:00
Nick Clifton
966b3e0b90 Compute value of _bfd_target_vector_entries based on the size of
_bfd_target_vector and not bfd_target_vector.
2001-05-03 17:49:49 +00:00
H.J. Lu
210ba1e83d 2001-05-03 H.J. Lu <hjl@gnu.org>
* elfcode.h: Include "libiberty.h".

	* elflink.h (elf_link_add_object_symbols): Set
	elf_dt_name (abfd) to basename of the bfd filename.
	(NAME(bfd_elf,size_dynamic_sections)): Set vn_file to basename
	of the bfd filename.
2001-05-03 06:18:09 +00:00
Andreas Jaeger
56fc028eb1 * elf64-gen.c (elf_generic_info_to_howto): Add unused attribute.
(elf_generic_info_to_howto_rel): Likewise.
	* coff-alpha.c (reloc_nil): Likewise.
	(alpha_ecoff_bad_format_hook): Likewise.
	(alpha_adjust_reloc_out): Likewise.
	(alpha_bfd_reloc_type_lookup): Likewise.
	(alpha_convert_external_reloc): Likewise.
	* elf64-alpha.c (elf64_alpha_reloc_nil): Likewise.
	(elf64_alpha_reloc_bad): Likewise.
	(elf64_alpha_reloc_gpdisp): Likewise.
	(elf64_alpha_bfd_reloc_type_lookup): Likewise.
	(elf64_alpha_info_to_howto): Likewise.
	(elf64_alpha_add_symbol_hook): Likewise.
	(elf64_alpha_create_got_section): Likewise.
	(elf64_alpha_is_local_label_name): Likewise.
	(elf64_alpha_merge_ind_symbols): Likewise.
	* elf64-mips.c (mips_elf64_reloc_type_lookup): Likewise.
	(mips_elf64_get_reloc_upper_bound): Likewise.
	* nlm32-alpha.c (nlm_alpha_mangle_relocs): Likewise.
	(nlm_alpha_get_public_offset): Likewise.
2001-05-03 04:46:27 +00:00
Nick Clifton
c7e4034828 Add gas and ld support for openrisc 2001-05-02 18:14:31 +00:00
H.J. Lu
5fba655aed 2000-04-27 H.J. Lu <hjl@gnu.org>
* elf.c (_bfd_elf_link_hash_hide_symbol): Set dynindx to -1
	only for ELF_LINK_FORCED_LOCAL.
	* elf32-hppa.c (elf32_hppa_hide_symbol): Likewise.
	* elf32-mips.c (_bfd_mips_elf_hide_symbol): Likewise.
	* elfxx-ia64.c (elfNN_ia64_hash_hide_symbol): Likewise.

	* elflink.h (elf_fix_symbol_flags): Set ELF_LINK_FORCED_LOCAL
	if the symbol has hidden or internal visibility.
2001-04-30 16:13:26 +00:00
Alan Modra
db20fd7654 * elf32-hppa.c (final_link_relocate): Branch to .+8 for
calls to undefined weak symbols.
2001-04-30 13:34:41 +00:00
Andreas Jaeger
6a2bda3fa0 * elf64-x86-64.c (elf64_x86_64_relocate_section): Correct test for
R_X86_64_GOTPCREL, don't use assignments instead of comparisons.
2001-04-30 10:30:05 +00:00
Andreas Jaeger
053579d754 * elf64-x86-64.c (elf64_x86_64_finish_dynamic_sections): Only swap
out handled entries.
	(elf64_x86_64_finish_dynamic_symbol): Set up GOT entries.
	(elf64_x86_64_relocate_section): Fix GOTPCREL calculation.
	(elf64_x86_64_relocate_section): Merge entries for GOTPCREL and
	GOT32.
2001-04-29 13:42:45 +00:00
Nick Clifton
87748b3227 Add support for arm-vxworks target 2001-04-27 17:12:18 +00:00
H.J. Lu
f5f31454c5 2001-04-26 H.J. Lu <hjl@gnu.org>
* elf32-i386.c (elf_i386_check_relocs): Verify if r_symndx is
	valid.
2001-04-26 19:09:20 +00:00
Frank Ch. Eigler
d436a9b307 * externalize a function
2001-04-25  Frank Ch. Eigler  <fche@redhat.com>

	* bfd-in.h (bfd_cache_close): Declare newly exported function.
	* bfd-in2.h: Regenerated.
2001-04-25 21:08:02 +00:00
Jakub Jelinek
a531bbd206 * merge.c (struct sec_merge_hash_entry): Add alignment field.
(struct sec_merge_hash): Remove alignment_power.
	(sec_merge_hash_newfunc): Clear alignment.
	(sec_merge_hash_lookup): Pass alignment as argument.
	Use hashp->root.next, not hashp->next to walk the hash chain.
	If a string already in the hashtable does not have required
	alignment, create a new hashtable entry.
	(sec_merge_init): Remove alignment_power argument.
	(sec_merge_add): Add alignment argument.
	(sec_merge_emit): Alignment is now a per-entity thing, not per
	section.
	(_bfd_merge_section): Sanity check even non-SEC_STRINGS sections
	for proper alignment.
	Pass alignment information to sec_merge_add.
2001-04-24 17:55:57 +00:00
Nick Clifton
6840198f93 z8k fixes 2001-04-24 15:22:25 +00:00
Nick Clifton
b3baf5d0a8 Add OpenRISC support 2001-04-24 15:08:16 +00:00
Andreas Jaeger
fe4770f478 2001-04-23 Bo Thorsen <bo@suse.de>
* x86-64.h: Add vtable support.

2001-04-23  Bo Thorsen  <bo@suse.de>

	* elf64-x86-64.c: Add c++ vtable hack.
	Small whitespace and comment changes.
2001-04-23 08:00:14 +00:00
Andreas Jaeger
653165cc0d 2001-04-19 Andreas Jaeger <aj@suse.de>
* elf64-x86-64.c (elf64_x86_64_plt0_entry): Fix instructions.
	(elf64_x86_64_plt_entry): Likewise.
	(elf64_x86_64_finish_dynamic_sections): Fix PLT0 generation.
	(elf64_x86_64_finish_dynamic_symbol): Fix PLT generation.
2001-04-19 09:39:28 +00:00
Hans-Peter Nilsson
4d96d12825 * elf32-cris.c: Tweak comments related to dynamic linking.
(cris_elf_relocate_section): When not creating shared object, fill
	in the .got table for any symbol not in the dynamic symbol table.
	(elf_cris_finish_dynamic_symbol): When not creating shared object,
	only emit a .got.rela reloc if the symbol is in the dynamic symbol
	table.
	(cris_elf_check_relocs): Use variable r_type in all places rather
	than the original expression.  Add default case in switch for
	reloc types.
	(elf_cris_size_dynamic_sections): Iterate over
	elf_cris_discard_excess_program_dynamics when not creating shared
	library.
 	(elf_cris_discard_excess_dso_dynamics): Renamed from
	elf_cris_discard_copies.  Correct typo, s/Rel/Rela/.
	(elf_cris_discard_excess_program_dynamics): New.
2001-04-17 12:32:30 +00:00
DJ Delorie
3ed30d29c6 * coffcode.h (coff_write_object_contents): Use
bfd_coff_swap_filehdr_out instead of coff_swap_filehdr_out.
2001-04-15 04:23:46 +00:00
H.J. Lu
a80f694198 2001-04-14 H.J. Lu <hjl@gnu.org>
* bfd-in2.h: Regenerate.
2001-04-15 01:02:54 +00:00
Jakub Jelinek
767e4b0d59 * section.c (STD_SECTION): Add entsize. 2001-04-14 14:23:31 +00:00
H.J. Lu
2dd439c54e 2001-04-13 H.J. Lu <hjl@gnu.org>
* section.c (SEC_MERGE): Define new flag for merging.
	(SEC_STRINGS): Likewise.
	(entsize): New field.
2001-04-14 04:13:00 +00:00
DJ Delorie
baf80c32ae * coff-i386.c (TARGET_SYM): SEC_READONLY is an applicable section
flag on pe-i386 targets.
2001-04-13 22:42:48 +00:00
Jakub Jelinek
f5fa8ca231 bfd/
* libbfd-in.h (_bfd_merge_section): New.
	(_bfd_write_merged_section): New.
	(_bfd_merged_section_offset): New.
	* libbfd.h: Rebuilt.
	* linker.c (_bfd_generic_link_output_symbols): Handle
	discard_sec_merge.
	* aoutx.h (aout_link_write_symbols): Likewise.
	* pdp11.c (aout_link_write_symbols): Likewise.
	* elflink.h (elf_link_add_object_symbols): Call _bfd_merge_section.
	(elf_bfd_final_link): Adjust global symbols pointing into SEC_MERGE
	sections.
	(elf_link_sec_merge_syms): New.
	(elf_link_input_bfd): Call _bfd_merged_section_offset
	and _bfd_write_merged_section.
	Handle discard_sec_merge.
	* elf-bfd.h (struct elf_link_hash_table): Add merge_info
	field.
	(struct bfd_elf_section_data): Likewise.
	* elf.c (_bfd_elf_make_section_from_shdr): Set SEC_MERGE and
	SEC_STRINGS section flags and entsize from their ELF counterparts.
	(_bfd_elf_link_hash_table_init): Initialize merge_info.
	(elf_fake_sections): Set SHF_MERGE, SHF_STRINGS and sh_entsize
	from their BFD counterparts.
	* merge.c: New file.
	* Makefile.am: Add strtab.lo.
	* Makefile.in: Rebuilt.
include/
	* bfdlink.h (bfd_link_discard): Add discard_sec_merge.
gas/
	* config/obj-elf.c (obj_elf_change_section): Add entsize argument,
	handle SHF_MERGE and SHF_STRINGS.
	(obj_elf_parse_section_letters): Set SHF_MERGE and SHF_STRINGS.
	(obj_elf_section): Allow additional argument specifying entity size.
	* write.c (adjust_reloc_syms): Keep relocations against local symbols
	in SEC_MERGE sections.
ld/
	* ldmain.c (main): Default to discard_sec_merge.
	* lexsup.c (OPTION_DISCARD_NONE): Define.
	(ld_options): Add --discard-none.
	(parse_args): Handle OPTION_DISCARD_NONE.
	* ldlang.c (wild_doit): SEC_MERGE should be set in the output
	section only if SEC_MERGE and SEC_STRINGS flags and entsize of
	all its input sections match.
2001-04-13 00:34:36 +00:00
Hans-Peter Nilsson
d954b04094 * elflink.h (elf_fix_symbol_flags): For non-default visibilities,
only hide symbols marked STV_INTERNAL or STV_HIDDEN.
2001-04-09 03:24:32 +00:00
H.J. Lu
fdbafa100f 2001-04-05 Steven J. Hill <sjhill@cotw.com>
* config.bfd (mips*el*-*-linux-gnu*): Use traditional little
	endian MIPS ELF target.
	* config.bfd (mips*-*-linux-gnu*): Use traditional big endian
	MIPS ELF target.

	* configure.in (bfd_elf64_tradbigmips_vec): New. Traditional
	64bit big endian MIPS ELF target.
	(bfd_elf64_tradlittlemips_vec): New. Traditional 64bit little
	endian MIPS ELF target.
	* configure: Regenerated.

	* elf32-mips.c (IRIX_COMPAT): Handle traditional 64bit and
	little endian targets.
	(mips_elf_sym_is_global): Handle traditional targets.

	* elf64-mips.c (bfd_elf64_tradbigmips_vec): New. Traditional
	64bit big endian MIPS ELF target.
	(bfd_elf64_tradlittlemips_vec): New. Traditional 64bit little
	endian MIPS ELF target.

	* targets.c: (_bfd_target_vector): Add bfd_elf64_tradbigmips_vec
	and bfd_elf64_tradlittlemips_vec.
2001-04-08 05:11:49 +00:00
H.J. Lu
dd484e5c56 2001-04-05 David Mosberger <davidm@hpl.hp.com>
* elf32-i386.c (elf_i386_fake_sections): Treat ".reloc" as an
	ordinary "progbits" section.
2001-04-06 00:37:30 +00:00
Alan Modra
391a809a0a * elflink.h (elf_fix_symbol_flags): Call elf_backend_hide_symbol
when -Bsymbolic causes a symbol to no longer need a .plt entry.
2001-04-04 00:31:37 +00:00
H.J. Lu
5854c6337e 2001-04-03 David Mosberger <davidm@hpl.hp.com>
* efi-app-ia32.c (ALIGN_SECTIONS_IN_FILE): Deleted.
2001-04-03 14:45:43 +00:00
H.J. Lu
8b4b0fac4b 2001-03-30 H.J. Lu <hjl@gnu.org>
* efi-app-ia32.c (PEI_TARGET_SUBSYSTEM): Rename from ...
	(PEI_DEFAULT_TARGET_SUBSYSTEM): This.
2001-03-30 16:08:34 +00:00
H.J. Lu
eb4a6e4f4b 2001-03-26 H.J. Lu <hjl@gnu.org>
* elf32-gen.c (elf32_generic_link_add_symbols): New. Check
	if there are any relocations for generic ELF.
	(bfd_elf32_bfd_link_add_symbols): Defined to
	elf32_generic_link_add_symbols.
	* elf64-gen.c (elf64_generic_link_add_symbols): New. Check
	if there are any relocations for generic ELF.
	(bfd_elf64_bfd_link_add_symbols): Defined to
	elf64_generic_link_add_symbols.
2001-03-27 02:00:34 +00:00
Nick Clifton
55c80943b8 Fix building bfd.pot in maintainer mode 2001-03-23 18:05:30 +00:00
Hans-Peter Nilsson
915e51468a * elf32-cris.c: Shlib and PIC support. PCREL tweaks. 2001-03-22 14:56:06 +00:00
Hans-Peter Nilsson
58d29fc398 * reloc.c: (BFD_RELOC_CRIS_COPY, BFD_RELOC_CRIS_GLOB_DAT,
BFD_RELOC_CRIS_JUMP_SLOT, BFD_RELOC_CRIS_RELATIVE,
	BFD_RELOC_CRIS_32_GOT, BFD_RELOC_CRIS_16_GOT,
	BFD_RELOC_CRIS_32_GOTPLT, BFD_RELOC_CRIS_16_GOTPLT,
	BFD_RELOC_CRIS_32_GOTREL, BFD_RELOC_CRIS_32_PLT_GOTREL,
	BFD_RELOC_CRIS_32_PLT_PCREL): New relocs.
	* bfd-in2.h, libbfd.h: Regenerate.
2001-03-22 11:17:16 +00:00
Diego Novillo
7a65545dc5 2001-03-21 Diego Novillo <dnovillo@redhat.com>
(_bfd_mips_elf_relocate_section): Give a better error message when
	a relocation is not recognized.
2001-03-22 00:29:15 +00:00
Alan Modra
b32b5d6e64 Prevent NULL pointer dereference. 2001-03-21 08:09:25 +00:00
H.J. Lu
f4fbb4a3d1 2001-03-20 H.J. Lu <hjl@gnu.org>
* configure.in: Remove the redundent AC_ARG_PROGRAM.
	* configure: Rebuild.
2001-03-20 18:24:30 +00:00
Andreas Schwab
95fc45e66f * elf32-m68k.c (elf_m68k_relocate_section): Don't need the
relocation value when resolving a reference from a debugging
	section.
2001-03-20 10:11:07 +00:00
Nick Clifton
03d411a927 Fix syntax errors. 2001-03-16 18:49:32 +00:00
Nick Clifton
d165939296 Fix warning message 2001-03-16 17:34:31 +00:00
Hans-Peter Nilsson
0dc1fa070b Fix accidental loss of bit 7 in peoples names 2001-03-16 03:00:24 +00:00
Alan Modra
12cca0d293 Don't assume non-PIC to PIC call stubs are unneeded just because
the function happens to have a plabel.
2001-03-15 13:47:56 +00:00
DJ Delorie
cd6ec716b6 * elf32-sh.c (sh_elf_relocate_section): Only relocation
R_SH_DIR8WP* relocs if they're against external symbols, else
they're just for relaxing.  Validate the reloc values.
2001-03-13 04:43:40 +00:00
Nick Clifton
43a0748c78 Add --binary-architecture switch to objcopy to allow the output architecture
to be set when the input file type is binary.
2001-03-13 00:08:35 +00:00
Phil Blundell
d982ba7301 2001-03-11 Philip Blundell <philb@gnu.org>
* elf32-arm.h (elf32_arm_finish_dynamic_symbol): Don't make PLT
	entries that could serve as a definition for a weak symbol.
2001-03-11 13:10:51 +00:00
Nick Clifton
7898dedac0 Update copyright notices 2001-03-08 21:04:02 +00:00
Nick Clifton
df425bc0dd Conditionalize prevbious pathc on ! defined OLD_ARM_ABI. 2001-03-07 23:52:58 +00:00
Andreas Jaeger
bcdd92f3e0 2001-03-07 Andreas Jaeger <aj@suse.de>
* elf64-x86-64.c (elf64_x86_64_relocate_section): Fix handling of
	some relocation values.
2001-03-07 13:49:11 +00:00
Nick Clifton
4f3c3dbb37 Fix BLX(1) for Thumb 2001-03-06 22:33:47 +00:00
Nick Clifton
f8f3c6cc37 Add BFD_RELOC_THUMB_PCREL_BLX. 2001-03-06 20:27:50 +00:00
Nick Clifton
3cac17aec8 Rest of the changes for Coldfire V4. 2001-03-06 20:15:27 +00:00
Nick Clifton
d1b17ab0f3 Add s390 target 2001-03-01 18:48:14 +00:00
Andreas Jaeger
5608e05bb4 2001-02-28 Andreas Jaeger <aj@suse.de>
* elf64-x86-64.c (elf64_x86_64_relocate_section): Add relocation
	to addend.
2001-02-28 12:32:10 +00:00
Phil Blundell
fd2ec33034 2001-02-28 Philip Blundell <pb@futuretv.com>
* elf32-arm.h: Update mentions of renamed EF_xx constants.
 	(elf32_arm_print_private_bfd_data): Handle ARM EABI version 2.
2001-02-28 10:13:20 +00:00
H.J. Lu
920581c57e 2001-02-27 H.J. Lu <hjl@gnu.org>
* aoutx.h (NAME(aout,bfd_free_cached_info)): Return true if
	abfd->tdata.aout_data == NULL.
2001-02-27 18:45:45 +00:00
Alan Modra
3ee1d8549f Fix some comments, and a formatting error. 2001-02-27 07:11:41 +00:00
Alan Modra
27b7e12d2d Bump version to 2.11.90, fix missing dependencies in bfd/,
and run "make dep-am".
2001-02-27 06:43:56 +00:00
Timothy Wall
10d1e03a7a Update elf64 aix5 comments. 2001-02-27 03:26:47 +00:00
Nick Clifton
1276aefac0 BFD: Catch & report unhandled PE section flags.
LD: Catch BFD errors whilst loading symbols and do not produce an executable.
2001-02-27 01:38:06 +00:00
Andreas Jaeger
4a73f21b0c 2001-02-26 Andreas Jaeger <aj@suse.de>
* elf64-x86-64.c (x86_64_elf_howto_table): Fix order of entries.
2001-02-26 07:50:22 +00:00
Timothy Wall
7b6dab7f4b ia64-*-aix* support. 2001-02-22 16:38:46 +00:00
Jim Wilson
87f8eb977e Improve gas error messages for invalid instructions.
* cpu-ia64-opc.c (elf64_ia64_operands}: Fix typo: error string for
	C8 said "1" instead of "8".  Clarify error string for IMM22:
	"signed integer" instead of just "integer".
	* config/tc-ia64.c (enum operand_match_result): New type.
	(operand_match): Change return type to operand_match_result.
	Fix all returns appropriately, adding support for returning the
	out-of-range result.
	(parse_operands): New locals result, error_pos, out_of_range_pos,
	curr_out_of_range_pos.  Rewrite operand matching loop to give better
	error messages.
	* ia64-opc-d.c (ia64_opcodes_d): Break the "add" pattern into two
	separate variants: one for IMM22 and the other for IMM14.
	* ia64-asmtab.c: Regenerate.
2001-02-22 03:16:21 +00:00
Andreas Jaeger
05aa1441bb 2001-02-20 Andreas Jaeger <aj@suse.de>
* elf64-x86-64.c (elf64_x86_64_finish_dynamic_symbol): Don't make
	PLT entries that could serve as a definition for a weak symbol.
2001-02-20 08:01:32 +00:00
Jakub Jelinek
8701c1bc04 * elf32-sparc.c (elf32_sparc_finish_dynamic_symbol): Don't make PLT
entries that could serve as a definition for a weak symbol.
	* elf64-sparc.c (sparc64_elf_finish_dynamic_symbol): Likewise.
2001-02-19 22:35:47 +00:00
David O'Brien
d4af977521 2001-02-18 David O'Brien <obrien@FreeBSD>
* configure.in: Recognize FreeBSD/arm, FreeBSD/PowerPC, and treat
	FreeBSD/i386-CURRENT differently until I can figure out the needed
	corefile changes.
	* configure: Regenerate.
	* config.bfd: Recognize FreeBSD/x86-64, FreeBSD/ia64, FreeBSD/arm,
	FreeBSD/PowerPC, and FreeBSD/sparc64.

Approved by:  Philip Blundell <philb@gnu.org>
              Message-Id: <E14URxF-00023n-00@kings-cross.london.uk.eu.org>
2001-02-19 06:33:41 +00:00
Nick Clifton
e135f41bc2 Add PDP-11 support 2001-02-18 23:33:11 +00:00
Nick Clifton
dc3febfa6e Set the architecture (GDB multiarch needs it). 2001-02-18 22:29:52 +00:00
H.J. Lu
ea412e04e5 2001-02-18 H.J. Lu <hjl@gnu.org>
* elflink.h (elf_link_input_bfd): Ignore invalid section symbol
	index.
2001-02-18 22:04:08 +00:00
Kazu Hirata
47eee8a91c 2001-02-18 Kazu Hirata <kazu@hxi.com>
* vms-misc.c: Fix formatting.
2001-02-18 21:35:55 +00:00
Kazu Hirata
8a0c27cda9 2001-02-16 Kazu Hirata <kazu@hxi.com>
* vms.c: Fix formatting.
2001-02-16 19:22:12 +00:00
Nick Clifton
d1fad7c69e fixes for elf_find_nearest_line 2001-02-14 19:58:45 +00:00
Nick Clifton
51d7ee16bb Fix initialisation of asection structure 2001-02-14 19:37:05 +00:00
Nick Clifton
825b47db31 Apply changes to Makefile.in to Makefile.am 2001-02-14 19:18:53 +00:00