Commit Graph

1690 Commits

Author SHA1 Message Date
Ian Lance Taylor afa67334cb * libbfd.c (bfd_get_file_window): Use casts to avoid doing
arithmetic on PTR types.
1995-11-13 20:25:21 +00:00
Ian Lance Taylor f2bd89150f * aout-target.h (MY(callback)): Set the lma of the sections. 1995-11-13 18:31:50 +00:00
Ian Lance Taylor 7ad4ba8143 * ecoff.c (ecoff_reloc_link_order): Turn a reloc against a defined
symbol into a reloc against the section.
1995-11-13 18:27:49 +00:00
Kim Knuttila 125d37c471 Missed a debug macro (duh) 1995-11-13 15:21:12 +00:00
Kim Knuttila 93b6a3f8e2 Implemented IMGLUE reloc + dumping 1995-11-13 12:54:05 +00:00
Stan Shebs c769947b4a * Makefile.in (bfd_libs_here, etc): Provide empty definitions.
* coff-rs6000.c (rs6000coff_vec): Add conditional defines
	TARGET_SYM and TARGET_NAME for vector and BFD name.
	* coff-pmac.c (pmac_xcoff_vec): Remove.
	(TARGET_SYM, TARGET_NAME): Define.
	* coffcode.h (coff_set_arch_mach_hook) [POWERMAC]: Set the
	machine to 0, not all PowerMacs are 601s.
1995-11-12 20:39:38 +00:00
Ian Lance Taylor 839087b7f1 * archive.c (bfd_generic_archive_p): Preserve tdata in case of
failure.
1995-11-10 04:50:15 +00:00
Ian Lance Taylor 922530a691 * aoutx.h (NAME(aout,final_link)): Report a reasonable error when
trying to do a relocateable link with a non-a.out object file.
1995-11-09 20:54:30 +00:00
Ian Lance Taylor a1774c51f2 * aoutx.h (NAME(aout,set_section_contents)): If a section can not
be represented, report the name via _bfd_error_handler.
	(translate_to_native_sym_flags): Likewise.
	* elf32-mips.c (mips_elf_final_link): Likewise.
	* oasys.c (oasys_write_sections): Likewise.
1995-11-09 20:09:00 +00:00
Ian Lance Taylor 4a378b13e4 * coffcode.h (coff_set_alignment_hook): Write RS6000COFF_C version
which checks for STYP_OVRFLO sections.
	(coff_compute_section_file_positions): If RS6000COFF_C, handle
	reloc and lineno count overflows.
	(coff_write_object_contents): Call coff_count_linenumbers before
	coff_compute_section_file_positions.  If RS6000COFF_C, handle
	reloc and lineno count overflows.
	* xcofflink.c (_bfd_xcoff_bfd_final_link): Count line numbers and
	relocs before dealing with .pad sections.  Count overflow section
	headers when handling .pad sections.
1995-11-09 19:44:09 +00:00
Ian Lance Taylor 7906bf87b9 * coffcode.h (coff_write_object_contents): Set a.out vstamp to 1
if RS6000COFF_C.
1995-11-09 18:26:10 +00:00
Ian Lance Taylor ee17481566 * xcofflink.c (XCOFF_DESCRIPTOR): Define.
(struct xcoff_link_hash_table): Add descriptor_section and
	special_sections fields.
	(_bfd_xcoff_bfd_link_hash_table_create): Initialize new fields.
	(xcoff_link_add_symbols): Set linkage section alignment.  Create
	descriptor section.  Check for magic symbol names (_text, etc.),
	and record them in special_sections if found.  Set
	XCOFF_DESCRIPTOR flag for a function descriptor, and set its
	descriptor field to point back to the function code symbol.
	(xcoff_sweep): Always mark the special descriptor_section.
	(bfd_xcoff_export_symbol): Check whether the symbol might be a
	function descriptor, and mark it if it is.
	(bfd_xcoff_size_dynamic_sections): Add new special_sections
	parameter, and fill it in.  Allocate space for the descriptor
	section.
	(xcoff_build_ldsyms): Set XCOFF_DEF_REGULAR flag when defining
	global linkage code.  If an undefined function descriptor is
	exported, arrange to define it.  Warn about any other undefined
	exported symbol.
	(_bfd_xcoff_bfd_final_link): Write out the descriptor section.
	(xcoff_write_global_symbol): Create a function descriptor when
	necessary.
	* bfd-in.h (bfd_xcoff_size_dynamic_sections): Update declaration.
	* bfd-in2.h: Rebuild.
