Commit graph

1858 commits

Author SHA1 Message Date
Ian Lance Taylor
a8763553e4 * syms.c (_bfd_stab_section_find_nearest_line): Add casts to avoid
warnings.
1996-01-30 17:09:29 +00:00
Ian Lance Taylor
eb5bc1f397 From Basim Kadhim <kadhim@spock.cs.colorado.edu>:
* ecoff.c (struct extsym_info): Define.
	(_bfd_ecoff_bfd_final_link): Pass a pointer to struct extsym_info
	to ecoff_link_write_external.
	(ecoff_link_write_external): Accept a struct extsym_info pointer.
	Strip symbols when appropriate.
1996-01-30 00:01:44 +00:00
Ian Lance Taylor
052b35d2e7 Based on patches from Ronald F. Guilmette <rfg@monkeys.com>:
* syms.c (BSF_OBJECT): Define.
	(bfd_print_symbol_vandf): Print 'O' for BSF_OBJECT.
	* bfd-in2.h: Rebuild.
	* elfcode.h (elf_slurp_symbol_table): Set BSF_OBJECT for an
	STT_OBJECT symbol.
	* elf.c (swap_out_syms): Only set type to STT_OBJECT if BSF_OBJECT
	is set.
1996-01-29 22:04:32 +00:00
Ian Lance Taylor
53787b2316 * elf32-i386.c (elf_i386_relocate_section): If -Bsymbolic, when
copying relocs into a shared object, treat a defined global symbol
	as a local symbol.
	* elf32-m68k.c (elf_m68k_relocate_section): Likewise.
	* elf32-mips.c (mips_elf_relocate_section): Likewise.
	* elf32-sparc.c (elf32_sparc_relocate_section): Likewise.
1996-01-29 20:01:29 +00:00
Kim Knuttila
bdd2e7f179 Fixed exported names, removed a bad define 1996-01-29 19:31:34 +00:00
Ian Lance Taylor
d2bb6c7900 * elflink.h (elf_link_add_object_symbols): Only set weakdef to a
real defined symbol, not to a weak defined symbol.
1996-01-29 18:09:20 +00:00
Kim Knuttila
13d1a4dda9 Removed a ppc hack from cofflink, promoted some types to libcoff-in.h 1996-01-29 17:44:41 +00:00
Ian Lance Taylor
86aac8eabe * syms.c: Include "bfdlink.h".
(struct stab_find_info): Define.
	(_bfd_stab_section_find_nearest_line): New function.
	* libbfd-in.h (_bfd_stab_section_find_nearest_line): Declare.
	* libbfd.h: Rebuild.
	* elf-bfd.h (struct elf_obj_tdata): Add line_info field.
	* elf.c (_bfd_elf_find_nearest_line): Try calling
	_bfd_stab_section_find_nearest_line before searching the ELF
	symbol table.  Find the closest STT_FUNC symbol, not the last one.
	* libcoff-in.h (coff_data_type): Add line_info field.
	* libcoff.h: Rebuild.
	* coffgen.c (coff_find_nearest_line): Try calling
	_bfd_stab_section_find_nearest_line before searching the COFF
	symbol table.
	* Makefile.in: Rebuild dependencies.
1996-01-26 23:42:58 +00:00
Ian Lance Taylor
f0a97077c8 * libcoff-in.h (struct xcoff_tdata): Remove toc_section and
entry_section fields.  Add sntoc and snentry fields.
	* libcoff.h: Rebuild.
	* coffcode.h (coff_mkobject_hook): Initialize sntoc and snentry,
	not toc_section and entry_section (the COFF file does not have any
	sections at this point).
	(coff_write_object_contents): Set o_snentry and o_sntoc from
	snentry and sntoc rather than entry_section and toc_section.
	* coff-rs6000.c (xcoff_copy_private_bfd_data): Copy sntoc and
	snentry, not toc_section and entry_section.
	* xcofflink.c (bfd_xcoff_size_dynamic_sections): Don't set
	entry_section from hentry.
	(xcoff_link_input_bfd): If a defined symbol has XCOFF_ENTRY set,
	set snentyr.
	(xcoff_link_input_bfd): Set sntoc, not toc_section.
	(xcoff_write_global_symbol): Get toc_section from sntoc, rather
	than using toc_section directly.
