Commit graph

39 commits

Author SHA1 Message Date
Ian Lance Taylor
5fa2aaa241 * coff-alpha.c: Implemented reloc handling for the linker, made
various other related changes.
	* libecoff.h (ecoff_backend_data): Added rdata_in_text field.
	Renamed finish_reloc to adjust_reloc_in.  Added adjust_reloc_out
	field.
	(ecoff_bfd_get_relocated_section_contents): Don't define.
	* ecoff.c (ecoff_sec_to_styp_flags, ecoff_styp_to_sec_flags):
	Handle .lita section.
	(ecoff_slurp_reloc_table): Handle RELOC_SECTION_FINI.
	finish_reloc backend field renamed to adjust_reloc_in.
	(ecoff_bfd_seclet_link): Adjust number of aux entries to
	debug_align boundary.
	(ecoff_compute_section_file_positions): If rdata_in_text put
	.rdata section in text segment, not data segment.  Put .pdata
	section in text segment.
	(ecoff_write_object_contents): Likewise.  Also, call
	adjust_reloc_out, and handle .lita, .xdata, .pdata, .fini and
	absolute sections when writing out relocs.
	* coffswap.h (coff_swap_aouthdr_out): For ALPHAECOFF, output 2 for
	bldrev field, as on Alpha OSF/1.  Padding field is now 2 bytes.
	* coff-mips.c (mips_ecoff_swap_reloc_out): Added assertion.
	(mips_adjust_reloc_in): Renamed from mips_finish_reloc.
	(mips_adjust_reloc_out): New function (does nothing).
	(mips_ecoff_backend_data): Initialize new fields.
	(ecoff_bfd_get_relocation_section_contents): Define to be
	bfd_generic_get_relocated_section_contents.

	* reloc.c (bfd_perform_relocation): Added casts to avoid Alpha
	OSF/1 cc bug.
1993-10-19 19:41:44 +00:00
Ian Lance Taylor
23f44e6f1a * libbfd-in.h: Removed swapping routines declarations.
* bfd-in.h: Added swapping routine declarations, and renamed them
	from _do_* to bfd_*.
	* libbfd.c: Renamed swapping routines from _do_* to _bfd_*.
	* Changed all callers.
	* libbfd.h, bfd-in2.h: Rebuilt.
1993-09-07 18:32:33 +00:00
Ian Lance Taylor
dae31cf51b * ecoff.c: New file for generic ECOFF functions.
* ecoffswap.h: New file for ECOFF swapping functions which differ
	only slightly for different targets.
	* libecoff.h: Added prototypes for ecoff.c functions.
	(ecoff_backend_data): New structure.
	(ecoff_tdata): Added backend_data field.  Changed external data
	pointers to be PTR rather than to a particular struct.
	(ecoff_symbol_struct): Moved in from coff-mips.c.
	* coff-alpha.c, coff-mips.c: Moved common functions into ecoff.c.
	Added ECOFF backend structures.  Include ecoffswap.h.
	* coff-msym.c: Removed; superseded by ecoffswap.h.
	* bfd.c: Include coff/internal.h.
	* Makefile.in (BFD_LIBS): Removed coff-mips.o and coff-msym.o.
	Added ecoff.o.
	(BFD64_BACKENDS): Added coff-alpha.o.
	(CFILES): Removed coff-msym.c.  Added ecoff.c.
	(bfd.o): Added dependency on $(INCDIR)/coff/sym.h.
	(coff-mips.o): Added dependency on ecoffswap.h and coff/ecoff.h.
	(ecoff.o, coff-alpha.o): New targets.
	(coff-msym.o): Removed target.
1993-08-03 20:22:47 +00:00
Ian Lance Taylor
851f2e3f00 * coff-mips.c: Use MIPS_AOUT_{OZ}MAGIC rather than {OZ}MAGIC. 1993-07-16 16:56:05 +00:00
Ian Lance Taylor
9caf15da51 * coff-mips.c (ecoff_set_symbol_info): Constructor sections should
only be aligned to a 4 byte boundary.
1993-06-14 17:25:15 +00:00
Ian Lance Taylor
9b946448f6 * coff-mips.c (ecoff_sec_to_styp_flags): Use STYP_MIPS_INIT for
section named _INIT.  Don't set STYP_TEXT unless SEC_CODE is set.
	(ecoff_styp_to_sec_flags): Treat a STYP_MIPS_INIT section like
	a STYP_TEXT section.