1995-11-09 18:08:56 +00:00
Kim Knuttila 0e829f1854 Build derived hash table for PowerPC PE 1995-11-09 14:08:28 +00:00
Ken Raeburn b27cc4bcea fix "make dep" for non-NetBSD systems 1995-11-09 09:19:13 +00:00
Ken Raeburn 7ac847361b * configure.in: Added new option --with[out]-mmap. Set USE_MMAP if it is given
and mmep is available.
* acconfig.h: Undef USE_MMAP.
* configure, config.in: Regenerated.
* aoutx.h: If USE_MMAP is not defined, do all symbol and string table handling
the old way.
(aout_get_external_symbols): Don't complain if last byte of string table is
nonzero.
* libbfd.c [HAVE_MADVISE]: Include sys/types.h and sys/mman.h.
(bfd_free_window) [! USE_MMAP]: Don't define.
(bfd_get_file_window, _bfd_generic_get_section_contents_in_window)
 [! USE_MMAP]: Abort.
1995-11-09 09:14:01 +00:00
Ian Lance Taylor 33698029db * coff-a29k.c (a29k_reloc): Change handling of R_IREL reloc to be
compatible with AMD generated COFF files.  Try to support both AMD
	and GNU formats simultaneously.
	(coff_a29k_relocate_section): Likewise.
1995-11-09 02:30:33 +00:00
Ian Lance Taylor 1b3b0c0343 Wed Nov 8 20:03:44 1995 Eric Freudenthal <freudenthal@nyu.edu>
* coff-a29k.c (SIGN_EXTEND_HWORD): Use ~0xffff rather than
	0xffff0000.
1995-11-09 01:04:56 +00:00
Ian Lance Taylor 0bb8ff191e * libbfd.c (bfd_get_file_window): Change writable parameter from
int to boolean; update all callers.  Pass MAP_SHARED if not
	writable--it's required on Solaris.  Cast fprintf argument to
	avoid warning.
	* bfd-in.h (bfd_get_file_window): Update declaration.
	* bfd-in2.h: Rebuild.
	* aoutx.h: Update calls to bfd_get_file_window.
1995-11-08 21:24:33 +00:00
Ian Lance Taylor 7812bf9c25 * xcofflink.c (xcoff_find_reloc): Handle the case of a single
reloc correctly.
1995-11-08 19:26:19 +00:00
Ian Lance Taylor 417acf225f more XCOFF linker hackery 1995-11-08 19:08:18 +00:00
Ian Lance Taylor 0634a43142 * xcofflink.c (XCOFF_DEF_DYNAMIC): Rename from XCOFF_REF_DYNAMIC.
Change all uses.
	(xcoff_swap_ldhdr_in): New static function.
	(xcoff_swap_ldsym_in): New static function.
	(xcoff_link_add_symbols): If we just created a descriptor, pass it
	to _bfd_generic_link_add_one_symbol, to save a hash lookup.
	(xcoff_link_add_dynamic_symbols): Rewrite to read .loader symbols
	rather than normal symbol table.
	(xcoff_mark): When considering called symbols, check whether the
	descriptor is from a dynamic object, rather than the symbol
	itself.
	(xcoff_build_ldsyms): Likewise.