1996-01-25 22:51:06 +00:00
Michael Meissner
c1e65e244c Make eabi error messages include symbol name if it is an external symbol 1996-01-25 22:35:51 +00:00
Ian Lance Taylor
9b4598d0a8 * archures.c: Add missing `.' in enum bfd_architecture.
* bfd-in2.h: Rebuild.
1996-01-25 20:05:29 +00:00
Ian Lance Taylor
43d36aad03 * config.bfd (i[345]86-*-sco*elf*): Use bfd_elf32_i386_vec. From
Robert Lipe <robertl@arnet.com>.
1996-01-25 17:18:42 +00:00
Michael Meissner
eb82bc605f Add more eabi relocations 1996-01-25 17:15:24 +00:00
Michael Meissner
9d621c7d32 Fix typo in eabl relocations 1996-01-25 01:46:57 +00:00
David Edelsohn
72c513bc76 * config.bfd (sparc64-*-{sysv4*,solaris2*}): Comment out
bfd_elf64_sparc_vec support.
1996-01-24 19:19:22 +00:00
David Edelsohn
75c9ddc9c5 * elf32-sparc.c (elf32_sparc_merge_private_bfd_data): Delete checking
of flags, only flags used are controlled by mach number.  Bump up
	output file mach number to highest of input file mach numbers.
	(elf32_sparc_object_p): Watch for EF_SPARC_SUN_US1.
	(elf32_sparc_final_write_processing): Set EF_SPARC_SUN_US1 if v8plusa.
Also, delete v8plus sanitization.
1996-01-24 18:45:50 +00:00
Ian Lance Taylor
4a3d3b42bd * coffcode.h (coff_new_section_hook): Don't try to align the
.stabstr section.
1996-01-23 22:27:47 +00:00
Michael Meissner
d8fd85ada3 Implement R_PPC_EMB_{SDA21,RELSDA} relocations 1996-01-23 20:11:13 +00:00
Michael Meissner
3cbe19d280 Do not complain if some objects have the embedded bit set and others do not. 1996-01-23 19:35:11 +00:00
Ian Lance Taylor
5eb83edeab * coffcode.h (coff_set_section_contents): Fix the handling of the
.lib section to work even if the entire section contents are
	written at once.  From Gvran Uddeborg <gvran@uddeborg.pp.se> and
	Robert Lipe <robertl@arnet.com>.
1996-01-23 19:26:01 +00:00
David Edelsohn
049f3d4c75 * bfd-in2.h: Regenerated. 1996-01-23 00:44:17 +00:00
Michael Meissner
05f927dd46 Make 64k .sdata and .sdata2 sections work; fix typos 1996-01-22 23:55:25 +00:00
David Edelsohn
768b8ade69 (sparc_compatible): New function. 1996-01-22 21:06:43 +00:00
David Edelsohn
5a5bac6471 * elflink.h (elf_finish_pointer_linker_section): Fix typo. 1996-01-22 18:17:16 +00:00
David Edelsohn
d3366d234d * elf64-sparc.c (sparc64_elf_object_p): bfd_mach_sparc64 renamed to
bfd_mach_sparc_v9.
1996-01-22 17:18:05 +00:00
David Edelsohn
5bc513b4fb * archures.c (bfd_mach_sparc_v9): Renamed from bfd_mach_sparc64.
start-sanitize-v8plus
	(bfd_mach_sparc_{v8plus,v8plusa}): Define.
end-sanitize-v8plus
	(bfd_mach_sparc_v9a): Define.
	* bfd-in2.h: Regenerated.
	* aoutx.h (aout,machine_type): bfd_mach_sparc64 renamed to
	bfd_mach_sparc_v9.
	* config.bfd (sparc64-*-sysv4*,sparc64-*-solaris2*): Set targ_defvec
	to bfd_elf32_sparc_vec.
	* cpu-sparc.c (arch_info_struct): Renamed from sparc_arch_info.
start-sanitize-v8plus
	Add v8plus{,a} support.
end-sanitize-v8plus
	Add v9a support.
start-sanitize-v8plus
	* elf32-sparc.h: #include "elf/sparc.h".
	(elf32_sparc_set_private_flags, elf32_sparc_copy_private_bfd_data,
	elf32_sparc_merge_private_bfd_data, elf32_sparc_object_p,
	elf32_sparc_final_write_processing): New functions.
	(bfd_elf32_bfd_set_private_flags, bfd_elf32_bfd_copy_private_bfd_data,
	bfd_elf32_bfd_merge_private_bfd_data, elf_backend_object_p,
	elf_backend_final_write_processing): Define.
end-sanitize-v8plus
1996-01-22 17:15:49 +00:00
Michael Meissner
3b3753b874 snapshot of eabi relocation support. 1996-01-22 16:43:35 +00:00
David Edelsohn
065822fc3d Oops. Forgot sanitization. 1996-01-20 17:05:56 +00:00
David Edelsohn
6b3eb07e98 * elf32-sparc.c (ELF_MACHINE_ALT1): Define. 1996-01-20 16:53:44 +00:00
Kim Knuttila
e7894f6b5d Numerous PowerPC PE fixes 1996-01-19 00:16:31 +00:00
Ian Lance Taylor
80b99ca092 * elfcore.h: Include <signal.h> before <sys/procfs.h>.
PR 8807.
1996-01-18 22:42:41 +00:00
Ian Lance Taylor
df96df4caf * cpu-powerpc.c (arch_info_struct): Change last entry to not point
back to first.
	(bfd_powerpc_arch): Point at first entry in arch_info_struct.
1996-01-17 17:48:30 +00:00
Ian Lance Taylor
d49ddb8575 * elf.c (assign_file_positions_for_segments): Don't increment file
offset for a segment which contains no loadable sections.
1996-01-16 20:53:04 +00:00
Michael Meissner
4500a1128e Add new PPC relocations 1996-01-15 22:50:07 +00:00
Ian Lance Taylor
20ab764e38 * aoutx.h (howto_table_ext): Fix RELOC_BASE10 and RELOC_BASE22
entries.
1996-01-15 22:37:16 +00:00
Ian Lance Taylor
0a4ffa2dc4 * sunos.c (sunos_scan_ext_relocs): Don't fail assert if
info->shared.
1996-01-15 22:00:38 +00:00
Ian Lance Taylor
45ca3195d5 * coffgen.c (coff_find_nearest_line): Don't try to cache
information in sections that are not owned by a BFD.  From Richard
	Henderson <richard@atheist.tamu.edu>.
1996-01-15 20:47:32 +00:00
Ian Lance Taylor
252239f877 * elf32-mips.c: Numerous changes to dynamic linking code, mostly
from Kazumoto Kojima <kkojima@info.kanagawa-u.ac.jp>.
	* elflink.h (elf_link_output_extsym): Remove special check for
	_rld_new_interface.
1996-01-15 20:25:53 +00:00
Michael Meissner
bd2d10c006 Redo unknown reloc support. Do not allow symbols in .sdata/.sbss to satify a TOC16 relocation. Begin support R_PPC_SDA{2,}REL relocation. 1996-01-15 02:41:58 +00:00
Michael Meissner
1c3a295b13 Warn about relocations we do not yet support 1996-01-13 14:40:50 +00:00
Ian Lance Taylor
14899eb7f2 * elf.c (assign_file_positions_for_segments): If a segment
contains no sections, don't mark it as readable.
1996-01-12 22:47:04 +00:00
Ian Lance Taylor
98bb57ad8e * elf-bfd.h (_bfd_elf_section_from_bfd_section): Declare.
* elfcode.h (_bfd_elf_section_from_bfd_section): Don't declare.
1996-01-12 20:48:14 +00:00
Michael Meissner
57081126b6 Add PowerPC support for SHF_EXCLUDE, SHT_ORDERED 1996-01-12 20:31:05 +00:00
Ian Lance Taylor
02fcd12620 * elf.c (_bfd_elf_print_private_bfd_data): Dump contents of
dynamic section, if there is one.
	* elf-bfd.h (struct elf_size_info): Add swap_dyn_in field.
	(bfd_elf32_swap_dyn_in): Change type of second parameter to PTR.
	(bfd_elf64_swap_dyn_in): Likewise.
	* elfcode.h (elf_swap_dyn_in): Change type of second parameter to
	PTR.
	(NAME(_bfd_elf,size_info)): Initialize swap_dyn_in field.
1996-01-12 19:13:49 +00:00
Ian Lance Taylor
3c38b3df0c * elf32-i386.c (elf_i386_size_dynamic_sections): Don't create a
DT_TEXTREL entry because of .rel.plt.  From Martin Pirker
	<pirker@eiunix.tuwien.ac.at>.
1996-01-12 19:00:18 +00:00
Ian Lance Taylor
c9746fb695 * xcofflink.c (xcoff_link_add_symbols): Create the special
sections if we see a DYNAMIC object, in case that is the only
	XCOFF input object we see.
PR 8788.
1996-01-12 04:29:59 +00:00
Michael Meissner
83f4323e5a Add support for SHT_ORDERED and SHF_EXCLUDE 1996-01-11 22:47:04 +00:00
Ian Lance Taylor
5b3b9ff61d * elf32-mips.c: Extensive changes for a start at dynamic linking
support, from Kazumoto Kojima <kkojima@info.kanagawa-u.ac.jp>.

	* elf-bfd.h (struct elf_backend_data): Add type_change_ok field.
	(struct elf_backend_data): Remove
	elf_backend_create_program_headers field.  Add
	elf_backend_additional_program_headers and
	elf_backend_modify_segment_map fields.
	* elfxx-target.h (elf_backend_type_change_ok): Define if not
	defined.
	(elf_backend_additional_program_headers): Likewise.
	(elf_backend_modify_segment_map): Likewise.
	(elf_backend_create_program_headers): Don't define.
	(elfNN_bed): Change to account for field changes.
	* elf.c (assign_file_positions_for_segments): Call new
	modify_segment_map backend function.  Don't call old
	create_program_headers backend function.
	(get_program_header_size): Call additional_program_headers rather
	than create_program_headers.
	* elflink.h (elf_link_add_object_symbols): Initialize
	type_change_ok from new backend field.
	(elf_link_output_extsym): Don't warn if _rld_new_interface is
	defined.
	(elf_reloc_link_order): Treat a reloc against a defined symbol as
	a reloc against the appropriate section.
1996-01-11 21:06:42 +00:00
Ian Lance Taylor
761f377fec * elf-bfd.h (struct bfd_elf_section_data): Add tdata field.
(struct elf_obj_tdata): Rename ppc_flags_init field to flags_init.
	(elf_flags_init): Rename from elf_ppc_flags_init.
	* elf32-ppc.c (ppc_elf_set_private_flags): Use elf_flags_init, not
	elf_ppc_flags_init.
	(ppc_elf_copy_private_bfd_data): Likewise.
	(ppc_elf_merge_private_bfd_data): Likewise.
1996-01-11 16:27:24 +00:00
Ian Lance Taylor
a02716671a * elf32-m68k.c (howto_table): Change src_mask to 0 for all
relocation entries.
1996-01-11 16:24:39 +00:00
Ian Lance Taylor
64d5f5d061 Tue Jan 9 15:22:53 1996 David Mosberger-Tang <davidm@azstarnet.com>
* coff-alpha.c (alpha_relocate_section): During final link, allow
 	output .lita section to be bigger than 64k by adjusting gp value
 	on a per-input section basis.
	* libecoff.h (struct ecoff_tdata): Add issued_multiple_gp_warning
	field.
	(struct ecoff_section_tdata): Add gp field.

Tue Jan  9 12:00:36 1996  Ian Lance Taylor  <ian@cygnus.com>

	Handle Alpha ECOFF changes in OSF/1 3.2.
	* libecoff.h (struct ecoff_backend_data): Add get_elt_at_filepos
	field.
	* coff-alpha.c: Include "aout/ar.h".
	(alpha_ecoff_get_relocated_section_contents): Don't require an
	ALPHA_R_IGNORE reloc after an ALPHA_R_GPDISP reloc, since OSF/1
	3.2 doesn't generate one.
	(alpha_relocate_section): Likewise.
	(alpha_ecoff_slurp_armap): Define.
	(alpha_ecoff_slurp_extended_name_table): Define.
	(alpha_ecoff_construct_extended_name_table): Define.
	(alpha_ecoff_truncate_arname): Define.
	(alpha_ecoff_write_armap): Define.
	(alpha_ecoff_generic_stat_arch_elt): Define.
	(alpha_ecoff_update_armap_timestamp): Define.
	(ARFZMAG): Define.
	(alpha_ecoff_read_ar_hdr): New static function.
	(alpha_ecoff_get_elt_at_filepos): New static function.
	(alpha_ecoff_openr_next_archived_file): New static function.
	(alpha_ecoff_get_elt_at_index): New static function.
	(alpha_ecoff_backend_data): Initialize get_elt_at_filepos field.
	(ecoffalpha_little_vec): Change BFD_JUMP_TABLE_ARCHIVE from
	_bfd_ecoff to alpha_ecoff.
	* ecoff.c (ecoff_link_add_archive_symbols): Use get_elt_at_filepos
	field from backend structure, rather than always calling
	_bfd_get_elt_at_filepos.
	* coff-mips.c (mips_ecoff_backend_data): Initialize
	get_elt_at_filepos field.
	* archive.c (_bfd_generic_read_ar_hdr_mag): New function, copied
	from _bfd_generic_read_ar_hdr with minor changes.
	(_bfd_generic_read_ar_hdr): Use _bfd_generic_read_ar_hdr_mag.
	* libbfd-in.h (_bfd_generic_read_ar_hdr_mag): Declare.
	* libbfd.h: Rebuild.

	* bfd-in.h (BFD_IN_MEMORY): Define.
	* libbfd-in.h (struct bfd_in_memory): Define.
	* libbfd.c (bfd_read): Handle BFD_IN_MEMORY flag.
	(bfd_get_file_window): Don't try to map a BFD_IN_MEMORY file.
	(bfd_write, bfd_stat): Abort if BFD_IN_MEMORY is set.
	(bfd_tell, bfd_flush, bfd_seek): Handle BFD_IN_MEMORY flag.
	* bfd.c (struct _bfd): Change iostream field from char * to PTR.
	(bfd_get_size): Handle BFD_IN_MEMORY flag.
	* cache.c (bfd_cache_close): Ignore BFD_IN_MEMORY files.
	(bfd_open_file): Cast to PTR, not char *, when setting iostream.
	(bfd_cache_lookup_worker): Abort if BFD_IN_MEMORY is set.
	* opncls.c (bfd_fdopenr): Cast to PTR, not char *, when setting
	iostream.
	(bfd_openstreamr): Likewise.
	* aoutx.h (NAME(aout,some_aout_object_p)): Only fstat iostream if
	BFD_IN_MEMORY is not set.
	* riscix.c (riscix_some_aout_object_p): Likewise.
	* bfd-in2.h, libbfd.h: Rebuild.

	* targets.c (bfd_target): Add _bfd_get_elt_at_index field.
	(BFD_JUMP_TABLE_ARCHIVE): Add _get_elt_at_index.
	(bfd_get_elt_at_index): Define.
	* archive.c (_bfd_generic_get_elt_at_index): Rename from
	bfd_get_elt_at_index.  Change index parameter from int to
	symindex.
	* libbfd-in.h (_bfd_generic_get_elt_at_index): Declare.
	(_bfd_noarchive_get_elt_at_index): Define.
	(_bfd_archive_bsd_get_elt_at_index): Define.
	(_bfd_archive_coff_get_elt_at_index): Define.
	* bfd-in2.h, libbfd.h: Rebuild.
	* aout-target.h (MY_get_elt_at_index): Define if not defined.
	* coff-rs6000.c (xcoff_get_elt_at_index): Define.
	* ieee.c (ieee_get_elt_at_index): Define.
	* libecoff.h (_bfd_ecoff_get_elt_at_index): Define.
	* oasys.c (oasys_get_elt_at_index): Define.
	* som.c (som_get_elt_at_index): Define.
1996-01-09 20:40:39 +00:00
Ian Lance Taylor
c40d9c773f * ecoff.c (_bfd_ecoff_find_nearest_line): Don't restrict line
numbers to the .text section.
PR 8767.
1996-01-09 17:01:15 +00:00
Ian Lance Taylor
efa77952c8 * ieee.c (ieee_write_debug_part): Change return type to boolean.
If there is a SEC_DEBUGGING section, get the contents of the debug
	information part from it.
	(ieee_set_section_contents): Store the contents of a SEC_DEBUGGING
	section in memory.
	(ieee_write_object_contents): Check ieee_write_debug_part return.
1996-01-08 22:02:36 +00:00
Fred Fish
767f22d543 * config.bfd (i[345]86-*-freebsd*): Add target.
* configure.in (i386freebsd_vec): Add vec.
	* configure: Regenerate.
	* Makefile.in (BFD32_BACKENDS): Add i386freebsd.o.
	(BFD32_BACKENDS_CFILES): Add i386freebsd.c.
	Rebuild dependencies..
	* freebsd.h: New file.
	* i386freebsd.c: New file.
	* targets.c (i386freebsd_vec): Declare.
	(bfd_target_vector): Add i386freebsd_vec.
	* i386linux.c (SEGMENT_SIZE): Define as TARGET_PAGE_SIZE
	* i386netbsd.c (SEGMENT_SIZE):  Define as TARGET_PAGE_SIZE
1996-01-05 05:44:27 +00:00
Ian Lance Taylor
f8254a3cc5 * ieee.c (ieee_slurp_debug): New static function.
(ieee_object_p): Call it.
	(ieee_slurp_section_data): Skip debugging sections.
	(ieee_get_reloc_upper_bound): Likewise.
	(ieee_get_section_contents): Likewise.
	(ieee_canonicalize_reloc): Likewise.
	(ieee_write_section_part): Likewise.
	(ieee_write_debug_part): Likewise.
	(ieee_write_data_part): Likewise.
	(init_for_output): Likewise.
1996-01-04 21:30:09 +00:00
Michael Meissner
07a159dbd4 Make @GOT relocations work 1996-01-04 00:44:32 +00:00
Ian Lance Taylor
d812945a9a * coffcode.h (coff_write_object_contents): If we don't know the
section of the entry point for an XCOFF executable, always set the
	entry address to -1.
1996-01-03 20:07:39 +00:00
Michael Meissner
3a56d0b427 Add support for .note sections 1996-01-02 19:17:17 +00:00
Ian Lance Taylor
c4406e5068 * elf32-ppc.c: Remove trailing newline from calls to
_bfd_error_handler.
	(ppc_elf_merge_private_bfd_data): Only warn about endianness
	difference if target endianness is known.
1996-01-02 18:06:55 +00:00
Michael Meissner
08556813ed Work in progress to add real GOT support 1995-12-21 17:50:22 +00:00
Ken Raeburn
86587dd4ca * elf.c (copy_private_bfd_data): When attaching sections to segments ignore
sections that won't be allocated.  Patch from Andreas Schwab.
1995-12-21 00:41:20 +00:00
Ken Raeburn
bf7f243f7e configure m68k-cbm non-sysv4 correctly 1995-12-20 01:13:05 +00:00
Ian Lance Taylor
d9518e2edc * coff-i960.c (CALC_ADDEND): Define.
(coff_i960_relocate_section): Add the input section VMA to the
	addend for PC relative relocs.
PR 8697.
1995-12-19 21:38:51 +00:00
Ian Lance Taylor
dc092b6b2a * targets.c (enum bfd_endian): Define.
(bfd_target): Rename byteorder_big_p to byteorder, and change it
	from boolean to enum bfd_endian.  Change header_byteorder_big_p
	correspondingly.
	* bfd-in.h (bfd_big_endian, bfd_little_endian): New macros.
	(bfd_header_big_endian, bfd_header_little_endian): New macros.
	* bfd-in2.h: Rebuild.
	* All targets: Change initialization of byteorder and
	header_byteorder to use enum bfd_endian values rather than
	booleans.
	* All files: Change all references to byteorder_big_p and
	header_byteorder_big_p to use new bfd_*_endian macros.
1995-12-15 21:18:43 +00:00
Ian Lance Taylor
010a405a94 * coffgen.c (make_a_section_from_file): Set lma to s_paddr, not
s_vaddr.
	* coffcode.h (coff_write_object_contents): Set s_paddr to lma, not
	vma.
	* ecoff.c (_bfd_ecoff_write_object_contents): Likewise.
1995-12-15 17:07:00 +00:00
Steve Chamberlain
fcb4390628 * pe[i]-i386.c (TARGET_UNDERSCORE): Define to '_'. 1995-12-15 15:32:29 +00:00
Ian Lance Taylor
1457810573 * ieee.c: Lots of minor cleanups. Make many functions return
errors rather than calling abort.  Also:
	(ieee_write_twobyte): Remove; change callers to call existing
	ieee_write_2bytes function.
	(ieee_write_expression): Don't output the section twice when
	outputting a local symbol.  Don't emit an extraneous zero if there
	is only one term.
	(ieee_slurp_sections): Set the lma as well as the vma.
	(ieee_archive_p): Use bfd_alloc_grow rather than an obstack.
1995-12-14 20:33:14 +00:00
Ian Lance Taylor
0d709d3137 * ihex.c (ihex_set_arch_mach): Don't accept any architecture, just
a recognized one or bfd_arch_unknown.
	(ihex_get_symtab_upper_bound): Define as bfd_0l, to permit objcopy
	to succeed.
	(ihex_get_symtab): Likewise.
1995-12-14 18:46:54 +00:00
Ian Lance Taylor
14dc2f774e * aoutx.h: Include <ctype.h>.
(struct aout_link_includes_table): Define.
	(struct aout_link_includes_totals): Define.
	(struct aout_link_includes_entry): Define.
	(aout_link_includes_lookup): Define macro.
	(struct aout_final_link_info): Add includes field.
	(aout_link_includes_newfunc): New static function.
	(NAME(aout,final_link)): Initialize includes hash table.
	(aout_link_write_symbols): Eliminate duplicate N_BINCL entries.
1995-12-13 20:47:36 +00:00
Stan Shebs
480ccad563 * mpw-config.in: Match on mips-*-* instead of mips-idt-ecoff. 1995-12-13 18:54:24 +00:00
Kim Knuttila
3920d9c924 Protected debugging code. (duh) 1995-12-13 16:22:02 +00:00
Kim Knuttila
207345f2f6 Fixes for .reloc 1995-12-13 12:56:29 +00:00
Ian Lance Taylor
273c019e53 * config.bfd: Handle sparc-*-elf*. From Ronald F. Guilmette
<rfg@monkeys.com>.
1995-12-12 16:44:22 +00:00
Ian Lance Taylor
010d9f2d13 * elflink.h (elf_link_add_object_symbols): Set section_count to 0
when setting sections to NULL.
PR 8600.
1995-12-08 22:47:28 +00:00
Ian Lance Taylor
4a4a66bdc9 * xcofflink.c (struct xcoff_loader_info): Add export_defineds
field.
	(bfd_xcoff_size_dynamic_sections): Add export_defineds parameter.
	(xcoff_build_ldsyms): If export_defineds is set, set XCOFF_EXPORT
	for all symbols.
	* bfd-in.h (bfd_xcoff_size_dynamic_sections): Update declaration.
	* bfd-in2.h: Rebuild.
1995-12-07 01:08:54 +00:00
Ian Lance Taylor
55cac92082 * ihex.c (ihex_scan): Handle record types 4 and 5.
(ihex_object_p): Permit types 4 and 5.
	(ihex_set_section_contents): Remove check for out of range
	addresses.
	(ihex_write_object_contents): Generate types 4 and 5.
1995-12-04 22:08:45 +00:00
Kim Knuttila
545bf026d5 Removed some debugging prints. duh 1995-12-04 21:47:37 +00:00
Ian Lance Taylor
1f4ae0d6b1 * elflink.h (elf_link_output_extsym): Just ignore warning and
indirect references to symbols which don't really exist.
1995-12-04 16:23:36 +00:00
Kim Knuttila
53d45489e3 Dumper for PowerPC .edata section 1995-12-04 01:58:54 +00:00
David Edelsohn
361e8876a0 * aout-arm.c (MY_swap_std_reloc_out): Use KEEPIT to get the symbol
index, don't call stoi.
1995-12-03 23:29:09 +00:00
Ian Lance Taylor
ffd1548911 * ihex.c: New file; support for Intel Hex format.
* targets.c (enum bfd_flavour): Add bfd_target_ihex_flavour.
	(ihex_vec): Declare.
	(bfd_target_vector): Always include ihex_vec.
	* bfd.c (struct _bfd): Add ihex_data field to tdata union.
	* Makefile.in: Rebuild dependencies.
	(BFD_LIBS): Add ihex.o
	(BFD_LIBS_CFILES): Add ihex.c.
	* bfd-in2.h: Rebuild.
1995-12-02 02:00:08 +00:00
Ian Lance Taylor
ae0a6bea51 * bfd.c (bfd_record_phdr): New function.
* bfd-in.h (bfd_record_phdr): Declare.
	* bfd_in2.h: Rebuild.
1995-12-01 21:45:33 +00:00
Ian Lance Taylor
ce0ee4bf49 * elf32-sparc.c (elf32_sparc_relocate_section): Remove bogus
BFD_ASSERT.
PR 8562.
1995-12-01 20:59:10 +00:00
Ian Lance Taylor
58142f101d * libbfd.c (bfd_malloc, bfd_realloc): New functions.
(bfd_zmalloc): Return PTR, not char *.  Take size_t, not
	bfd_size_type.
	* libbfd-in.h (bfd_malloc, bfd_realloc): Declare.
	(bfd_zmalloc): Change declaration.
	* libbfd.h: Rebuild.
	* Many files: Use bfd_malloc and bfd_realloc rather than malloc
	and realloc.  Don't set bfd_error_no_memory if they fail.
1995-12-01 19:48:10 +00:00
Kim Knuttila
590662481c PowerPC DLL Support 1995-12-01 01:01:42 +00:00
Ian Lance Taylor
6933148af0 * elf.c (_bfd_elf_make_section_from_shdr): Don't set lma based on
p_paddr if p_paddr is zero.
	(make_mapping): Set includes_filehdr and includes_phdrs for first
	PT_LOAD segment.
	(map_sections_to_segments): Set includes_phdrs for PT_PHDR
	segment.
	(assign_file_positions_for_segments): Handle includes_filehdr and
	includes_phdrs.  Remove special handling of PT_PHDR and first
	PT_LOAD segments.
	(copy_private_bfd_data): Set includes_filehdr and includes_phdr
	when appropriate.  Remove special handling of PT_PHDR segment.
	Use a more complex condition for when a section is included in a
	segment to handle Solaris linker oddities.
1995-11-30 22:15:13 +00:00
Ian Lance Taylor
f62fed1c4a Thu Nov 30 11:17:33 1995 Manfred Hollstein KS/EF4A 60/1F/110 #40283 <manfred@lts.sel.alcatel.de>
* coff-m88k.c (howto_table): Reformatted for easier reading;
	special_function now points to new function m88k_special_reloc.
	(howto_hvrt16): Function previously used for handling HVRT16 relocs
	removed.
	(rtype2howto): Do not add reloc's r_offset to the addend, this will
	be done correctly by m88k_special_reloc.
	(reloc_processing): New function to be used by RELOC_PROCESSING.
	(RELOC_PROCESSING): Define to call reloc_processing.
1995-11-30 16:23:05 +00:00
Ian Lance Taylor
b00c57ec37 * peicode.h (pe_print_idata): Call malloc rather than xmalloc.
(pe_print_pdata): Likewise.
1995-11-29 22:10:57 +00:00
Ian Lance Taylor
a9713b91a7 * opncls.c (bfd_alloc_by_size_t): Set bfd_error_no_memory if
obstack_alloc fails.
	(bfd_alloc_finish): Set bfd_error_no_memory if obstack_finish
	fails.
	* libbfd.c (bfd_zmalloc): Set bfd_error_no_memory if malloc fails.
	* Many files: don't set bfd_error_no_memory if one of the above
	routines fails.
1995-11-29 22:05:37 +00:00
Ian Lance Taylor
3dbf33eeb4 * elf.c (assign_file_positions_for_segments): Don't adjust p_paddr
if p_paddr_valid is set.
	(copy_private_bfd_data): New static function.
	(_bfd_elf_copy_private_section_data): Call copy_private_bfd_data.
1995-11-29 20:04:17 +00:00
Ian Lance Taylor
44ef8897da * elf.c (assign_file_positions_for_segments): Fix case where extra
program headers were allocated.
1995-11-29 19:14:33 +00:00
Ian Lance Taylor
27fb8f2933 * elf.c (_bfd_elf_print_private_bfd_data): New function.
* elf-bfd.h (_bfd_elf_print_private_bfd_data): Declare.
	* elfxx-target.h (bfd_elfNN_bfd_print_private_bfd_data): Define to
	_bfd_elf_print_private_bfd_data.
1995-11-29 18:46:07 +00:00
Ian Lance Taylor
64ecde4619 * coff-alpha.c (alpha_ecoff_swap_reloc_in): Don't abort if
r_symndx is RELOC_SECTION_NONE for an ALPHA_R_IGNORE reloc.
	Change a RELOC_SECTION_LITA symndx to RELOC_SECTION_ABS.
	(alpha_ecoff_swap_reloc_out): Change RELOC_SECTION_ABS to
	RELOC_SECTION_LITA for ALPHA_R_IGNORE.
	(alpha_adjust_reloc_out): For ALPHA_R_IGNORE, don't change
	RELOC_SECTION_ABS to RELOC_SECTION_NONE.
1995-11-29 17:40:58 +00:00
Ian Lance Taylor
fd0198f023 * elf-bfd.h (struct elf_obj_tdata): Add segment_map field.
* elf.c (make_mapping): New static function.
	(map_sections_to_segments): New static function.
	(elf_sort_sections): New static function.
	(assign_file_positions_for_segments): New static function.
	(map_program_segments): Remove.
	(get_program_header_size): Remove sorted_hdrs, count, and
	maxpagesize parameters.  Simplify.
	(assign_file_positions_except_relocs): When generating an
	executable, use assign_file_positions_for_segments.
	(elf_sort_hdrs): Remove.
	(_bfd_elf_sizeof_headers): Remove eliminated parameters from call
	to get_program_header_size.
1995-11-28 22:02:13 +00:00
Ian Lance Taylor
1ff0461b4e * hp300hpux.c (MY(callback)): Set lma as well as vma. 1995-11-27 20:11:40 +00:00
Ian Lance Taylor
80c8485c44 * configure, config.in: Regenerate with autoconf 2.7. 1995-11-27 18:02:58 +00:00
Ian Lance Taylor
3b3f762596 * elf32-i386.c (elf_backend_plt_readonly): Set correctly, to 1.
* elf32-sparc.c (elf_backend_plt_readonly): Set correctly, to 0.
PR 8513.
1995-11-27 17:42:27 +00:00
Ian Lance Taylor
a877f5917f * ecoff.c (_bfd_ecoff_new_section_hook): Handle .rconst section.
(ecoff_sec_to_styp_flags): Likewise.
	(_bfd_ecoff_styp_to_sec_flags): Handle STYP_RCONST.
	(ecoff_set_symbol_info): Handle scRConst.
	(ecoff_slurp_reloc_table): Handle RELOC_SECTION_RCONST.
	(ecoff_compute_section_file_positions): Handle .rconst section.
	(_bfd_ecoff_write_object_contents): Likewise.
	(ecoff_link_check_archive_element): Handle scRConst.
	(ecoff_link_add_externals): Likewise.
	(ecoff_link_write_external): Handle .rconst section.
	(ecoff_reloc_link_order): Likewise.
	* ecofflink.c (bfd_ecoff_debug_accumulate): Handle scRConst.
	* coff-alpha.c (alpha_convert_external_reloc): Handle .rconst
	section.
	(alpha_relocate_section): Handle RELOC_SECTION_RCONST.
1995-11-22 19:01:43 +00:00
Ian Lance Taylor
fa63d1ef23 * sunos.c (sunos_scan_dynamic_symbol): Only set written if the
DEF_DYNAMIC flag is set.
PR 8493.
1995-11-22 17:04:56 +00:00
Ken Raeburn
25bada65f5 * host-aout.c: If TRAD_HEADER is defined, include it. 1995-11-22 00:57:55 +00:00