1993-06-10 18:51:48 +00:00
Ian Lance Taylor
de17306e90 * coff-mips.c (ecoff_mkobject_hook): Mark ZMAGIC files as D_PAGED.
(ecoff_write_object_contents): If not D_PAGED, don't add the
	section headers to text_size.  If not D_PAGED, set the magic
	number to OMAGIC rather than ZMAGIC.  If creating a D_PAGED
	executable, the executable must fully occupy an even number of
	pages.
	(ecoff_set_symbol_info, make_bfd_asection, ecoff_little_vec,
	ecoff_big_vec): Consistently set section alignment power to 4,
	since ECOFF sections should be multiples of 16 bytes.
	(ecoff_little_vec, ecoff_big_vec): Added D_PAGED to object_flags.
	Made ar_pad_char and ar_max_namelen agree for both.
1993-06-09 22:08:13 +00:00
Jim Kingdon
14e3c2e47d * libbfd.c: Add signed versions of bfd_{h_,}{get,put}_signed_<size>.
libbfd.c, libbfd-in.h: Add _do*signed*.
	targets.c, all targets: Add bfd*signed*.
	bfd-in.h: Add bfd_signed_vma.  Add comments.
1993-04-17 00:39:36 +00:00
Ian Lance Taylor
46bc1bf6ba These changes make shared library support work again on 386 COFF
systems.

	* coffcode.h (styp_to_sec_flags): Set SEC_SHARED_LIBRARY for a
	STYP_NOLOAD | STYP_BSS section.  Don't set SEC_NEVER_LOAD for a
	STYP_INFO section.
	(coff_compute_section_file_positions): Force vma and lma of _LIB
	section to be zero.
	(coff_set_section_contents): Count number of entries in new lma
	field, not in vma.
	* coffgen.c (make_a_section_from_file): Force lineno_count of
	SEC_SHARED_LIBRARY section to be zero, since it is non-zero on the
	SCO 3.2v4 shared library.
	* seclet.c (rel): Copy over any section with contents, not just
	loadable sections.

	* coff-mips.c (ecoff_make_empty_symbol): Zero out newly allocated
	symbol.
1993-04-06 00:53:41 +00:00
Ian Lance Taylor
f68d8549cc * coff-mips.c (ecoff_bfd_reloc_type_lookup): New function.
(ecoff_write_object_contents): Added BFD_ASSERT calls to ensure
	relocs are reasonable.
	* coff-msym.c: Eliminated uses of DEFUN.
	(ecoff_swap_tir_out): New function.
1993-03-04 22:48:46 +00:00
Ian Lance Taylor
20f10b59ff * coff-mips.c (ecoff_set_symbol_info): stBlock symbols are always
debugging symbols.
	(ecoff_get_debug): Offset the fdr adr by the adr of the first pdr,
	for compatibility with tools from MIPS.

	* config/bigmips.mt: New file; default vector is ecoff_big_vec.
	* config/irix3.mt, config/irix4.mt: Removed.
	* configure.in (mips-*-ecoff): New target; uses bigmips.mt.
	(mips-sgi-*, mips-big-*): Use bigmips rather than irix3.
1993-02-22 23:17:45 +00:00
Ian Lance Taylor
6d18a99d25 Fix some minor bugs, make work on big endian machines, remember
text_start and text_end for future use by gdb and current use by
find_nearest_line.  Still covered by last ChangeLog entry, I think.
1993-02-03 17:14:11 +00:00
Ian Lance Taylor
f6409552c7 General cleanup--added prototypes, removed a few unused variables,
fixed up comments a bit.  Also set version stamp in a.out header to
0x20a rather than 0, to keep the Ultrix linker happy.
1993-02-02 22:17:27 +00:00
Ian Lance Taylor
5e462ed938 Create a .scommon section for each input BFD so the linker has
something to attach small common symbols to.  Then avoid writing out
the (empty) .scommon section for the output BFD.

Tue Feb  2 11:41:06 1993  Ian Lance Taylor  (ian@cygnus.com)

	* coff-mips.c: Completed support for linker and binutils.