1995-11-08 18:17:44 +00:00
Ian Lance Taylor 092abcdfba * libbfd.c (bfd_get_file_window): Change return type to boolean.
Cast realloc and malloc return values.  If malloc or realloc fail,
	set bfd_error_no_memory.
	* bfd-in.h (bfd_get_file_window): Change type to boolean.
	* bfd-in2.h: Rebuild.
1995-11-08 16:32:40 +00:00
Ian Lance Taylor c09712980d * ecofflink.c (_bfd_ecoff_locate_line): Keep looking through stabs
entries until both the line number address and the function name
	address are too large.
PR 8364.
1995-11-07 21:43:07 +00:00
Kim Knuttila d6f41a7d3e First round ld support for PPC PE 1995-11-07 21:33:33 +00:00
Ian Lance Taylor 6a46885044 * configure.in: Call AC_CHECK_PROG to find and cache AR.
* configure: Rebuilt.
1995-11-07 20:21:37 +00:00
Ian Lance Taylor 6bc200f28d * aclocal.m4 (BFD_CC_FOR_BUILD): Don't define CC_FOR_BUILD if it
is defined in the environment.
1995-11-07 18:51:35 +00:00
Jeff Law c44bf94c73 * som.c (som_get_section_contents_in_window): Define to use
generic version.
1995-11-07 17:59:22 +00:00
Ian Lance Taylor cf587de853 Mon Nov 6 17:13:15 1995 Harry Dolan <dolan@ssd.intel.com>
* coff-i860.c: New file, based on coff-i386.c.
	* cpu-i860.c: New file, based on cpu-i386.c.
	* hosts/i860mach3.h: New file, based on hosts/i386mach3.h.
	* config.bfd (i860-*-mach3*, i860-*-osf1*, i860-*-coff*): New
	targets, using i860coff_vec.
	* configure.in (i860-*-mach3*, i860-*-osf1*): New hosts, using
	trad-core.o and hosts/i860mach3.h.
	(i860coff_vec): Use coff-i860.o and cofflink.o.
	* configure: Rebuild.
	* Makefile.in: Rebuild dependencies.
	(ALL_MACHINES): Add cpu-i860.o.
	(BFD32_BACKENDS): Add coff-i860.o.
	(CFILES): Add cpu-i860.c and coff-i860.c.
	* targets.c (i860coff_vec): Declare.
	(bfd_target_vector): Add &i860coff_vec.
	* archures.c (bfd_i860_arch): Declare.
	(bfd_archures_list): Add &bfd_i860_arch.
	* coffcode.h (coff_set_arch_mach_hook): Handle I860 magic number.
	(coff_set_flags): Handle bfd_arch_i860.
	(coff_write_object_contents): Handle I860 a.out magic number.
1995-11-06 23:04:44 +00:00
Ian Lance Taylor 83c23fca5b * xcofflink.c (xcoff_link_add_symbols): Set the alignment power of
the created .tc section to 2.
	(xcoff_mark): Don't keep a .loader reloc for a call to an
	undefined symbol when creating a shared library.
	(xcoff_build_ldsyms): When creating a shared library, generate
	global linkage code for a call to an undefined symbol.
1995-11-06 19:36:29 +00:00
Ken Raeburn 4fe6d901bd Changes for mmap; details in change log.
Added some new interfaces, and a new entry in the target vector.  Under the new
interfaces, mmap will be used if available, otherwise malloc/seek/read, as
before.  Old interfaces all still intact.

Most configurations (including all used by "--enable-targets=all") simply
changed to call the default routine for that entry in the target vector.  I
might've missed some targets only included in special configurations.

Support for a.out symbol and string table reading now goes through new
interfaces, and will use mmap when available.

Linker hooks (e.g., avoiding reallocation under malloc) not ready yet.
1995-11-06 10:08:03 +00:00
Ken Raeburn ffacb892eb real log for ecoff change - cast _bfd_read_ar_hdr return value 1995-11-06 02:54:36 +00:00
Ken Raeburn 5d9eb9c386 * Makefile.in (CFILES): Rebuild list from BFD_LIBS, ALL_MACHINES,
BFD32_BACKENDS, BFD64_BACKENDS.
(.dep1): Put mkdep output in a separate file.
Rebuilt dependencies.
1995-11-06 02:51:26 +00:00
Fred Fish d9e771e3b0 * core.c: Renamed to corefile.c
* makefile.dos (OBJS): Change core.o to corefile.o
	* Makefile.in (CFILES, BFD_LIBS): Use corefile.c instead of core.c
