Commit graph

1962 commits

Author SHA1 Message Date
Jeff Law
b905bde1a9 * som.c (som_write_fixups, case R_ENTRY): Handle case where no
unwind descriptor information is available.
1994-08-31 03:30:39 +00:00
Ian Lance Taylor
0822b56d66 * elfcode.h (NAME(bfd_elf,size_dynamic_sections)): Add soname
argument, and use it to set DT_SONAME dynamic entry.
	* bfd-in.h (bfd_elf32_size_dynamic_sections): Update prototype.
	(bfd_elf64_size_dynamic_sections): Update prototype.
	* bfd-in2.h: Rebuilt.
1994-08-30 16:04:40 +00:00
Ian Lance Taylor
b8520cf360 * coffgen.c (coff_real_object_p): Set obj_raw_syment_count.
(coff_get_normalized_symtab): Verify obj_raw_syment_count, rather
	than setting it.
1994-08-26 20:01:21 +00:00
Ian Lance Taylor
fc10f31e8b * archive.c (bsd_write_armap): Remove host dependencies. 1994-08-25 19:50:26 +00:00
Ian Lance Taylor
435b470ec3 * aoutx.h (add_to_stringtab): Check for _bfd_stringtab_add error
before adding BYTES_IN_WORD.
1994-08-25 18:56:11 +00:00
Ian Lance Taylor
6d04c6d475 * coffgen.c (coff_find_nearest_line): Look for the best C_FILE,
not merely the first.
1994-08-25 15:58:43 +00:00
Ian Lance Taylor
715cde57f8 * coffgen.c (coff_write_alien_symbol): If we are not using the
symbol, clear the name so that it is not put in the string table.
	From Antti.Miettinen@ntc.nokia.com.
1994-08-25 14:46:10 +00:00
Ian Lance Taylor
5a53b1c178 * coffgen.c (coff_print_symbol): Cast pointer different to long
and use %ld to print it.
	* osf-core.c (osf_core_core_file_p): Remove unused variable
	dseccnt.
	* ecoffswap.h (ecoff_swap_ext_out): If ECOFF_64, clear remaining
	bytes in bits2.
1994-08-24 21:17:40 +00:00
Ian Lance Taylor
073e795f5e * configure.host, config.bfd: Change i[34]86 to i[345]86. 1994-08-24 16:41:48 +00:00
Ian Lance Taylor
a74d15178f * coffgen.c (coff_real_object_p): Set obj_conv_table_size here,
rather than waiting until coff_slurp_symbol_table.
	(coff_write_alien_symbol): Just ignore BSF_DEBUGGING symbols.
	From Antti.Miettinen@ntc.nokia.com.
1994-08-24 16:32:40 +00:00
Ian Lance Taylor
d37002222d * section.c (bfd_make_section_anyway): Fix failure check of
bfd_make_empty_symbol.  From Antti.Miettinen@ntc.nokia.com.
1994-08-24 16:29:17 +00:00
Ian Lance Taylor
1afd2380ea * aoutx.h (translate_to_native_sym_flags): Use the output_section
(and output_offset) if there is one.

	* aoutx.h (aout_link_check_archive_element): Discard the symbols
	if the archive element was not needed.

	* aoutx.h (aout_get_external_symbols): Ensure that a zero string
	index yields an empty string.
	(aout_link_write_symbols): If info->keep_memory is false, use name
	from original hash table entry, not from entry in *sym_hash.

	* aoutx.h (struct aout_final_link_info): Add fields contents,
	relocs, symbol_map and output_syms.
	(NAME(aout,final_link)): Work out the largest section size, reloc
	size, and number of symbols.  Use them to preallocate buffers that
	are large enough for all cases.
	(aout_link_input_bfd): Use preallocated symbol_map.
	(aout_link_write_symbols): Remove symbol_map argument; use
	preallocated symbol_map instead.  Change all callers.  Use
	preallocated output_syms.
	(aout_link_input_section): Remove symbol_map argument.  Change all
	callers.  Use preallocated contents and relocs.
	(aout_link_input_section_std): Remove symbol_map argument; use
	preallocated symbol_map instead.  Change all callers.
	(aout_link_input_section_ext): Likewise.