1993-02-02 19:43:44 +00:00
Ian Lance Taylor
23ba15b775 Checkpoint. Can now create MIPS style armap hash tables. Fixed some
linker problems.  The linker still needs to learn to put SCommon
symbols in .sbss rather than .bss.
1993-01-29 23:24:20 +00:00
Ian Lance Taylor
bf4b84bc49 Checkpoint. Linker appears to work. 1993-01-27 19:33:48 +00:00
Ian Lance Taylor
382f2a3d75 Tue Jan 26 11:43:14 1993 Ian Lance Taylor (ian@cygnus.com)
* section.c (SEC_IS_COMMON): New section flag, needed for MIPS
	ECOFF which has two common sections.
	(bfd_com_section): Set SEC_IS_COMMON flag.
	* bfd-in.h (bfd_is_com_section): New macro to test SEC_IS_COMMON.
	* aoutx.h, archive.c, bout.c, coff-a29k.c, coff-m88k.c,
	coff-mips.c, coffgen.c, ieee.c, oasys.c, reloc.c, syms.: Use
	bfd_is_com_section macro rather than checking for equality to
	bfd_com_section.
1993-01-26 19:54:07 +00:00
Ian Lance Taylor
c3fe0c418c Checkpoint. ld works, ld -r doesn't. 1993-01-25 23:33:27 +00:00
Ian Lance Taylor
b6bef86226 Checkpoint. Can now read relocs. 1993-01-19 17:38:13 +00:00
Ian Lance Taylor
8fa0d3a012 Basically a checkpoint for coff-mips.c.
Fri Jan 15 18:13:17 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)

	* coff-msym.c (ecoff_swap_hdr_out, ecoff_swap_fdr_out,
	ecoff_swap_pdr_out, ecoff_swap_sym_out, ecoff_swap_ext_out,
	ecoff_swap_rndx_out, ecoff_swap_rfd_out, ecoff_swap_opt_in,
	ecoff_swap_opt_out, ecoff_swap_dnr_in, ecoff_swap_dnr_out): New
	functions.
	* coffswap.h: If NO_COFF_RELOCS is defined, don't define
	bfd_swap_reloc_in or coff_swap_reloc_out.
	* coff-mips.c: Added code to link and write out symbolic debugging
	information, and to swap relocs in and out.
1993-01-15 23:39:05 +00:00
Ian Lance Taylor
0c2fae099a Mon Jan 11 18:32:22 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
* targets.c (bfd_target): Added relocateable argument to
	_bfd_get_relocated_section_contents.  Added _bfd_seclet_link
	target vector for linker use.
	* bfd.c (bfd_seclet_link): New macro.
	* bfd-in.h (JUMP_TABLE): Added _bfd_seclet_link.
	* seclet.c (rel, seclet_dump_seclet): Added relocateable argument
	and boolean return value.  Made static.
	(bfd_generic_seclet_link): Renamed from seclet_dump.  Added
	relocateable argument.
	* reloc.c (bfd_generic_get_relocated_section_contents): Added
	relocateable argument (if relocateable, saves relocs).
	* bout.c (b_out_get_relocated_section_contents),
	reloc16.c (bfd_coff_reloc16_get_relocated_section_contents): Added
	relocateable argument (if relocateable, just calls
	bfd_generic_get_relocated_section_contents).
	* libcoff-in.h (bfd_coff_reloc16_get_value): Added relocateable
	argument to prototype.
	* All targets: Set new _bfd_seclet_link vector to
	bfd_generic_seclet_link.
1993-01-12 00:38:59 +00:00
Ian Lance Taylor
515c429211 Basically a checkpoint.
Fri Jan  8 15:47:53 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)

	* bfd.c (struct _bfd): Added ecoff_tdata to tdata union.
	* targets.c (enum target_flavour): Added bfd_target_ecoff_flavour.
	* coff-msym.c: Use DEFUN for function definitons.
	* coff-mips.c: Added code to read and print symbols, and to find
	line numbers.
1993-01-08 21:46:36 +00:00
John Gilmore
1f29e30b1f * aout-target.h, aoutf1.h, trad-core.c, coffcode.h, libaout.h:
Eliminate all PROTO calls, replace with PARAMS for readability.

* aoutx.h:  Add type to callback parameter.
* coff-mips.c:  Don't call trad-core.h, not needed.
* trad-core.c:  Incorporate trad-core.h declarations.  Fix comments.
* trad-core.h:  Eliminate, unused.
1992-11-28 13:00:18 +00:00
Steve Chamberlain
294eaca479 Some of these are guesses, if you know different, just yell.
Thu Oct  8 08:52:48 1992  Steve Chamberlain  (sac@thepub.cygnus.com)

	 Now a bfd knows whether underscores are normally prepended
	 to symbols in its file format. Helps with error messages.

	* aout-adobe.c, aout-target.h, bout.c, coff-a29k.c, coff-h8300.c,
	coff-z8k.c: targets set so they have leading underscore
	* coff-i386.c, coff-i960.c, coff-m68k.c, coff-mips.c, coff-m88k.c,
	coff-rs6000.c, coff-we32k.c, elf.c, ieee.c, srec.c: targets set
	without leading underscore flag
	* targets.c: add symbol leading char to xvec description
	* bfd-in.h (bfd_get_symbol_leading_char): new macro.