1995-11-05 00:29:13 +00:00
Stu Grossman bf917766db * config.bfd (mips*-*-magic*): Add bfd_elf32_bigmips_vec to
targ_selvecs to allow debugging under Irix-5 native.
1995-11-04 18:21:17 +00:00
Ian Lance Taylor 583db7a8e1 * xcofflink.c (xcoff_link_add_symbols): Rename local variable sub
to o.  Clobber and restore the list of new csects around the call
	to _bfd_generic_link_add_one_symbol, in case it wants to report a
	linker error and the linker wants to read the symbol table.  Reset
	the line number count of a real section even if it has no relocs.
	(_bfd_xcoff_bfd_final_link): If shared, set the DYNAMIC flag.
1995-11-03 21:20:41 +00:00
Ian Lance Taylor 18a9609c03 * xcofflink.c (_bfd_ppc_xcoff_relocate_section): Don't warn about
an undefined symbol in a shared link.
1995-11-03 04:18:55 +00:00
Ian Lance Taylor 68aed7db3b * linker.c (_bfd_generic_link_add_one_symbol): Correct type of
oldtype from bfd_link_order_type to bfd_link_hash_type.  From
	phdm@info.ucl.ac.be (Philippe De Muyter).
1995-11-03 04:17:36 +00:00
Ian Lance Taylor 4c8b9746b2 use m68k-motorola-sysv*, not sysv3* 1995-11-03 04:16:12 +00:00
Ian Lance Taylor e8d6d5d0a5 * reloc16.c (bfd_coff_reloc16_get_relocated_section_contents):
Pass input_bfd, not in_bfd, to bfd_coff_reloc16_extra_cases.
1995-11-01 22:12:57 +00:00
Ian Lance Taylor 7f82c7e1ee Wed Nov 1 14:26:02 1995 Manfred Hollstein KS/EF4A 60/1F/110 #40283 <manfred@lts.sel.alcatel.de>
* coff-m88k.c (rtype2howto): New static function.
	(RTYPE2HOWTO): Use it rather than a macro definition.

	* coffcode.h (coff_write_object_contents): set internal_a.magic
	to PAGEMAGICPEXECPAGED #if defined (M68) && !defined (LYNXOS).

	* configure.in: m68*-motorola-sysv3* does not use ptrace-core.o;
	define TRAD_HEADER to new file hosts/delta68.h.
	m88*-motorola-sysv*, however, does use ptrace-core.o.
	* hosts/delta68.h: New file.

	* ptrace-core.c (ptrace_unix_core_file_p): change bfd_zmalloc to
	bfd_zalloc; provide proper parm abfd to calls to bfd_zalloc.
1995-11-01 19:31:48 +00:00
Ken Raeburn 619c7730f0 * i386linux.c (MY(vec)): Declare before use. 1995-11-01 18:56:16 +00:00
Ian Lance Taylor b2193cc594 * elf.c (bfd_elf_set_dt_needed_name): Don't do anything if the
BFD is not of the right type.
	(bfd_elf_get_needed_list): Likewise.
	* i386linux.c (bfd_linux_size_dynamic_sections): Likewise.
	* sunos.c (bfd_sunos_get_needed_list): Likewise.
	* xcofflink.c (XCOFF_XVECP): Define.
	(bfd_xcoff_link_record_set): Don't do anything if the BFD is not
	of the right type.
	(bfd_xcoff_import_symbol): Likewise.
	(bfd_xcoff_export_symbol): Likewise.
	(bfd_xcoff_link_count_reloc): Likewise.
	(bfd_xcoff_record_link_assignment): Likewise.
	(bfd_xcoff_size_dynamic_sections): Likewise.