1994-08-24 15:59:40 +00:00
Ian Lance Taylor
81eb52b34d * targets.c (BFD_JUMP_TABLE_ARCHIVE): Add _update_armap_timestamp.
(bfd_target): Add field _bfd_update_armap_timestamp.
	* bfd.c (bfd_update_armap_timestamp): Define.
	* bfd-in2.h: Rebuilt.
	* libbfd-in.h (_bfd_noarchive_update_armap_timestamp): Define.
	(_bfd_archive_bsd_update_armap_timestamp): Declare.
	(_bfd_archive_coff_update_armap_timestamp): Define.
	* libbfd.h: Rebuilt.
	* archive.c (_bfd_write_archive_contents): Call
	bfd_update_armap_timestamp instead of checking for a BSD archive
	and calling bsd_update_armap_timestamp.
	(_bfd_archive_bsd_update_armap_timestamp): Rename from
	_bsd_update_armap_timestamp.  Don't assume that armap_datepos is
	already set.
	* aout-target.h (MY_update_armap_timestamp): Define if not already
	defined.
	* coff-rs6000.c (rs6000coff_update_armap_timestamp): Define.
	* ieee.c (ieee_update_armap_timestamp): Define.
	* libecoff.h (_bfd_ecoff_update_armap_timestamp): Define.
	* oasys.c (oasys_update_armap_timestamp): Define.
	* som.c (som_update_armap_timestamp): Define.
1994-08-22 21:20:12 +00:00
Ian Lance Taylor
e914ed5219 * hash.c: Copy string hash functions from aoutx.h.
* aoutx.h: String hash functions moved to hash.c.  Retain
	simplified versions of add_to_stringtab and emit_stringtab.
	Change all callers to use new function and structure names.
	* libbfd-in.h (_bfd_stringtab_init, _bfd_stringtab_free): Declare.
	(_bfd_stringtab_size, _bfd_stringtab_add): Declare.
	(_bfd_stringtab_emit): Declare.
	* libbfd.h: Rebuilt.
1994-08-22 16:36:52 +00:00
Ian Lance Taylor
0ff4ca1eef Mon Aug 22 10:49:37 1994 Eric Youngdale (ericy@cais.cais.com)
* i386linux.c (linux_add_one_symbol): Create a fixup for any
	defined absolute symbol, not just GOT or PLT symbols.
	(linux_tally_symbols): Correct handling of references to defined
	symbols.
1994-08-22 15:00:26 +00:00
Ian Lance Taylor
f494527192 Get ld -x -r to handle a.out set symbols correctly.
* aoutx.h (adjust_o_magic): If the .bss VMA was set outside of
	BFD, pad the .data section up to the VMA of the .bss section.
	(aout_link_add_symbols): If a set symbol does not get modified,
	treat it as a local symbol.
	(aout_link_write_symbols): Set the value of set symbols
	correctly.  Don't discard set symbols even if discarding local
	symbols.
	(aout_link_write_other_symbol): Don't abort on bfd_link_hash_new,
	since it can now happen for set symbols.
1994-08-18 21:48:23 +00:00
Ian Lance Taylor
32c765539c * elfcode.h (elf_fake_sections): Just check for ".rela" and
".rel", not ".rela." and ".rel."; make this work by checking
	use_rela_p.
	* elf32-i386.c (elf_i386_check_relocs): Just check for ".rel", not
	".rel."
	(elf_i386_size_dynamic_sections): Likewise.
	(elf_i386_relocate_section): Likewise.
	* elf32-sparc.c (elf32_sparc_check_relocs): Just check for
	".rela", not ".rela."
	(elf32_sparc_size_dynamic_sections): Likewise.
	(elf32_sparc_relocate_section): Likewise.
1994-08-18 21:33:07 +00:00
Ian Lance Taylor
7cc5cc22bb * linker.c (_bfd_generic_link_add_archive_symbols): Initialize
PASS to the old value + 1.
1994-08-17 20:58:47 +00:00
Ian Lance Taylor
d83689d4de * coffgen.c (coff_get_normalized_symtab): If a C_FILE symbol has
no aux entries, use the symbol name as the file name.
	(coff_find_nearest_line): Look for the right C_FILE symbol, rather
	than always using the first one.  If there is a debugging symbol
	after a function symbol, skip it.  Add the section VMA to the line
	offset, since it was subtracted out in coff_slurp_line_table.
PR 5010.
1994-08-17 17:44:17 +00:00
Jeff Law
fde543b5ff * som.c (som_prep_headers): If writing some form of an executable,
allocate and attach an exec header to the BFD private data.
	(som_begin_writing): Don't fill fields of the exec header based
	on BFD private data here (like the exec flags).  Do not write
	the exec header here.
	(som_write_headers): Instead do it here.
	* som.h (struct somdata): New field "exec_hdr" for the executable
	file header.
	(obj_som_exec_hdr): New accessor macro.
1994-08-16 23:11:59 +00:00
Ian Lance Taylor
969ceea035 * i386linux.c (linux_link_create_dynamic_sections): Create section
named .linux-dynamic, not .dynamic.
	(linux_add_one_symbol): Use .linux-dynamic, not .dynamic.
	(bfd_linux_size_dynamic_sections): Likewise.
	(linux_finish_dynamic_link): Likewise.