1992-10-08 16:02:09 +00:00
Steve Chamberlain
c9301d7bcf coff-i386.c
Fixed the RTYPETOHOWTO -> TYPE2HOWTO
coff-mips.c coff-rs6000.c
	Can't read relocs, so provide empty macro
1991-11-27 21:57:48 +00:00
John Gilmore
853f0a7030 * coff-mips.c, coffcode.h: Peter Schauer's patch to kludge in
nonstandard MIPS sections (.rdata, .sdata, etc).
1991-11-22 23:02:29 +00:00
John Gilmore
dd4646ca3a Include bfd.h before sysdep.h, so ansidecl and PROTO() get defined first.
Don't ever call trad_unix_core_file_p from here.
1991-10-11 10:08:58 +00:00
John Gilmore
68b7021279 * configure.in: Tix typo.
* ecoff.c:  If compiling for DEC3100, use trad_unix core files,
        else dummy out the core file support.
        * trad-core.c (trad_unix_core_file_p):  If HOST_DATA_START_ADDR is
        specified, use it to locate the data section.
        * coffcode.h (coff_write_symbols):  Declare buffer as bfd_bytes
        rather than as chars (lint).
1991-08-23 20:55:23 +00:00
Steve Chamberlain
41f50af07b * aoutf1.h archive.c bfd.c coffcode.h core.c ecoff.c ieee.c
bfd.texinfo oasys.c opncls.c reloc.c srec.c: More documentation on
lint fixes.

* amdcoff.c bfd.texinfo Makefile.in : Folded in changes for amd
29k coff by David Wood (wood@lab.ultra.nyu.edu).
1991-07-15 23:30:28 +00:00
Steve Chamberlain
2700c3c75a *** empty log message *** 1991-05-30 22:33:01 +00:00
Steve Chamberlain
7ed4093abc *** empty log message *** 1991-05-21 00:14:16 +00:00
Steve Chamberlain
19b03b7aa4 *** empty log message *** 1991-05-18 02:57:45 +00:00
Steve Chamberlain
8e3c8f4755 *** empty log message *** 1991-05-11 02:22:21 +00:00
John Gilmore
2b1d8a50a0 Cleanups of interface, including close_and_cleanup and write_contents
transfer vector changes.  See ChangeLog.
1991-05-11 00:38:47 +00:00
Steve Chamberlain
d0ec7a8ee4 Various portability lints.
Fixed reloc bug in ieee and oasys.
1991-05-08 19:21:48 +00:00
John Gilmore
b1847ba9e7 Saber C cleanup. Fix horrid bug in opncls.c in which an obstack is
initialized on the stack and then copied into its own allocated space.
(Wow, Steve, you're twisted...)
1991-05-04 22:52:03 +00:00
John Gilmore
23b0b55855 Merge Per Bothner's MIPS changes from 31 March 1991 (bfd-0.5.2-patch1a)
and make the result compile and run on the DEC 3100.  It still has
trouble running but it can handle opening exec and symbol files in
ecoff format.
1991-05-02 23:10:23 +00:00
John Gilmore
fc7233808a Merge devo/bfd with GDB's bfd.
Remove obstack.h to ../include and obstack.c to ../libiberty.
Move COFF symbol swapping code to coffswap.c where GDB can call it but it
won't be duplicated if we have N different COFF targets.
Add support for traditional Unix core files (with a upage).  This support
is from an Ultrix port, but is probably slightly broken now.
Improve bfd_release's of obstack'd items on error returns.
gcc -Wall fixes.
Handle section alignment slightly better in coff, and comment where it
needs more work (on page-aligning virtual vs file addresses for DPAGED).
Use set_tdata everywhere that tdata is set, to avoid "cast to the left
of assignment" problems with some compilers.
Move bfd_alloc, bfd_zalloc, bfd_realloc, and bfd_release into libbfd.h
(from bfd.h) since they are internal routines.
Remove the redundant suffix "_struct" from struct tags.
Set symbol count early in file reading, before slurping in the syms,
for GDB's use.
1991-05-02 04:11:40 +00:00
Steve Chamberlain
1327fb2956 Initial revision 1991-04-23 15:59:23 +00:00