1995-11-01 18:25:35 +00:00
Ian Lance Taylor baabeb74a7 * sunos.c (sunos_scan_ext_relocs): Only check the reloc symbol
table index against the number of symbols for a base relative
	reloc.
1995-11-01 18:09:06 +00:00
Ian Lance Taylor 73246ff837 * coff-rs6000.c (_bfd_xcoff_sizeof_headers): Change from macro to
static function.
	* xcofflink.c (_bfd_xcoff_bfd_link_hash_table_create): Set
	full_aouthdr flag here...
	(_bfd_xcoff_bfd_final_link): ...not here.
1995-11-01 16:47:14 +00:00
Fred Fish 6ab826bd98 * libelf.h: Rename to elf-bfd.h to avoid conflict with
systems that have a system <libelf.h>.
	* Makefile.in: Globally replace libelf.h with elf-bfd.h.
	* bfd.c, elf.c, elf32-arc.c, elf32-gen.c, elf32-hppa.c,
	elf32-hppa.h, elf32-i386.c, elf32-i860.c, elf32-m68k.c,
	elf32-m88k.c, elf32-mips.c, elf32-ppc.c, elf32-sparc.c,
	elf64-gen.c, elf64-sparc.c, elfcode.h, elflink.c,
	elfxx-target.h: Include elf-bfd.h rather than libelf.h.
	* elfxx-target.h: Change libelf.h reference to elf-bfd.h.
1995-10-31 23:29:05 +00:00
Ian Lance Taylor 0652d579db Tue Oct 31 15:30:07 1995 David Mosberger-Tang <davidm@azstarnet.com>
* ecoff.c (ecoff_set_symbol_info): Add new parameter weak.  If
	set, set BSF_WEAK in symbol.  Change all callers.
	(ecoff_get_extr): Set weakext based on BSF_WEAK.
	(ecoff_link_add_externals): If weakext is set, pass BSF_WEAK to
	_bfd_generic_link_add_one_symbol.
	(ecoff_indirect_link_order): Check that the section tdata relocs
	are not NULL before using them.
1995-10-31 20:50:25 +00:00
Ian Lance Taylor 999cc186c5 Tue Oct 31 15:30:07 1995 David Mosberger-Tang <davidm@azstarnet.com>
* configure.in (alpha*-*-linux*): Set COREFILE to trad-core.o and
	define TRAD_HEADER as hosts/alphalinux.h.
	* configure: Rebuild.
	* hosts/alphalinux.h: New file.
	* trad-core.c (trad_unix_core_file_p): Cast u.u_ar0 to bfd_vma,
	not int.
1995-10-31 20:32:53 +00:00
Ian Lance Taylor 2bd0aeb941 * coffcode.h (coff_slurp_symbol_table): Accept C_BCOMM and
C_ECOMM storage classes.
1995-10-31 19:20:58 +00:00
Ian Lance Taylor e608052057 * xcofflink.c (xcoff_mark_symbol): New static function, broken out
of xcoff_mark.
	(xcoff_mark): Call xcoff_mark_symbol.
	(bfd_xcoff_export_symbol): Call xcoff_mark_symbol.
	(bfd_xcoff_link_count_reloc): Call xcoff_mark_symbol rather than
	doing it by hand.
	(xcoff_build_ldsyms): Build a .loader symbol for an export symbol.
1995-10-31 17:36:12 +00:00
Ian Lance Taylor f630a0a41a * xcofflink.c (struct xcoff_final_link_info): Add new line_filepos
field.
	(xcoff_find_reloc): New static function.
	(xcoff_link_add_symbols): Use it.
	(_bfd_xcoff_bfd_final_link): Set finfo.line_filepos.
	(xcoff_link_input_bfd): Handle C_BINCL and C_EINCL.  Don't
	relocate the value of C_DECL.
1995-10-30 23:53:16 +00:00