1994-08-16 04:15:50 +00:00
Ian Lance Taylor
9fbe895ae7 * coffgen.c (STRING_SIZE_SIZE): Define.
(coff_fix_symbol_name): Use STRING_SIZE_SIZE, not 4.
	(coff_write_symbols, build_string_table): Likewise.
	(coff_get_normalized_symtab): Likewise.
1994-08-15 22:07:29 +00:00
Ian Lance Taylor
f07bb971a0 * libcoff-in.h (obj_symbol_slew): Don't define.
(struct coff_tdata): Remove unused fields index_slew, raw_linenos,
	and flags.
	* libcoff.h: Rebuilt.
	* coffcode.h (coff_mkobject): Don't initialize raw_linenos.
	(coff_mkobject_hook): Don't initialize flags.
1994-08-15 21:02:05 +00:00
Ian Lance Taylor
a932d0ffb7 * aout-target.h (MY_zmagic_contiguous): Define as 0 if not already
defined.
	(MY(backend_data)): Use MY_zmagic_contiguous, not hardcoded 0.
	* i386linux.c (MY_zmagic_contiguous): Define.
1994-08-15 18:12:05 +00:00
Ian Lance Taylor
823609fe90 * elfcode.h (bfd_section_from_shdr): If a SHT_SYMTAB section in a
shared object has SHF_ALLOC set, create a BFD section for it.
	(elf_section_from_bfd_section): There may be a BFD section for a
	SHT_SYMTAB section.
1994-08-15 18:08:13 +00:00
Ian Lance Taylor
e8fbe6d924 * coffcode.h (styp_to_sec_flags): Add name argument. If no flags
are recognized, chose section flags based on the name.
	(bfd_coff_backend_data): _bfd_styp_to_sec_flags_hook field: Add
	name argument.
	(bfd_coff_styp_to_sec_flags_hook): Add name argument.
	(coff_compute_section_file_positions): Don't adjust the section
	position by COFF_PAGE_SIZE unless SEC_ALLOC is set.
	* libcoff.h: Rebuilt.
	* coffgen.c (make_a_section_from_file): Pass section name to
	bfd_coff_styp_to_sec_flags_hook.
	* ecoff.c (_bfd_ecoff_styp_to_sec_flags): Add unused name
	argument.
	* libecoff.h (_bfd_ecoff_styp_to_sec_flags): Add name argument to
	prototype.
1994-08-15 16:26:06 +00:00
Ian Lance Taylor
e9227b4255 * elfcode.h (section_from_elf_index): Correct check for invalid
section index.
1994-08-12 23:25:23 +00:00
Ian Lance Taylor
1c640609d8 * elfcode.h (elf_link_add_object_symbols): If there is no symbol
table, try using the dynamic symbol table.  From Eric Youngdale
	<ericy@cais.cais.com>.
1994-08-12 15:51:09 +00:00
Ian Lance Taylor
098e8a89ec * configure.host (sparc-*-solaris2*): Use solaris2, not sysv4.
The linker depends upon configuring for solaris2.
	* hosts/solaris2.h: New file; include hosts/sysv4.h.
	* config/solaris2.mh: New file; copy of config/sysv4.mh.
1994-08-12 15:28:19 +00:00
Ian Lance Taylor
af76a6e052 Remove aout-ns32k.h. 1994-08-11 04:39:16 +00:00
Ian Lance Taylor
e1f99f6068 * aoutx.h (adjust_z_magic): Make sure data section is padded to
page boundary when the VMA is set by the calling program.  From
	Eric Youngdale <ericy@cais.cais.com>.
1994-08-10 17:15:05 +00:00
Stan Shebs
fb49a80173 Update to ns32k support, from Ian Dall (dall@hfrd.dsto.gov.au).
* aout-ns32k.c: Add declarations that were in aout-ns32k.h, change
	declarations to traditional form.
	(MY_reloc_howto, MY_put_reloc): Change from macro to function.
	(ns32k_relocate_contents): New function.
	* aout-ns32k.h: Remove.
	* cpu-ns32k.c: Add declarations that were in aout-ns32k.h, change
	declarations to traditional form.
	(ns32k_final_link_relocate): Call ns32k_relocate_contents.
	* netbsd532.c: Reformat to standards, add copyright notice.
	(ARCH): Don't define.
	(aout-ns32k.h): Don't include.
	* pc532-mach.c: Ditto.
1994-08-09 01:06:29 +00:00
Peter Schauer
f20860cdbc * irix-core.c (irix_core_core_file_p): Ignore sections that
are not contained in the core file.
1994-08-07 13:26:46 +00:00
Jean Marie Diaz
7432993954 Fix up namespace handling in last patch. 1994-08-04 19:59:27 +00:00
Jean Marie Diaz
8337ee9d51 * coff-m68k.c (_bfd_coff_m68k_reloc_type_lookup): New function.
(coff_bfd_reloc_type_lookup): Define.
1994-08-04 16:38:05 +00:00
Jean Marie Diaz
203778cee1 * elfcode.h (elf_bfd_final_link): Force the vma of sections which
do not have SEC_ALLOC set to be 0.  This is needed to handle
	relocs against debugging sections.
1994-08-04 16:10:23 +00:00
Jean Marie Diaz
1b8a11d430 * coff-i960.c (coff_i960_relocate): Rewrote to change relocs
against locally defined symbols into relocs against section
	symbols, for VxWorks 5.1.
1994-08-03 20:51:59 +00:00
Jean Marie Diaz
e696f6a9b9 Wed Aug 3 10:34:37 1994 Eric Youngdale (ericy@cais.cais.com)
* i386linux.c (linux_add_one_symbol): Only handle
	SHARABLE_CONFLICTS specially if BSF_CONSTRUCTOR is set.  Set hashp
	for a GOT or PLT symbol.  Set jump field of fixup for a PLT symbol.
	(linux_tally_symbols): Check section of real symbol.  When looking
	for a builtin fixup, check builtin and jump flags.  Create no more
	than one fixup, and always create one if the real symbol is in the
	absolute section.  Only strip absolute symbols.
1994-08-03 14:43:42 +00:00
David Henkel-Wallace
756b40d520 LynxOS changes 1994-08-03 13:45:11 +00:00
Jean Marie Diaz
b2ea35c7ab * hp300hpux.c (BMAGIC): Define as HPUX_DOT_O_MAGIC, to make test
in aoutx.h work correctly.
1994-08-02 19:16:36 +00:00
Jean Marie Diaz
5e694c29a5 * coff-i960.c (coff_i960_relocate): New function.
(howto_rellong, howto_iprmed): Use it as special_function.
1994-08-02 15:26:26 +00:00
Jean Marie Diaz
e0566e19aa * libbfd-in.h: Move declarations of bfd_read, bfd_write, bfd_seek,
bfd_tell, bfd_flush, and bfd_stat from here...
	* bfd-in.h: ...to here, to make them visible to programs which
	know more about the object file format than BFD does.
	* libbfd.h, bfd-in2.h: Rebuilt.
1994-08-02 14:48:21 +00:00
Jean Marie Diaz
e21679173e Forgot to check this in. 1994-08-01 23:45:51 +00:00
Jean Marie Diaz
df9e066f4b * elfcode.h (map_program_segments): Check DYNAMIC as well as EXEC_P.
(assign_file_positions_except_relocs): Likewise.
1994-08-01 23:37:22 +00:00
Jean Marie Diaz
4ab1f94712 * elf64-sparc.c (ELF_MAXPAGESIZE): Define. 1994-08-01 23:29:31 +00:00
Jean Marie Diaz
99dd775492 ELF linker patches from Eric Youngdale <ericy@cais.cais.com>.
* elfcode.h (elf_link_create_dynamic_sections): Set type of
	_DYNAMIC to STT_OBJECT.
	(NAME(bfd_elf,record_link_assignment)): Always create hash table
	entry.  Set type to STT_OBJECT.
	(elf_link_output_extsym): Don't set type of weak defined symbol to
	STB_WEAK if symbol was referenced.
	* elf32-i386.c (elf_i386_create_dynamic_sections): Set type of
	_GLOBAL_OFFSET_TABLE to STT_OBJECT.
	(elf_i386_check_relocs): Ignore local PLT32 relocs.
	(elf_i386_relocate_section): Treat local PLT32 relocs as PC32.
1994-08-01 23:11:18 +00:00
Jean Marie Diaz
287e3ce228 Mon Aug 1 17:55:53 1994 Fred Fish (fnf@cygnus.com)
* ptrace-core.c (ptrace_unix_core_file_p):  Convert zalloc usage
	to bfd_zalloc.
1994-08-01 22:00:19 +00:00
Ian Lance Taylor
30e5ad97e9 * elfcode.h (elf_adjust_dynamic_symbol): Correct weak symbol
handling again.
1994-08-01 20:53:48 +00:00
Ian Lance Taylor
f3817a52e5 * configure.host (sparc-*-solaris2*): Use sysv4, not solaris2.
* hosts/solaris2.h: Remove.
	* config/solaris2.mh: Remove.
1994-08-01 16:35:40 +00:00
Ian Lance Taylor
d510fd893a * elfcode.h (elf_slurp_reloc_table): Don't try to read the relocs
if there aren't any.
1994-08-01 16:34:09 +00:00