Commit graph

1864 commits

Author SHA1 Message Date
Ian Lance Taylor
4335ce642d * linker.c (_bfd_generic_final_link): Set reloc_count to 0 before
counting relocs.  Set SEC_RELOC flag for any section which has
	relocs.

	* linker.c (_bfd_default_link_order): Handle bfd_data_link_order.

	* linker.c (_bfd_generic_link_add_symbols): Just call
	generic_link_add_symbols.
	(_bfd_generic_link_add_symbols_collect): New function, like
	_bfd_generic_link_add_symbols but also collect constructors and
	destructors by name as collect2 does.
	(generic_link_add_symbols): New function, like old
	_bfd_generic_link_add_symbols but with collect argument.
	(generic_link_add_object_symbols): Take collect argument.
	(generic_link_check_archive_element_no_collect): New function.
	(generic_link_check_archive_element_collect): New function.
	(generic_link_check_archive_element): Take collect argument.
	(generic_link_add_symbol_list): Take collect argument.
	(_bfd_generic_link_add_one_symbol): Rename constructor argument to
	collect.
	* libbfd-in.h (_bfd_generic_link_add_symbols_collect): Declare.
	* libbfd.h: Rebuilt.
1994-03-22 18:18:40 +00:00
Jeff Law
9d92fe0af4 * archive.c (bfd_construct_extended_name_table): Use ar_padchar
for first character in an extended name.
        (_bfd_write_archive_contents): If ar_padchar == '/', then use
        "//" as the name of the special archive member holding the
        extended name table.
1994-03-22 18:04:59 +00:00
Ian Lance Taylor
f1cca64780 Support for link_order types which generate relocs in order to
support -Ur in the linker.
	* linker.c (generic_link_add_symbol_list): Remove bitsize argument
	from call to _bfd_generic_link_add_one_symbol.
	(_bfd_generic_link_add_one_symbol): Remove bitsize argument.
	Don't pass bitsize to constructor call back.  Pass BFD_RELOC_CTOR
	instead of bitsize to add_to_set call back.
	(_bfd_generic_final_link): Account for link_order relocs when
	allocating space for relocations.  Handle them in link_order loop.
	(_bfd_generic_reloc_link_order): New function.
	(_bfd_default_link_order): If a reloc_link_order is seen here,
	abort.
	(_bfd_count_link_order_relocs): New function.
	* libbfd-in.h (_bfd_generic_link_add_one_symbol): Remove bitsize
	argument from declaration.
	(_bfd_generic_reloc_link_order): Declare.
	(_bfd_count_link_order_relocs): Declare.
	* libbfd.h: Rebuilt.
	* aoutx.h (aout_link_add_symbols): Remove bitsize argument from
	call to _bfd_generic_link_add_one_symbol.
	(NAME(aout,final_link)): Account for link_order relocs when
	allocating space for relocations.  Handle them after handling all
	input BFDs.
	(aout_link_reloc_link_order): New function.
	* ecoff.c (ecoff_link_add_externals): Remove bitsize argument from
	call to _bfd_generic_link_add_one_symbol.
	(ecoff_bfd_final_link): Account for link_order relocs when
	allocating space for relocations.  Handle them in link_order loop.
	(ecoff_link_write_external): Set the storage class of a defined
	linker created symbol based on the section it is in.  Correct
	bfd_link_hash_weak case to use .sc rather than .st.
	(ecoff_reloc_link_order): New function.
	* coff-alpha.c (alpha_bfd_reloc_type_lookup): Handle
	BFD_RELOC_CTOR.
	* coff-mips.c (mips_bfd_reloc_type_lookup): Likewise.
1994-03-22 00:27:05 +00:00
Jeff Law
17e64ad39b * bfd/som.c (som_begin_writing): Fix thinko (off by one error). 1994-03-21 03:42:06 +00:00
Jeff Law
c2e1207b3a * som.c (bfd_section_from_som_symbol): Only to do the value
comparison for function symbols within executables.
1994-03-21 02:08:37 +00:00
Jeff Law
c05d2d43a0 * som.c (bfd_section_from_som_symbol): Renamed from
som_section_from_subspace_index.  Pass in a native SOM symbol.
        For executables, iterate through the sections to find out
        which contains the symbol's address rather than using the
        symbol_info field.  (symbol_info has a different meaning for
        dynamicly linked executables.)
1994-03-20 23:27:37 +00:00
Jeff Law
61bcbf40af * trad-core.c (trad_unix_core_file_p): Don't pass abfd to
bfd_zmalloc.
1994-03-20 21:39:35 +00:00
Jeff Law
517a6af632 * som.c (som_begin_writing): Fix braino (one call to align
space/subspace data was done unconditionally rather than
        just for executables.)
1994-03-20 19:22:04 +00:00
Jeff Law
142f59f4a9 * som.c (som_begin_writing): Align text in all executables to
make HPUX kernel happy.  Fixes strip/objcopy for shared
        executables.
1994-03-20 17:27:51 +00:00
Jim Kingdon
47dc9b52c2 * bfd.c (struct _bfd): Add cisco_core_struct to tdata union.
* libbfd.c (bfd_read, bfd_seek): Add comments regarding errors.
	* cisco-core.c: New file.
	* Makefile.in: Change accordingly.
	* configure.in: Recognize cisco_core_vec.
	* config/m68k-aout.mt (SELECT_VECS): Add cisco_core_vec.
	* targets.c: Add cisco_core_vec.
	* bfd-in2.h: Rebuilt.
1994-03-19 21:13:58 +00:00
Jim Kingdon
1732fbd47a * cisco-core.c: New file. 1994-03-19 17:51:39 +00:00
Jeff Law
00806436cd * som.c (som_begin_writing): Account for alignment needs of
subspaces too when writing executables.  Never request a negative
        bss size.  Fixes some problems with demand paged executables,
        still having problems with pure executables and shared executables.
1994-03-19 15:08:12 +00:00
Jeff Law
1576691751 * som.h (som_copyable_section_data_struct): New structure
containing all the private section information which needs
	to be copied from input section to output section during
	objcopy or strip.
	(som_section_data_struct): Remove several fields now in
	som_copyable_section_data_struct.  Make the space and
	subspace dictionaries be pointers (to save space when
	only reading objects).

	* som.c (bfd_som_set_section_attributes): Now returns a boolean;
	some references changed.  Allocate a copyable data stucture if
	none exists.  Store info into the copyable data structure.
	(bfd_som_set_subsection_attributes): Likewise.
	(som_is_space, som_is_subspace, som_is_container): New functions.
	Use these instead of directly accessing private data.
	(som_prep_headers): Allocate space and subspace headers here.
	Fill in some fields in the space/subspace headers from the
	copyable data.
	(som_bfd_copy_private_section_data): Only copy the stuff
	that we really need to make objcopy and strip work.  Allocate
	the copy_data structure for the output bfd before copying.
1994-03-19 06:41:54 +00:00
Jim Kingdon
5d70e4d137 * bfd.c (struct _bfd): Add cisco_core_struct to tdata union.
* libbfd.c (bfd_read, bfd_seek): Add comments regarding errors.
	* cisco-core.c: New file.
	* Makfile.in: Change accordingly.
	* bfd-in2.h: Rebuilt.
1994-03-19 06:36:47 +00:00
Jim Kingdon
f3f29240da * trad-core.c (trad_unix_core_file_p): Call bfd_zmalloc not
bfd_zalloc for rawptr, because later on we may call free, not
	bfd_release, on it.

	* bfd.c (struct _bfd): Add cisco_core_struct to tdata union.
	* libbfd.c (bfd_read, bfd_seek): Add comments regarding errors.
	* cisco-core.c: New file.
	* Makfile.in: Change accordingly.
	* bfd-in2.h: Rebuilt.
1994-03-19 06:17:08 +00:00
Jeff Law
4359a7ef33 * som.h (struct som_exec_data): New structure to hold exec
info that must be preserved when running objcopy/strip.
	(struct somdata): Add new "exec_data" field and accessor
	macro.  Add some comments on how the various fields are used.
	(som_section_data_struct): Make is_space and is_subspace bitfields.
	Delete unused subspace_index.  All references now use the
	target_index field within the section structure itself.

	* som.c (make_unique_section): Delete unused declaration.
	(som_bfd_copy_private_bfd_data): New function.
	(som_object_setup): Allocate space for and save exec information
	that needs to be copied during objcopy/strip.
	(som_mkobject): Do not allocate space for a file header here.
	It is not used when only reading SOM objects.
	(som_prep_headers): Allocate space for and attach a file header
	to the output bfd.  For executables, use the saved system_id
	value rather than trying to guess the right value.  Do not abort
	wwhen setting file_hdr->entry* for executables.
	(som_begin_writing): For executables, set the exec_entry and
	exec_flags fields.
	(som_copy_private_backend_section_data): Always return a value.
1994-03-19 05:06:54 +00:00
Jeff Law
08b3c4f997 * libhppa.h (PA_PAGESIZE): Define.
* som.c (SOM_ALIGN): Define.
        (som_begin_writing): If writing an executable, initialize all
        fields in the exec header to zero.  Update fields in the exec
        header as sizes of loadable subspaces are computed.  Carefully
        preserve alignments when building executables.  Actually write the
        exec after all the fields are filled in.
1994-03-19 03:54:49 +00:00
Jeff Law
3b4994959e * Better long-filename handling. Reads SOM ABI compliant extended
names, but doesn't quite write compliant extended names yet.
        * som.c (som_slurp_extended_name_table): Delete function.  The
        generic code will handle things correctly.
        (som_slurp_armap): Seek to the beginning of the next member.
        (normalize): New function.
        (som_bfd_ar_write_symbol_stuff): Take the size of the extended
        name table into account when computing the file offsets in the
        SOM dictionary.  Make sure to align to an even boundary.
        (som_write_armap): Initialize the checksum to zero.
        (ar_maxchars): Fix.  Opps.
1994-03-19 02:17:15 +00:00
Jim Kingdon
4fe278b83a new for cisco crash dumps 1994-03-19 02:12:30 +00:00
Ken Raeburn
ff9785703d * aoutx.h (reloc_type_lookup): Handle BFD_RELOC_CTOR on a 64-bit
machine.  Handle BFD_RELOC_SPARC13 and BFD_RELOC_SPARC_BASE13.
1994-03-19 01:39:36 +00:00
Ken Raeburn
5a66538bcb * bfd-in.h (BFD_VERSION): Use @VERSION@.
* Makefile.in (bfd.h): Replace it with contents of VERSION file.
* bfd-in2.h: Regenerated.
1994-03-17 23:47:00 +00:00
Ken Raeburn
6f4aac6cb9 (trad_unix_bfd_is_local_label): Fixed typo where
this was also named trad_unix_bfd_copy_private_bfd_data.
1994-03-17 23:38:36 +00:00
Ian Lance Taylor
7838792b0c * osf-core.c (osf_core_bfd_copy_private_bfd_data): Remove
duplicate definition.
	(osf_core_bfd_is_local_label): Define.
1994-03-17 23:26:03 +00:00
Stan Shebs
8b0f1c2004 Don't need mpw-xconfig.in anymore. 1994-03-17 23:08:36 +00:00
Jim Kingdon
8eb5d4be69 * aoutx.h, elfcode.h, coff-alpha.c, bout.c, ecoff.c, ecofflink.c,
elf32-hppa.c, elf32-mips.c, linker.c, som.c, sunos.c: If malloc(0)
	returns NULL, it is not an error.  It's possible that some of
	these checks are not necessary (because the size can never be
	zero), but putting in the checks is the conservative thing to do
	in light of the fact that some of these malloc calls replaced
	unchecked alloca calls, in which a zero argument would work fine.
1994-03-17 18:54:48 +00:00
Ian Lance Taylor
4bbf7a4924 * reloc.c (bfd_generic_get_relocated_section_contents): Don't fail
if malloc (0) fails.  bfd_canonicalize_reloc returning 0 is not a
	failure indication, it merely means there are no relocs.
1994-03-17 17:29:15 +00:00
Ian Lance Taylor
1c6042ee10 * elfcode.h (NAME(bfd_elf,write_object_contents)): Don't use space
after NAME, since SunOS /bin/cc can't handle it.
1994-03-17 16:47:01 +00:00
David MacKenzie
ae6710bc98 * netbsd386.c (N_SET_FLAGS): Don't nuke the machine id field.
From sukes@glue.umd.edu (Tasuki Hirata).
1994-03-17 00:45:26 +00:00
Jeff Law
35ac8aacf9 * som.c (som_prep_for_fixups): Detect section symbols based
on either the lack of private data or the symbol flags.  Do not
        munge section symbol names anymore -- they no longer confuse GDB.
        (som_begin_writing): Leave space for an exec header if writing
        an executable.
        (som_slurp_symbol_table): Recognize both forms of section symbol
        names "L$0\002" and "$<FOO>$".  Change the name of "L$0\002"
        section symbols to be the name of the section they represent.
        Debugging  symbols begin with "L$0\001", not just "L$".
1994-03-16 08:03:46 +00:00
Jeff Law
5b3577cb7a * bfd-in2.h, libbfd.h, libcoff.h: Rebuilt.
* bfd-in.h (JUMP_TABLE): Add new entries to the jump table
	for bfd_copy_private_section_data, bfd_copy_private_bfd_data,
	and bfd_is_local_label.

	* targets.c: Add new entries to the bfd_target structure.

	* bfd.c (bfd_copy_private_bfd_data): New definition.

	* section.c (bfd_copy_private_section_data): New definition.

	* syms.c (bfd_is_local_label): New definition.

	* libbfd-in.h (bfd_generic_is_local_label): Declare.

	* libbfd.c (bfd_generic_is_local_label): New function.

	* *-core.c: Provide default definitions for new functions in
	the target vector which all point to bfd_false.

	* aout-target.h, coffcode.h, elf32-target.h elf64-target.h, ieee.c
	libaout.h, libecoff.h, nlm-target.h, oasys.c, srec.c, tekhex.c
	Default new vectors for copying private backend data to bfd_true.
	Default new vector for determining if a symbol is a local label
	to bfd_generic_is_local_label.

	* som.c (som_bfd_copy_private_section_data): New function.
	(som_bfd_is_local_label): New function.
	(som_bfd_copy_private_bfd_data): For now default to bfd_true.

	* elf32-hppa.c (hppa_elf_is_local_label): New function.
1994-03-16 07:02:05 +00:00
Ian Lance Taylor
0069bd06b3 * cf-m68klynx.c (CALC_ADDEND): Use _bfd_m68klynx_howto_table. 1994-03-16 04:57:11 +00:00
Jim Kingdon
f8ffa54812 * i386os9k.c : new file to handle os9k format bfd. 1994-03-15 16:20:51 +00:00
David MacKenzie
57a1867e6c * Most files:
Replace DEFUN and DEFUN_VOID with K&R-style function definition.
	Indent some of them to GNU standards.

	* aout32.c, archures.c, core.c, cpu-h8300.c, cpu-i960.c,
	cpu-m68k.c, cpu-m88k.c, cpu-mips.c, cpu-vax.c, ctor.c, demo64.c,
	elf32-hppa.h, gen-aout.c, host-aout.c, init.c, libhppa.h,
	libieee.h, liboasys.h, newsos3.c, som.h, stab-syms.c, sunos.c:
	Update copyright years.
1994-03-15 15:13:13 +00:00
Jeff Law
baef2065d0 * som.c (som_prep_for_fixups): A relocation involving the section
symbol for the *ABS* section is really a relocation involving
        no symbol.
        (som_slurp_symbol_table): Do not set BSF_GLOBAL or BSF_EXPORT for
        undefined symbols.  Correctly distinguish between debugger symbols
        and section symbols.
1994-03-15 05:21:51 +00:00
Jeff Law
b486fb13be * som (setup_sections): Set SEC_DEBUGGING and the section attributes
for spaces and subspaces.
1994-03-15 04:40:51 +00:00
Jeff Law
4c9db344d2 * som.c (som_bfd_count_ar_symbols): Fix typo. 1994-03-14 21:53:29 +00:00
Jeff Law
ec743ceff2 * som.c (som_object_setup): Set EXEC_P, D_PAGED, WP_TEXT, and
HAS_RELOC based on the object's magic number.
        (make_unique_section): Delete function.  BFD and its users are
        prepared to handle multiple sections with the same name.
        (setup_sections): Allocate space on the BFD's obstack to hold
        section names.  Use bfd_make_setion_anyway rather than the
        obsolete make_unique_section.
        (som_prep_headers): Choose the correct SOM magic number based
        on the BFD's flags.
        (som_bfd_fill_in_ar_symbols): Return false, not NULL on error.
1994-03-14 19:43:01 +00:00
Ian Lance Taylor
45ccfd58d2 * elf32-ppc.c: Renamed from elf32-powerpc.c.
start-sanitize-powerpc-netware
	* nlm32-ppc.c: Renamed from nlm32-powerpc.c.
 	end-sanitize-powerpc-netware
	* Makefile.in, configure.in: Corresponding changes.
1994-03-12 17:48:16 +00:00
Mark Eichin
f71481ba84 Changes to 68k-lynx to make it handle symbols in common sections "properly",
ie. the way "real" 68k coff implementations seem to do it, rather than like
the way it's traditionally done. Fixes lifted from the i386-coff version.
1994-03-12 05:37:38 +00:00
Ian Lance Taylor
92177c5242 * elf32-powerpc.c: Extensive changes to update to preliminary ABI.
Many changes to nlm32-powerpc.c as well, but I'm not bothering to make
a ChangeLog entry to avoid sanitization headaches.
1994-03-12 03:30:52 +00:00
Peter Schauer
3e0b555420 * sunos.c (sunos_read_dynamic_info): Assume that dynamic info
is always located at the start of the data section to allow
	recovery of the dynamic info from a stripped executable.
	* ecoff.c (ecoff_styp_to_sec_flags):  Handle STYP_PDATA, STYP_XDATA
	and STYP_COMMENT.
1994-03-11 09:03:07 +00:00
Jim Kingdon
d7fb453182 * libbfd-in.h: Remove alloca cruft. It was missing some necessary
cruft (like the #pragma alloca for AIX).
	In addition to that problem, the C alloca calls xmalloc, which
	means checking for being out of memory can't work right.  The
	following changes remove all uses of alloca from BFD.
	* hosts/solaris2.h: Remove alloca cruft.
	* som.c: Replace alloca with a fixed size auto array.
	* aoutx.h, elfcode.h, nlmcode.h, bout.c, coff-alpha.c, ecoff.c,
	ecofflink.c, elf32-hppa.c, elf32-mips.c, linker.c, reloc.c, som.c,
	sunos.c: Replace alloca with malloc and appropriate error checking and
	freeing.
	* linker.c: Replace alloca with obstack_alloc.
	* libbfd.h: Rebuilt.
1994-03-10 02:33:01 +00:00
Jim Kingdon
80425e6c82 * libbfd-in.h: Remove alloca cruft. It was missing some necessary
cruft (like the #pragma alloca for AIX).
	In addition to that problem, the C alloca calls xmalloc, which
	means checking for being out of memory can't work right.  The
	following changes remove all uses of alloca from BFD.
	* hosts/solaris2.h: Remove alloca cruft.
	* som.c: Replace alloca with a fixed size auto array.
	* aoutx.h, elfcode.h, nlmcode.h, bout.c, coff-alpha.c, ecoff.c,
	ecofflink.c, elf32-hppa.c, elf32-mips.c, linker.c, reloc.c, som.c:
	Replace alloca with malloc and appropriate error checking and
	freeing.
	* linker.c: Replace alloca with obstack_alloc.
	* libbfd.h: Rebuilt.
1994-03-10 02:09:10 +00:00
Ian Lance Taylor
1404c3656d * coff-mips.c (mips_relocate_section): Handle MIPS_R_LITERAL like
MIPS_R_GPREL.
1994-03-08 20:11:44 +00:00
Peter Schauer
802f4fe2f7 Add lost lines to previous ChangeLog entry. 1994-03-07 21:38:41 +00:00
Peter Schauer
25677b5b30 * elf32-hppa.h, elfcode.h: Replace uses of Elf*_Half, Elf*_Word,
Elf*_Off typedefs by their expansion, the typedefs have been
	removed from include/elf/internal.h.
1994-03-05 22:41:41 +00:00
Jeff Law
7b5f6e48f1 * som.h (_PA_RISC_ID): Treat HOST_HPPAOSF just like HOST_HPPABSD. 1994-03-04 04:04:48 +00:00
Jim Kingdon
baf200d479 * configure.host: Recognize i[34]86-sequent-*.
* trad-core.c (trad_unix_core_file_p): A non-zero, not zero,
	return from bfd_seek indicates an error.
	New macro TRAD_CORE_DSIZE_INCLUDES_TSIZE to replace
	TRAD_CORE_STACK_OFFSET.
	* hosts/symmetry.h: Define TRAD_CORE_DSIZE_INCLUDES_TSIZE and
	TRAD_CORE_USER_OFFSET but not HOST_STACK_OFFSET.
1994-03-03 02:38:24 +00:00
Jeff Law
4e64845ca5 * som.[ch]: Do not include libhppa.h in som.c, instead include
it in som.h.

        * elf32-hppa.[ch]: Do not include libhppa.h in elf32-hppa.c, instead
        include it in elf32-hppa.h.
1994-03-02 23:04:29 +00:00
Jeff Law
98ecc94548 * som.c (log2): Return -1 on error rather than aborting.
(setup_sections): Bubble up an error from log2.
1994-03-02 20:32:10 +00:00
Jeff Law
44fd66228a * som.c (hppa_som_gen_reloc_type): Use correct enum type for
field parameter.
        (bfd_som_set_section_attributes): Use unsigned int rather than
        unsigned char to avoid GNU-C extensions.
        (bfd_som_attach_aux_hdr): Return a boolean to indicate success
        or failure rather than aborting on failure.

        * som.h (bfd_som_set_section_attributes): Fix prototype to match
        som.c changes.
        (bfd_som_attach_aux_hdr): Add prototype.
        (hppa_som-gen_reloc_type): Likewise.

        * elf32-hppa.c: Add a couple casts to make HP compiler happy.
        (hppa_look_for_stubs_in_section): Do not return false on failure
        until rest of code is ready to handle it.  Abort for now.
1994-03-02 19:59:03 +00:00
Jim Kingdon
d1f8b18147 * bfd-in2.h: Rebuilt. 1994-03-02 02:36:07 +00:00
Kung Hsu
bb37e7161e Modified Files:
ChangeLog i386os9k.c Makefile.in

        * i386os9k.c: use new functions bfd_set_error and bfd_get_error.
        * Makefile.in: delete an extra blank.
1994-03-01 21:39:28 +00:00
Kung Hsu
85cc33c754 Modified Files:
ChangeLog configure.in

       * configure.in : Add i396os9k_vec.
1994-03-01 21:09:17 +00:00
Stu Grossman
3622687b76 Remove trailing space at end of continuation line in def of CFILES. 1994-03-01 03:14:51 +00:00
Kung Hsu
5143c305dd Modified Files:
ChangeLog
1994-03-01 00:00:06 +00:00
Kung Hsu
2f88343dbe Modified Files:
ChangeLog targets.c Makefile.in cache.c
Added Files:
	i386os9k.c

        * i386os9k.c : new file to handle os9k format bfd.
        * Makefile.in : Handle new file i386os9k.c
        * bfd-in2.h : Add bfd_target_os9k_flavour.
        * targets.c : Add bfd_target_os9k_flavour and i386os9k_vec.
        * cache.c : Initialize cache_sentinel to 0.
1994-02-28 23:49:08 +00:00
Jeff Law
f3b477bec4 * elf32-hppa.c (mismatches, retval_mismatches): Fix mismatch
action in case where caller specified no argument relocation.
        (hppa_elf_build_linker_stub): Try again to get the sym_ptr_ptr
        right in the original relocation and the stub's relocation.
1994-02-28 04:25:14 +00:00
Jeff Law
6e58a4e5db * elf32-hppa.h (hppa_look_for_stub_in_section): Fix typo. Delete
unused symbols argument.

        * elf32-hppa.c (hppa_elf_stub_reloc): Accept asymbol ** rather
        than asymbol * for original target symbol.  All callers changed.
        Set reloc->sym_ptr_ptr appropriately.
        (hppa_elf_build_linker_stub): Set reloc->sym_ptr_ptr correctly.
        (hppa_elf_look_for_stubs_in_section): No longer need symbols
        argument.  Use the output symbols when canonicalizing the relocs,
        creating them if necessary.

        * linker.c (_bfd_generic_link_output_symbols): Do not rebuild/clobber
        the output symbols if they already exist.
1994-02-28 00:32:14 +00:00
Stan Shebs
d63840d016 Sun Feb 27 15:41:10 1994 Stan Shebs (shebs@andros.cygnus.com)
* mpw-make.in (DEBUG_BFD_SEND): Define in default compilation
	rule.
1994-02-27 23:46:59 +00:00
Stan Shebs
fdfe2d1466 Sun Feb 27 15:22:36 1994 Stan Shebs (shebs@andros.cygnus.com)
* targets.c (BFD_SEND, BFD_SEND_FMT): Add debugging versions that
	check all the pointer dereferences.  Enabled via DEBUG_BFD_SEND.
	* bfd-in2.h: Rebuilt.
1994-02-27 23:45:18 +00:00
Stan Shebs
4c8d6c9f4f Sun Feb 27 15:22:36 1994 Stan Shebs (shebs@andros.cygnus.com)
* srec.c (hex_value): Always set to a size of 256 bytes.
	(srec_init): Cosmetic changes.
1994-02-27 23:28:48 +00:00
Jeff Law
e08b9ad7a1 * elf32-hppa.c: Second half of major cleanup. More comments,
PARAMize and staticize rest of functions.  Delete unused
	functions.  Delete unused/unnecessary arguments to some functions.
	Group static vars together.  Abort for bad errors until we have
	error code propogation working.  Work on spacing and indention.
	Add FIXMEs for unresolved problems.  Use enums rather than
	#defines for lots of things.  Merge two functions which build
	linker stubs into a single function (so they can easily share a
	ton of common code).
1994-02-27 19:20:44 +00:00
Jeff Law
f6061456e0 Forgot to check these changes in yesterday. 1994-02-27 19:18:06 +00:00
Ian Lance Taylor
68241b2b3f * aoutx.h, archive.c: Add casts to avoid warnings from SVR4 cc.
* ecoff.c, ecofflink.c, ecoffswap.h, srec.c: Likewise.
	* elf32-i386.c: Likewise.
	* elfcode.h (bfd_section_from_shdr): Make i unsigned; remove old
	#if 0 code.
	(elf_write_phdrs): Make i unsigned.
	(map_program_segments): Make i and n_left unsigned.
	(assign_file_positions_except_relocs): Make i unsigned.
	(write_shdrs_and_ehdr): Make count unsigned.
	(assign_file_positions_for_relocs): Make i unsigned.
	(NAME(bfd,elf_write_object_contents)): Make count unsigned.
	(section_from_elf_index): Make index argument unsigned.
1994-02-26 18:25:23 +00:00
Ian Lance Taylor
3d51f02f4c * reloc.c (_bfd_relocate_contents): Adjust handling of overflow to
avoid depending upon right shifts of signed numbers, and to
	correct handling of src_mask with lower bits zero.
1994-02-26 18:24:10 +00:00
Ian Lance Taylor
96db31875e Various entries. 1994-02-26 05:38:11 +00:00
Ian Lance Taylor
ecff0ffe9c * linker.c (_bfd_generic_link_write_global_symbol): Add missing
break in switch.
1994-02-26 05:37:41 +00:00
Ian Lance Taylor
850584adbe * elfcode.h: Don't include assert.h.
(swap_out_syms): Use BFD_ASSERT rather than assert.
1994-02-26 05:37:24 +00:00
Ian Lance Taylor
86dbb1303f * hosts/i386v4.h (qsort, strtol): Remove incorrect and useless
declarations.
1994-02-26 05:35:43 +00:00
Jeff Law
f5bfdacd47 * libhppa.h (hppa_rebuild_insn): Moved here from elf32-hppa.c.
* elf32-hppa.h (elf_hppa_tc_symbol): Add new arguments.
        (elf_hppa_tc_make_sections): Likewise.
        (elf_hppa_final_processing): Add extern decl.

        * elf32-hppa.c: First half of major cleanup.  Add/cleanup lots of
        comments.  PARAMize some static functions.  Delete unused functions.
        Delete unused/unnecessary arguments to many functions.  Group
        static vars together.  Collapse common case statements together
        in many places.  Use default case when possible instead of listing
        each case separately.  Abort for bad errors until we get error
        code propogation working.  Work on spacing and indention problems.
        Add FIXMEs for some unresolved problems.  Delete hopelessly broken
        COMPLEX relocation support (it's never used anyway).
        (hppa_elf_rebuild_insn): Delete.  Moved into libhppa.h.
        (elf_hppa_tc_symbol): Accept and use new arguments (symext chains).
        (elf_hppa_tc_make_sections): Likewise.
1994-02-26 04:58:57 +00:00
Jeff Law
43ebdfcf4e * format.c (bfd_check_format_matches): Initialize matching_vector
to keep gcc -Wall quiet.

        * elfcode.h (elf_slurp_reloca_table): Fix typo.
1994-02-26 03:41:36 +00:00
Jeff Law
d643978558 * som.c (som_get_symtab_upper_bound): Use "sizeof (asymbol *)"
not "sizeof (som_symbol_type *)".

        * elfcode.h (elf_get_symtab_upper_bound): Use "sizeof (asymbol *)"
        not "sizeof (asymbol").  Opps.
1994-02-26 00:39:03 +00:00
Ian Lance Taylor
fbb8fe5c6e * bfd.c (bfd_get_gp_size): Can't return gp value on an archive.
(bfd_set_gp_size):  Can't set gp value on an archive.
1994-02-25 21:20:18 +00:00
Steve Chamberlain
5e80812667 * srec.c (pass_over): Don't skip too many characters when
end of line seen.
1994-02-25 21:09:09 +00:00
Ian Lance Taylor
d6074cddec Fix last patch. 1994-02-25 21:05:49 +00:00
Ian Lance Taylor
626f883f94 * ecoff.c (ecoff_sizeof_headers): Align result to 16 byte
boundary.
1994-02-25 19:42:43 +00:00
Peter Schauer
a69b39f0c5 * elfcode.h (elf_core_file_p): Check for core file e_machine match
like in elf_object_p.
1994-02-24 12:37:43 +00:00
Jeff Law
2e7b92cfa9 * elfcode.h (alloca): Delete declaration. 1994-02-24 04:00:30 +00:00
Jeff Law
4f42757e38 * som.c (som_prep_headers): Use CPU_PA_RISC1_0 for magic
number rather than HP9000S800_ID.  Note som.c is careful
        to make sure CPU_PA_RISC1_0 is always defined.
1994-02-24 02:31:01 +00:00
Stan Shebs
30d7f715a9 Wed Feb 23 16:52:51 1994 Stan Shebs (shebs@andros.cygnus.com)
* hosts/mpw.h (fstat): Declare.
	(mpw_fstat): Eliminate mentions.
1994-02-24 00:56:32 +00:00
Ian Lance Taylor
2f0deb19eb * ecofflink.c (ecoff_write_symhdr): Set symhdr->magic here.
* ecoff.c (ecoff_write_object_contents): Make sure .bss section
	ends on a page boundary if there is no symbol table.
	(ecoff_bfd_final_link): Don't set symhdr->magic here.
1994-02-22 04:25:43 +00:00
Ian Lance Taylor
aaca79a831 * hosts/hp300.h: Include <stdlib.h>; don't declare free. 1994-02-22 01:51:38 +00:00
Ian Lance Taylor
2ab0b7f3e3 * som.c (som_bfd_count_ar_symbols): Use a pointer and alloca
rather than an array of variable size.
	(som_bfd_fill_in_ar_symbols): Likewise.
	(som_bfd_ar_write_symbol_stuff): Likewise.
1994-02-22 00:01:34 +00:00
Stu Grossman
fdf08b0fff Oops... Forgot to check this in... 1994-02-21 19:05:44 +00:00
Stan Shebs
891dc727a1 Mon Feb 21 10:12:02 1994 Stan Shebs (shebs@andros.cygnus.com)
* Makefile.in (targets.o, archures.o): Use ALL_CFLAGS to supply
	flags to explicit compile actions.
1994-02-21 18:17:21 +00:00
Ian Lance Taylor
22a71fef07 * coff-alpha.c (alpha_relocate_section): Rewrite mask and shift
operation to avoid OSF 1.3 cc bug.
	* ecoff.c (ecoff_write_object_contents): Make text_size, data_size
	and bss_size bfd_size_type instead of unsigned long.  Make
	text_start and data_start bfd_vma instead of unsigned long.
	* ecofflink.c (ecoff_add_string): Remove incorrect cast of return
	value.
1994-02-21 17:56:38 +00:00
Ian Lance Taylor
037ce95adb * linker.c (_bfd_generic_link_add_archive_symbols): Consider
symbols in the order they appear in the archive map.
1994-02-21 00:18:57 +00:00
Peter Schauer
3a1de3cc03 * coff-alpha.c (reloc_nil): Add forward declaration, add missing
error_message argument.
	* coff-sparc.c (bfd_coff_generic_reloc):  Add forward declaration,
	add missing error_message argument.
	* mipsbsd.c (mips_fix_hi16_s):  Add forward declaration, add missing
	error_message argument.
1994-02-19 11:29:48 +00:00
Ian Lance Taylor
99ec1f66c1 start-sanitize-powerpc-netware
Support for PowerPC NetWare.
	* config.bfd (powerpc-*-netware*): New target; use ppc-nlm.
	* config/ppc-nlm.mt: New file.
	* configure.in (nlm32_powerpc_vec): New target vector; use
	nlm32-powerpc.o, nlm32.o, nlm.o.
	* targets.c (nlm32_powerpc_vec): Declare.
	* Makefile.in (BFD32_BACKENDS): Add nlm32-powerpc.o.
	(CFILES): Should add nlm32-powerpc.c, but didn't, because the
	dependencies can't be sanitized.
	end-sanitize-powerpc-netware

	Initial support for PowerPC ELF.  Done without an ABI, and
	probably to be changed when I get an ABI.
	* config.bfd (powerpc-*-sysv4*): New target; use ppc-elf.
	* config/ppc-elf.mt: New file.
	* configure.in (bfd_elf32_powerpc_vec): New target vector; use
	elf32-powerpc.o, elf32.o, elf.o.
	* elf32-powerpc.c: New file.
	* elfcode.h (prep_headers): Add bfd_arch_powerpc case.
	(elf_set_arch_mach): Likewise.
	* targets.c (bfd_elf32_powerpc_vec): Declare.
	* Makefile.in (BFD32_BACKENDS): Add elf32-powerpc.o.
	(CFILES): Add elf32-powerpc.c.
	Rebuilt dependencies.
1994-02-18 17:09:13 +00:00
Ian Lance Taylor
d03d5626e5 Support for PowerPC ELF and PowerPC NetWare. Sanitization to follow. 1994-02-18 15:37:20 +00:00
Ian Lance Taylor
a243926667 Use bfd_set_error in last patch. 1994-02-17 21:50:39 +00:00
Ian Lance Taylor
42f62ead47 Various entries. 1994-02-17 20:56:49 +00:00
Ian Lance Taylor
7d8aaf368f * elfcode.h (elf_slurp_symbol_table): Handle zero symbols
reasonably.  Allocate x_symp using alloca.

Also fixed up indentation a bit in elf_set_arch_mach.
1994-02-17 20:45:06 +00:00
Ian Lance Taylor
2f3189e737 * elfcode.h (map_program_segments): ELF program header entries
must be sorted by load address.  This used to generate the entries
	in reverse order.
1994-02-17 20:39:58 +00:00
David MacKenzie
d1ad85a6e6 * bfd.c (bfd_get_error, bfd_set_error): New functions.
(bfd_error): Make static.
	(bfd_error_type): Renamed from bfd_ec.  Prepend "bfd_error_" to
	all values.
	* bfd-in2.h: Regenerated.
	* aix386-core.c, aout-adobe.c, aout-encap.c, aout-target.h,
	aoutf1.h, aoutx.h, archive.c, archures.c,
	bfd.c, bout.c, cache.c, coff-alpha.c, coff-mips.c,
	coff-rs6000.c, coffcode.h, coffgen.c, core.c, ctor.c,
	ecoff.c, ecofflink.c, elf.c, elf32-hppa.c, elf32-mips.c,
	elfcode.h, format.c, hash.c, hp300hpux.c, hppabsd-core.c,
	i386lynx.c, ieee.c, libbfd.c, libelf.h, linker.c,
	lynx-core.c, nlm.c, nlm32-alpha.c, nlm32-i386.c,
	nlm32-sparc.c, nlmcode.h, oasys.c, opncls.c, osf-core.c,
	ptrace-core.c, reloc16.c, rs6000-core.c, section.c, som.c,
	srec.c, sunos.c, syms.c, targets.c, tekhex.c,
	trad-core.c: Change callers.
1994-02-17 18:08:41 +00:00
Jeff Law
7430a99137 * som.c: Remove FIXMEs for things which have been dealt with. 1994-02-16 06:28:25 +00:00
Ken Raeburn
54196ea170 i960-bout linker fixes, i960 coff config changes 1994-02-16 01:00:57 +00:00
Ken Raeburn
1e02dc457c Support i960 vxworks versions > 5.0 with coff, not bout. Default with no
version number is still bout.  Support explicit i960-coff target too.
1994-02-16 00:59:39 +00:00
Ken Raeburn
ca16370388 (b_out_get_reloc_upper_bound): For BSS section, just return 0.
(aligncode): When shrinking, the addend should be set to the current offset in
the section plus the number of bytes of padding that will actually be retained.
(b_out_relax_section): If a section contains no relocations, don't bother
processing them.
(b_out_get_relocated_section_contents): Set reloc_done.  Assert that
bfd_get_section_contents returns true.  Check that relocs are properly ordered.
(b_out_get_relocated_section_contents, case ALIGNDONE): Assert that reloc's
addend falls between the current source offset and the raw size of the input
section.

Changed some indentation, deleted trailing whitespace, fixed some comments,
removed some "#if 1" lines.
(output_addr): New macro.
(calljx_callback, callj_callback, get_value, abs32code, aligncode,
b_out_get_relocated_section_contents): Use it for readability.
1994-02-16 00:59:19 +00:00
Ken Raeburn
66d9f06f6d (default_indirect_link_order): In assertion, compare link_order size field
against cooked size, not raw size, of input section.
1994-02-16 00:57:48 +00:00
Ken Raeburn
aaa486c3d0 (bfd_get_section_contents): Since this function reads unrelocated contents, the
section's raw size is always the one to use for bounds checking.
1994-02-16 00:57:15 +00:00
Stan Shebs
848743c1b6 Tue Feb 15 12:44:30 1994 Stan Shebs (shebs@andros.cygnus.com)
* mpw-make.in (CSEARCH): Add include/mpw to search path.
	* hosts/mpw.h (stat): Remove incomplete definition, now in
	include/mpw/sys.
	(POSIX_UTIME): Define.
1994-02-15 20:48:53 +00:00
Jeff Law
c6cdb69ae4 * som.c (som_bfd_prep_for_ar_write): Iterate through the SOM
symbols, not the BFD symbols.
        (som_bfd_ar_write_symbol_stuff): Likewise.
1994-02-15 17:01:39 +00:00
Jeff Law
24a1f6a05f * som.c (som_slurp_symbol_table): Do not die if a BFD doesn't
have any symbols.
1994-02-15 07:48:56 +00:00
Jeff Law
6e033f8639 * Finish basic read-write support for SOM archive libraries. Bugs
surely remain as this hasn't been tested all that much.
	* som.c (SOM_LST_HASH_SIZE, SOM_LST_MODULE_LIMIT): Define.
	(struct som_misc_symbol_info): New structure to hold info necessary
	to build both normal and library symbol tables.
	(som_derive_misc_symbol_info): New function to derive info necessary
	to build both normal and library symbol tables.
	(som_build_and_write_symbol_table): Use new function to derive misc
	symbol information.
	(som_slurp_symbol_table): Update backend private data for symbols
	appropriately.
	(som_bfd_prep_for_ar_write): New function.
	(som_bfd_ar_symbol_hash): New function.
	(som_bfd_ar_write_symbol_stuff): New function.
	(som_write_armap): Flesh out.
	(som_vec): Fix ar padding character.

	* som.c: Consistently use memset rather than bzero.
1994-02-15 07:05:04 +00:00
Stu Grossman
7d8752123a * coff-rs6000.c: Add Lynx core file support, use HOST_AIX, where
appropriate.
	* rs6000-core.c:  Use HOST_AIX instead of COREFILES_PLEASE.
	* config/rs6000.mh:  Remove defs of ARCHIVES_PLEASE and
	COREFILES_PLEASE.
	* config/rs6000lynx.mh:  Turn on Lynx core file support.
	* hosts/rs6000.h:  #define HOST_AIX.
	* hosts/rs6000lynx.h:  Create this to enable Lynx host support.
1994-02-15 01:30:25 +00:00
Stu Grossman
5cf354ef0e * hosts/rs6000lynx.h: Create this to enable Lynx host support. 1994-02-15 01:29:26 +00:00
Stu Grossman
8b8ddedb93 * coff-rs6000.c: Add Lynx core file support, use HOST_AIX, where
appropriate.
	* rs6000-core.c:  Use HOST_AIX instead of COREFILES_PLEASE.
	* config/rs6000.mh:  Remove defs of ARCHIVES_PLEASE and
	COREFILES_PLEASE.
	* config/rs6000lynx.mh:  Turn on Lynx core file support.
	* hosts/rs6000.h:  #define HOST_AIX.
1994-02-15 01:28:16 +00:00
Jeff Law
50c5c4ad12 * som.h (som_symbol_data): Safely access backend private data
for BFD symbols.  All callers changed.
1994-02-14 06:15:00 +00:00
Jeff Law
3c37f9ca0c * som.c (som_bfd_count_ar_symbols): New helper function.
(som_bfd_fill_in_ar_symbols): New helper function.
        (som_slurp_armap): New function to read a SOM LST.
1994-02-13 23:34:52 +00:00
Jeff Law
6863eb4b74 * som.h: Include <lst.h> and <ar.h>. 1994-02-13 22:30:51 +00:00
Jeff Law
5e829a3440 * elfcode.h (elf_map_symbols): Fix typo.
(write_object_contents): Check return values from prep_headers and
        elf_compute_section_file_positions.
        (set_section_contents): Likewise.
1994-02-13 06:36:41 +00:00
David MacKenzie
a15691a56e * archive.c (normalize) [VMS]: Call malloc, not bfd_xmalloc.
(bfd_construct_extended_name_table): Check result of normalize.
1994-02-12 00:59:26 +00:00
David MacKenzie
9783e04a64 Make all callers of malloc or realloc (including via obstacks)
check the result for NULL.  Most set bfd_error to no_memory and
	return in that case; a few are harder to fix, and are marked
	with "FIXME <return type>".

	* elf32-hppa.c (hppa_elf_build_arg_reloc_stub
	hppa_elf_build_long_branch_stub):  Check bfd_make_empty_symbol return.
	* linker.c (_bfd_generic_link_output_symbols
	_bfd_generic_link_write_global_symbol): Ditto
	* section.c (bfd_make_section_anyway): Ditto.

	* tekhex.c (find_chunk tekhex_mkobject): Check bfd_alloc.
	(first_phase): Ditto.  FIXME void
	(tekhex_make_empty_symbol): Check bfd_zalloc.

	* sunos.c (sunos_read_dynamic_info): Check bfd_zalloc.
	(MY(read_dynamic_symbols) MY(read_dynamic_relocs)): Check bfd_alloc.

	* stringhash.c (_bfd_stringtab_hash_newfunc): Check bfd_hash_allocate.

	* srec.c: Indent.
	(fillup_symbols): Check bfd_alloc.  FIXME void
	(srec_mkobject srec_get_section_contents
	srec_set_section_contents): Check bfd_alloc.
	(srec_make_empty_symbol): Check bfd_zalloc.

	* som.c (hppa_som_gen_reloc_type): Check bfd_alloc_by_size_t.
	(make_unique_section): Check bfd_alloc.
	(som_new_section_hook): Check bfd_zalloc.
	(bfd_som_attach_aux_hdr): Ditto.  FIXME void

	* rs6000-core.c (rs6000coff_core_p): Check bfd_zalloc.

	* osf-core.c (osf_core_make_empty_symbol): Check bfd_zalloc.
	(osf_core_core_file_p): Check bfd_alloc.

	* oasys.c (oasys_slurp_symbol_table oasys_archive_p
	oasys_mkobject oasys_object_p oasys_new_section_hook
	oasys_set_section_contents): Check bfd_alloc.
	(oasys_slurp_section_data): Check bfd_zalloc and bfd_alloc.
	(oasys_make_empty_symbol): Check bfd_zalloc.

	* nlmcode.h (nlm_make_empty_symbol): Check bfd_zalloc.
	(nlm_slurp_symbol_table): Check bfd_zalloc and bfd_alloc.

	* nlm32-sparc.c (nlm_sparc_read_import): Check bfd_alloc.

	* nlm32-i386.c (nlm_i386_read_import): Check bfd_alloc.

	* nlm32-alpha.c (nlm_alpha_read_import): Check bfd_alloc.

	* linker.c (_bfd_link_hash_newfunc
	(generic_link_hash_newfunc
	(archive_hash_newfunc
	(_bfd_generic_link_add_one_symbol): Check bfd_hash_allocate.
	(_bfd_generic_final_link
	(_bfd_generic_link_output_symbols
	(default_indirect_link_order): Check bfd_alloc.
	(bfd_new_link_order): Check bfd_alloc_by_size_t.

	* irix-core.c (irix_core_make_empty_symbol): Check bfd_zalloc.

	* ieee.c: Indent.
	(read_id get_symbol get_section_entry ieee_archive_p ieee_object_p
	ieee_slurp_section_data ieee_new_section_hook): Check bfd_alloc.
	(do_one): Check bfd_alloc.  Return a boolean.
	(ieee_slurp_section_data): Check it.
	(init_for_output): Check bfd_alloc.  Return a boolean.
	(ieee_set_section_contents): Check it.
	(do_with_relocs):  Check bfd_alloc.  Return a boolean.
	(ieee_bfd_debug_info_accumulate): Ditto.  FIXME void.
	(ieee_mkobject): Check bfd_zalloc.
	(ieee_make_empty_symbol): Check bfd_zmalloc.

	* hpux-core.c (hpux_core_make_empty_symbol): Check
	bfd_zalloc.

	* hppabsd-core.c (hppabsd_core_make_empty_symbol): Check
	bfd_zalloc.
	(hppabsd_core_core_file_p): Check bfd_zalloc.

	* hp300hpux.c (MY(slurp_symbol_table)): Check bfd_alloc.

	* elfcode.h (elf_new_section_hook): Check bfd_alloc.
	(bfd_section_from_phdr): Ditto.
	(write_relocs): Ditto.  FIXME void
	(elf_map_symbols assign_section_numbers map_program_segments):
	Ditto.  Return a boolean.
	(swap_out_syms): Ditto.  Check elf_map_symbols.
	(elf_slurp_symbol_table): Check bfd_zalloc.
	(elf_slurp_reloca_table): Check bfd_alloc.
	(elf_slurp_reloc_table): Ditto.
	(elf_compute_section_file_positions): Check assign_section_numbers.
	(assign_file_positions_except_relocs): Return a boolean.
	Check map_program_segments.
	(elf_compute_section_file_positions): Check it.

	* elf32-mips.c (mips_elf_final_link): Check bfd_alloc.

	* elf32-hppa.c (hppa_elf_stub_branch_reloc): Check bfd_zmalloc and
	realloc.
	(hppa_elf_stub_reloc): Ditto.
	(hppa_elf_build_arg_reloc_stub): Check bfd_zalloc.
	(hppa_elf_build_long_branch_stub): Ditto.
	(elf32_hppa_backend_symbol_table_processing): Ditto.

	* ecoff.c (ecoff_set_symbol_info): Check bfd_alloc.  Return a boolean.
	(ecoff_slurp_symbol_table): Check it.
	(ecoff_slurp_armap): Check bfd_alloc.
	(ecoff_write_armap): Check bfd_zalloc.
	(ecoff_link_hash_newfunc): Check bfd_hash_allocate and
	_bfd_link_hash_newfunc.
	(ecoff_link_add_externals): Check bfd_alloc.

	* ctor.c (bfd_constructor_entry): Check bfd_alloc.

	* coffgen.c (coff_real_object_p): Check bfd_alloc.
	(coff_renumber_symbols): Check bfd_alloc_by_size_t.  Return a boolean.
	(coff_write_symbol): Check bfd_alloc.  FIXME int
	(coff_write_linenumbers): Check bfd_alloc.  Return a boolean.
	(coff_section_symbol): Check bfd_alloc_by_size_t.
	(coff_get_normalized_symtab): Check bfd_alloc.
	(coff_bfd_make_debug_symbol): Check bfd_zalloc.
	* libcoff-in.h: Change decls of coff_renumber_symbols,
	coff_write_linenumbers.
	* libcoff.h: Rebuilt.
	* coffcode.h (coff_write_object_contents): Check
	coff_renumber_symbols, coff_write_linenumbers.

	* coffcode.h: Indent.
	(coff_add_missing_symbols): Check bfd_alloc_by_size_t.  Return a
	boolean.
	(coff_write_object_contents): Check it.

	* coff-alpha.c (alpha_relocate_section): Check bfd_alloc.
	* coff-mips.c (mips_relocate_section): Ditto.

	* archive.c (bfd_slurp_bsd_armap_f2): Check bfd_alloc value.
	(do_slurp_bsd_armap): Ditto.
	(compute_and_write_armap): Check bfd_realloc value.

	* aoutx.h (translate_from_native_sym_flags): Check bfd_alloc
	return value.  Return boolean value.
	(NAME(aout,make_empty_symbol)): Check bfd_zalloc return value.
	(NAME(aout,slurp_symbol_table)): Check bf_alloc and bfd_zalloc
	return value.
	(add_to_stringtab): Ditto.  FIXME void
	(aout_link_hash_newfunc): Check bfd_hash_allocate return value.
	(aout_link_add_symbols): Check bfd_alloc value.
	(translate_symbol_table): Check translate_from_native_sym_flags.
	* hp300hpux.c (MY(slurp_symbol_table)): Ditto.
	* aoutx.h (aout_link_hash_newfunc): Check _bfd_link_hash_newfunc.

	* opncls.c (bfd_zalloc bfd_realloc): Check result of bfd_alloc.

	* opncls.c (obstack_chunk_alloc): Define as malloc, not
	bfd_xmalloc_by_size_t.
	(_bfd_new_bfd): Check obstack_begin for 0 return.

	* ieee.c (obstack_chunk_alloc): Define as malloc, not
	bfd_xmalloc_by_size_t.
	(ieee_archive_p): Check obstack_begin for 0 return and
	obstack_finish for NULL return.

	* hash.c (obstack_chunk_alloc): Define as malloc, not
	bfd_xmalloc_by_size_t.
	(bfd_hash_table_init_n): Check obstack_begin for 0 return and
	obstack_finish for NULL return.
	(bfd_hash_lookup): Check obstack_alloc for NULL return.

	* ecofflink.c (obstack_chunk_alloc): Define as malloc, not
	bfd_xmalloc_by_size_t.
	bfd_ecoff_debug_accumulate
	bfd_ecoff_debug_accumulate_other): Check obstack_alloc.
	(add_file_shuffle add_memory_shuffle): Check obstack_alloc for
	NULL return.  Return boolean, not void.
	(bfd_ecoff_debug_init): Check obstack_begin for 0 return.
	(bfd_ecoff_debug_accumulate): Check add_file_shuffle
	and add_memory_shuffle return.
	(string_hash_newfunc): Check bfd_hash_allocate and bfd_hash_newfunc.
	(bfd_ecoff_debug_accumulate): Check bfd_alloc.
	(ecoff_add_string): Check add_memory_shuffle return.

	* libbfd-in.h (xmalloc, bfd_xmalloc, bfd_xmalloc_by_size_t):
	Remove decls.
	* libbfd.h: Rebuilt.
1994-02-12 00:45:54 +00:00
Stu Grossman
30e441ca45 * configure.host: Add Lynx/rs6000 support.
* config/i386-nlm.mt:  Enable a.out file support.
	* config/rs6000lynx.mh:  Lynx/rs6000 host support.
1994-02-11 23:39:38 +00:00
Ian Lance Taylor
5ee3886b48 * archive.c (compute_and_write_armap): Rewrite somewhat to improve
memory usage.
1994-02-11 22:30:18 +00:00
Stan Shebs
9a793780e5 Fri Feb 11 13:10:42 1994 Stan Shebs (shebs@andros.cygnus.com)
* archive.c: Change all references to '\n' in archive magic
	to '\012', for greater portability.
	* ecoff.c (ecoff_write_armap): Ditto.
1994-02-11 21:18:16 +00:00
Jeff Law
a62dd44f9c * som.c: Cast return values from BFD memory allocation routines to
avoid warnings from the HP compiler.
1994-02-10 05:36:41 +00:00
Ian Lance Taylor
0d634116b2 * coff-alpha.c (alpha_relocate_section): Accept a LITERAL
reloc on an "ldl" instruction too.
1994-02-09 22:17:49 +00:00
Ian Lance Taylor
945f125b45 * coff-rs6000.c (rs6000coff_mkarchive): Return false.
(rs6000_coff_snarf_ar_hdr): Don't declare errno; it's not used.
	Also removed unused variable namelen.
	(rs6000coff_write_armap): Declare orl_count and stridx parameters.
1994-02-09 17:59:32 +00:00
Ken Raeburn
fa965415f5 * coff-alpha.c (reloc_nil): New function.
(alpha_howto_table): Use it as special_function to prevent certain relocs from
being adjusted by bfd_perform_relocation.  IGNORE reloc should be
partial_inplace.
(alpha_ecoff_get_relocated_section_contents): Accept a LITERAL reloc on an
"ldl" instruction too.
1994-02-08 20:58:20 +00:00
Peter Schauer
7c202d3775 * elf32-hppa.c (CURRENT_STUB_OFFSET, hppa_elf_build_arg_reloc_stub,
hppa_elf_build_long_branch_stub):  Cast to char * instead of int
	before performing pointer arithmetic.
1994-02-08 08:57:46 +00:00
Jeff Law
9ed21f0ebf * config.bfd (hppa*-*-osf*): Use bfd_name hppaosf for this
configuration.
        (hppa*-*-*elf*): This configuration used hppa-elf now.

        * som.c: This file is also used for HOST_HPPAOSF.

        * targets.c (bfd_target_vector): Enable som_vec for HOST_HPPAOSF.

        * hosts/hppaosf.h: New host configuration file.

        * config/hppabsd.mt (SELECT_VECS): Add bfd_elf32_hppa_vec as
        BSD handles both SOM and ELF object files.

        * config/hppaosf.mh (HDEFINES): Delete.  No longer needed.
        (RANLIB): Doesn't do anything, define it to be "echo".

        * config/hppaosf.mt: New target makefile fragment for a PA running
        OSF1.
1994-02-08 05:17:01 +00:00
Jeff Law
6941fd4d64 * som.c: This file is also used for HOST_HPPAOSF.
* targets.c (bfd_target_vector): Enable som_vec for HOST_HPPAOSF.
1994-02-08 05:09:34 +00:00
Jeff Law
1c8c89a8b2 New host configuration file. 1994-02-08 04:58:32 +00:00
Ian Lance Taylor
66f1cff54b * archures.c (enum bfd_architecture): Added bfd_arch_powerpc.
(archures_init_table): If SELECT_ARCHITECTURES is not defined,
	added bfd_powerpc_arch.
	* bfd-in2.h: Rebuilt.
	* cpu-powerpc.c: New file.
	* Makefile.in (ALL_MACHINES, CFILES): Added cpu-powerpc.c.
	Rebuilt dependencies.
1994-02-08 00:38:00 +00:00
Ian Lance Taylor
384c17918b PowerPC CPU support. 1994-02-08 00:35:31 +00:00
Ian Lance Taylor
bf96913525 * elfcode.h (bfd_section_from_shdr): Get vma and alignment_power
of an SHT_STRTAB section from sh_addr and sh_addralign, rather
	than just setting them to zero.
1994-02-07 20:04:46 +00:00
David MacKenzie
b9d5cdf003 * elfcode.h (prep_headers, swap_out_syms): Check for NULL return
from bfd_new_strtab.
	(elf_compute_section_file_positions): Check for false return from
	swap_out_syms.

	* linker.c (default_indirect_link_order): Check for NULL return
	from bfd_get_relocated_section_contents.

	* syms.c: Make example application in doc call xmalloc, not
	bfd_xmalloc.

	* aoutx.h (NAME(aout,slurp_symbol_table),
	aout_link_get_symbols, NAME(aout,link_hash_table_create)):
	* bout.c (b_out_slurp_reloc_table, b_out_squirt_out_relocs):
	* ecoff.c (ecoff_bfd_link_hash_table_create):
	* ecofflink.c (bfd_ecoff_debug_init):
	* format.c (bfd_check_format_matches):
	* linker.c (_bfd_generic_link_hash_table_create):
	(_bfd_generic_final_link):
	* reloc16.c (bfd_coff_reloc16_relax_section):
	(bfd_coff_reloc16_get_relocated_section_contents):
	* elf32-hppa.c (hppa_elf_build_arg_reloc_stub):
	* elf32-mips.c (mips_elf_final_link):
	* elfcode.h (bfd_new_strtab):
	(bfd_add_2_to_strtab):
	(elf_slurp_symbol_table):
	(elf_corefile_note):
	* libbfd.c (bfd_zmalloc):
	Use malloc and check the result, instead of bfd_xmalloc.
1994-02-07 05:17:21 +00:00
Jim Kingdon
6b054519ff * config.bfd: Put m68*-*-sysv* line after m68*-*-sysv4*. 1994-02-05 20:41:44 +00:00
Peter Schauer
bf430317a5 * srec.c (srec_write_record): Put CONST keyword for "src" before
"unsigned", some compilers don't like it after "unsigned".
	* libcoff.h, libcoff-in.h (bfd_perform_slip):  Rename "value" to
	"val" in prototype declaration because some compilers don't like
	arguments whose names are the same as types.
1994-02-05 13:38:52 +00:00
Ian Lance Taylor
9b39ed6bfa * aoutx.h (aout_link_check_ar_symbols): Correct test for whether
object file defines symbol.  Also, if skipping a symbol, skip the
	second symbol of a N_WARNING or N_INDR symbol as well.
1994-02-05 06:17:36 +00:00
Ian Lance Taylor
d352be4f43 * reloc.c (bfd_perform_relocation): Work around one gross hack
with another: actually look at the target name to avoid the broken
	COFF check.
	(bfd_reloc_code_real_type): Add BFD_RELOC_PPC_B26,
	BFD_RELOC_PPC_BA26 and BFD_RELOC_PPC_TOC16.
	* bfd-in2.h: Rebuilt.
1994-02-05 05:13:59 +00:00
Ian Lance Taylor
c8d672fe7a * coffcode.h (combined_entry_type): Changed fix_tag and fix_end
fields to bitfields.  Added fields fix_value and fix_scnlen.
	(sec_to_styp_flags): If STYP_DEBUG is defined, use it rather than
	STYP_INFO for the type of a section named .debug.
	(coff_add_missing_symbols): Don't define if RS6000COFF_C.
	(coff_write_object_contents): If RS6000COFF_C, don't call
	coff_add_missing_symbols.
	(coff_slurp_symbol_table): If RS6000COFF_C, then if the last aux
	entry has type STY_LD change the x_scnlen into a pointer to a
	symbol and set fix_scnlen.  Also, for a C_BSTAT symbol, change the
	value into a pointer to a symbol and set fix_value.
	* libcoff.h: Rebuilt.
	* coffgen.c (coff_mangle_symbols): Reindent.  If fix_value is set,
	get the symbol offset. Likewise for fix_scnlen.
	(string_size): Change type to bfd_size_type.
	(debug_string_size, debug_string_section): New static variables.
	(coff_fix_symbol_name): If bfd_coff_symname_in_debug returns true,
	write the symbol name into the .debug section; assume that the
	section has already been created with the right size.
	(coff_write_symbols): Initialize debug_string_size to 0.  If
	bfd_coff_symname_in_debug returns true, don't put symbol name in
	usual string table.  After writing out all symbols, if
	debug_string_size is not 0, check that it matches the size of the
	.debug section.
	(coff_get_normalized_symtab): Clear new fix_value and fix_scnlen
	fields.  If the string offset is 0, always use an empty string as
	the name.
	(coff_make_empty_symbol): Zero out the symbol structure.
1994-02-05 05:11:46 +00:00
David MacKenzie
6a5439a91f Eliminate arg from bfd_xmalloc_by_size_t macro, allowing
undoing of obstack parts of last change.
1994-02-05 03:02:32 +00:00
David MacKenzie
0ee3427297 * libbfd.c (bfd_zmalloc): Call bfd_xmalloc instead of malloc.
(bfd_xmalloc, bfd_xmalloc_by_size_t): Functions deleted.
	* libbfd-in.h: Define them as macros calling xmalloc and declare
	xmalloc.
	* libbfd.h: Rebuilt.
	* ecofflink.c hash.c ieee.c opncls.c (obstack_chunk_alloc): Define
	to be xmalloc, not bfd_xmalloc_by_size_t.
1994-02-05 02:46:12 +00:00
Ian Lance Taylor
cbc174e7ab * ecofflink.c (bfd_ecoff_debug_externals): If a small undefined
symbol has a value in the ECOFF symbol but not in the BFD symbol,
	keep the value in the ECOFF symbol.  This helps gas.
1994-02-04 04:18:28 +00:00
Ian Lance Taylor
5072b8e530 * linker.c (_bfd_generic_link_output_symbols,
_bfd_generic_link_write_global_symbol): Don't require that all
	references to a common symbol be themselves common symbols.
1994-02-03 23:01:49 +00:00
Ian Lance Taylor
fa2302b8ed * aoutx.h (aout_reloc_index_to_section): Handle N_UNDF. 1994-02-03 21:52:06 +00:00
Jim Kingdon
0324156c66 * bfd-in2.h: Rebuilt. 1994-02-03 04:03:11 +00:00
Jim Kingdon
78c3dc5cee * bfd-in2.h: Rebuilt. 1994-02-03 03:33:20 +00:00
Jim Kingdon
96ad107bcc * libbfd.c, bfd-in.h, hosts/alphaosf.h, hosts/sparc-ll.h, aoutf1.h,
sparclynx.c, Makefile.in: Change HOST_64_BIT to BFD_HOST_64_BIT.
1994-02-03 03:31:22 +00:00
Ian Lance Taylor
38e1f0cecd * coffswap.h (coff_swap_reloc_out): If RS6000COFF_C, handle type
and size correctly.
	(coff_swap_aux_in): If RS6000COFF_C, change x_csect.x_scnlen to
	x_csect.x_scnlen.l to match change in coff/internal.h.
	(coff_swap_aux_out): Likewise.
1994-02-02 19:35:14 +00:00
Ian Lance Taylor
ebf3b4cd68 * coff-mips.c (mips_ecoff_backend_data), coff-alpha.c
(alpha_ecoff_backend_data): Change casts of aux_in and aux_out
	fields to match yesterday's changes.
1994-02-02 17:40:46 +00:00
Ian Lance Taylor
192d8ee84b * coffcode.h (coff_write_relocs): If SELECT_RELOC is defined, pass
in the internal_reloc itself, not the type.
	* coff-apollo.c, coff-h8300.c, coff-h8500.c, coff-i386.c,
	coff-m68k.c, coff-sh.c, coff-we32k.c, coff-z8k.c: Changed
	definition of SELECT_RELOC accordingly.
1994-02-02 17:36:17 +00:00
Ian Lance Taylor
330595d00b * coffcode.h (bfd_coff_backend_data): Added new arguments to
_bfd_coff_swap_aux_in and _bfd_coff_swap_aux_out: aux index number
	and number of aux entries.
	(bfd_coff_swap_aux_in, bfd_coff_swap_aux_out): Changed
	accordingly.
	* libcoff.h: Rebuilt.
	* coffswap.h (coff_swap_aux_in, coff_swap_aux_out): Accept new
	arguments.  If RS6000COFF_C, only treat C_EXT and C_HIDEXT
	specially if this is the last aux entry.
	* coffgen.c (coff_write_symbol, coff_get_normalized_symtab): Pass
	new arguments to swap_aux functions.
1994-02-01 17:11:56 +00:00
Ken Raeburn
26b572e4d9 Makefile.in (check, installcheck): Identify directory in "no testsuites"
message.
1994-01-31 04:20:00 +00:00
Ken Raeburn
4e8108491b * gen-aout.c (main): Set DEFAULT_ARCH based on preprocessor macros
(only testing for m68k and vax at the moment); do verify that the
	preprocessor didn't trash the arch name inside the string version.
	Don't print out "pagesize =" line that prevents output from
	compiling.  Derive BYTES_IN_WORD and ARCH values from sizeof
	results.
	* Makefile.in (aout-params.h): Pass gen-aout a dummy target name.
1994-01-30 20:30:53 +00:00
Ian Lance Taylor
2edc8357de * aoutx.h (aout_link_write_symbols): Write out correct value for
object file symbol.
1994-01-30 18:29:26 +00:00
Ken Raeburn
098630a0e0 * hosts/vaxbsd.h (HOST_STACK_END_ADDR): Vax BSD doesn't define
KERNBASE, so hard-code 0x80000000 instead.
1994-01-28 23:42:25 +00:00
Ian Lance Taylor
c315696657 * linker.c (generic_link_add_symbol_list): If symbol is common,
set the BSF_OLD_COMMON flag.
1994-01-27 18:56:42 +00:00
David MacKenzie
d6d4e4c3d0 * format.c (bfd_check_format_matches): Put the new entry in the
correct element of matching_vector.
1994-01-26 21:53:55 +00:00
Ian Lance Taylor
8638431e66 * reloc.c (bfd_get_reloc_size): Size of type -2 is 4 bytes, not 2. 1994-01-25 20:48:48 +00:00
Ian Lance Taylor
3b490cdddb * hp300hpux.c (MY(write_object_contents)): Write out the symbols
before writing out the relocs, so that the right symbol indices
	are used.
1994-01-25 18:38:20 +00:00
Ian Lance Taylor
71d58b5976 * archive.c (do_slurp_bsd_armap, bfd_slurp_bsd_armap_f2): Do not
try to overlay the internal carsyms on the external symdefs.  That
	can not work if the size of a host pointer is larger than 4 bytes.
1994-01-25 18:20:50 +00:00
Ian Lance Taylor
751446f635 * format.c (bfd_check_format_matches): Cast result of
bfd_xmalloc_by_size_t.
	* opncls.c (_bfd_new_bfd): Avoid ANSI C prototype.
1994-01-25 18:14:25 +00:00
Jim Kingdon
09f7054951 * som.c, som.h (bfd_som_set_section_attributes,
bfd_som_set_subsection_attributes): Change parameters from char
	to int.  Following a prototype with an old-style function definition
	in the presence of widened parameters is a GCC-ism not supported
	by the HP compiler in ANSI mode.
1994-01-25 16:56:24 +00:00
Ian Lance Taylor
13944a3e4c A few more minor formatting cleanups. 1994-01-25 16:53:48 +00:00
Ian Lance Taylor
a927c32d18 * archive.c: Reindented to GNU standards. 1994-01-25 16:47:50 +00:00
David MacKenzie
f4bd7a8f0e * opncls.c (_bfd_new_bfd, _bfd_new_bfd_contained_in): Add
"_bfd_" to function names.
	* archive.c (_bfd_create_empty_archive_element_shell),
	libbfd-in.h: Change callers.

	* libbfd.c (bfd_zmalloc): Renamed from zalloc.
	* libbfd.c (bfd_add_to_string_table),
	trad-core.c (trad_unix_core_file_p),
	targets.c (bfd_target_list),
	ptrace-core.c (ptrace_unix_core_file_p),
	opncls.c (new_bfd), libbfd-in.h,
	ieee.c (ieee_make_empty_symbol),
	elf32-hppa.c (hppa_elf_stub_branch_reloc),
	(hppa_elf_stub_reloc): Change callers.
	* libbfd.h: Regenerated.

	* archive.c (_bfd_look_for_bfd_in_cache): Add "_bfd_" to name.
	(_bfd_get_elt_at_filepos),
	coff-rs6000.c (rs6000coff_get_elt_at_filepos), libbfd-in.h:
	Change callers.

	* format.c (bfd_check_format_matches), libbfd-in.h, targets.c,
	elfcode.h (elf_object_p): Rename target_vector to bfd_target_vector
	and default_vector to bfd_default_vector.
	* libbfd.h: Regenerated.
1994-01-25 13:25:26 +00:00
Ian Lance Taylor
3f048f7ff9 * coff-alpha.c (alpha_ecoff_object_p): New function. Set size of
.pdata section based on lnnoptr field, not section header.
	(alpha_relocate_section): Don't bother to check if r_symndx >= 0,
	since it is unsigned.
	(ecoffalpha_little_vec): Use alpha_ecoff_object_p rather than
	coff_object_p.
	* ecoff.c (ecoff_new_section_hook): Set alignment_power field of
	.pdata section to 3.
	(ecoff_compute_section_file_positions): Save the size of the
	.pdata section in the line_filepos field, and actually align the
	.pdata section to an alignment power of 4.
	(ecoff_compute_reloc_file_positions): Set output_has_begun after
	calling ecoff_compute_section_file_positions.
	(ecoff_write_object_contents): Set s_lnnoptr for the .pdata
	section from the line_filepos field.  Set vstamp for the optional
	header from the vstamp of the symbolic header.
	(ecoff_bfd_final_link): Set vstamp of the symbolic header to the
	vstamp used by the first object file in the link.
1994-01-25 01:52:48 +00:00
Ian Lance Taylor
1fe2801ae6 * ecofflink.c (ecoff_align_debug): Align RFDs to debug_align. 1994-01-25 01:50:46 +00:00
Ian Lance Taylor
a20bdb43f0 * linker.c (generic_link_check_achive_element): Set SEC_ALLOC flag
for a created common section.
	(_bfd_generic_link_add_one_symbol): Likewise.
1994-01-24 23:56:56 +00:00
Ian Lance Taylor
d4fb8fced1 * elfcode.h (swap_out_syms): Use elf_section_from_bfd_section to
get the index of a common section, rather than always using
	SHN_COMMON (MIPS has multiple common sections).
1994-01-24 23:54:51 +00:00
David MacKenzie
aabda2da07 * format.c (bfd_check_format_matches): New function.
(bfd_check_format): Call it.
	(bfd_matching_formats): Function removed.
	* targets.c: Replace the vector added on Jan 21 with a count of
	entries in default_vector.
	* bfd-in2.h: Regenerated.
1994-01-24 23:33:23 +00:00
Ian Lance Taylor
7a60ed8cb9 * elf32-hppa.c (hppa_elf_gen_reloc_type): Typo (== for =). 1994-01-24 20:26:49 +00:00
Ian Lance Taylor
4991ebb987 * bfd/aoutx.h (aout_link_input_section_std,
aout_link_input_section_ext): Pass additional arguments to
	reloc_overflow callback.
	* coff-alpha.c (alpha_ecoff_get_relocated_section_contents,
	alpha_relocat_section): Likewise.
	* coff-h8300.c (h8300_reloc16_extra_cases): Likewise.
	* coff-h8500.c (extra_case): Likewise.
	* coff-mips.c (mips_relocate_section): Likewise.
	* coff-z8k.c (extra_case): Likewise.
	* elf32-hppa.c (hppa_elf_stub_finish): Likewise.
	* reloc.c (bfd_generic_get_relocated_section_contents): Likewise.
1994-01-24 20:23:18 +00:00
Ian Lance Taylor
1cedfe034e * bout.c (calljx_callback, callj_callback): Use get_value to get
the symbol value and check for undefined symbols.
	(get_value): If the symbol is undefined, look it up in the linker
	hash table.
	(b_out_get_relocated_section_contents): For PCREL24 and PCREL13
	use get_value to get the symbol value and check for undefined
	symbols.
	* reloc16.c (bfd_coff_reloc16_get_value): If the symbol is
	undefined, look it up in the linker hash table.
1994-01-24 18:05:08 +00:00
Ian Lance Taylor
ca1c6bec73 * aoutx.h (translate_symbol_table): The string index 0 has a
special meaning for normal symbols, but not for dynamic symbols.
1994-01-24 17:41:21 +00:00
Stan Shebs
a4738d5ed2 Sat Jan 22 13:41:25 1994 Stan Shebs (shebs@andros.cygnus.com)
* mpw-xconfig.in: Added forward-includes for all the files,
	and changed to use absolute pathnames.
1994-01-22 22:06:27 +00:00
Stan Shebs
645be48080 Sat Jan 22 13:30:57 1994 Stan Shebs (shebs@andros.cygnus.com)
* mpw-config.in: Create sysdep.h using forward-include.
	Remove unneeded synthesis of varargs.h.
	* mpw-make.in (CC, CFLAGS): Remove, now in config/mpw-mh-mpw.
	(CSEARCH): Added path to extra-include.
1994-01-22 22:05:42 +00:00
Stu Grossman
3f2255e7f8 * sparclynx.c: Setup appropriate macros to enable core file
support.
1994-01-22 20:27:55 +00:00
David MacKenzie
3b31740cb2 * targets.c: Add a vector of matching format names.
* format.c (bfd_matching_formats): New function to return it.
	(bfd_check_format): Set it.
	* bfd-in2.h: Regenerated.
1994-01-22 04:28:17 +00:00
David MacKenzie
0f8f509c6a * bfd-in.h: Remove decls of bfd_ec type and error printing functions.
Remove decl of type symclass; wasn't used.
	* bfd.c: Document error handling, including code fragments
	containing the error decls that were in bfd-in.h.
	Remove DEFUNs.
	* bfd-in2.h: Regenerated.
1994-01-22 02:18:02 +00:00
Jim Kingdon
27814aa64e Fix accidental deletion of attribution for kingdon change. 1994-01-21 23:59:26 +00:00
David MacKenzie
3f40d101e6 Restore Jim's last change entry header. 1994-01-21 23:56:44 +00:00
David MacKenzie
74788cf036 * bfd.c: Remove error strings for errors removed below. 1994-01-21 23:48:55 +00:00
Jim Kingdon
4733517b4a Add ChangeLog entry for sef change. 1994-01-21 22:52:45 +00:00
Sean Eric Fagan
df561b1494 The sparc (and possibly other?) NLM format requires a different way to
write exports, so add a write_export field to the backend data (and set it
to NULL for everything but the sparc).
1994-01-21 19:52:10 +00:00
Jim Kingdon
e7cc9a2e9e * sunos.c (MY(read_dynamic_relocs)): Compare info->dynrel with NULL,
not (struct external_nlist *) NULL.  info->dynrel is a PTR, not
	a struct external_nlist *.
1994-01-21 19:14:33 +00:00
David MacKenzie
6de495621b * aoutx.h (translate_to_native_sym_flags), bfd-in.h (bfd_ec),
oasys.c (oasys_write_sections): Rename
	bfd_error_nonrepresentable_section to nonrepresentable_section.
	None of the other bfd error names start with "bfd_error".
	Remove errors symbol_not_found and no_relocation_info, which seem
	to be unused.
	* bfd-in2.h: Regenerated.
1994-01-21 17:50:37 +00:00
Ian Lance Taylor
fcc41f68c4 * bfd.c (bfd_get_gp_size): Added support for ELF. 1994-01-21 06:30:40 +00:00
Ian Lance Taylor
0ee75d02e5 * syms.c (BSF_DYNAMIC): New symbol flag.
(bfd_print_symbol_vandf): Print it.
	* bfd-in2.h: Rebuilt.
	* libaout.h (struct aout_backend_data): New read_dynamic_symbols
	and read_dynamic_relocs fields.
	(struct aoutdata): New dynamic_info field.
	(obj_aout_dynamic_info): New accessor macro.
	* sunos.c (struct sunos_dynamic_info): New structure.
	(sunos_read_dynamic_info, MY(read_dynamic_symbols),
	MY(read_dynamic_relocs)): New functions to read dynamic symbols
	and relocs.
	* aoutx.h (NAME(aout,some_aout_object_p)): If the object is
	dynamically linked, set SEC_RELOC for both the .text and .data
	sections.
	(translate_from_native_sym_flags): Don't set BSF_LOCAL for an
	undefined symbol.
	(translate_symbol_table): New function, split out of
	slurp_symbol_table; set the BSF_DYNAMIC flag appropriately.
	(NAME(aout,slurp_symbol_table)): Read dynamic symbols, if any.
	(NAME(aout,slurp_reloc_table)): Read dynamic relocs, if any.
	(NAME(aout,get_reloc_upper_bound)): Include dynamic reloc count in
	return value.
	* aoutf1.h (NAME(aout,sunos4_write_object_contents)): Don't write
	out dynamic symbols or relocs against reloc symbols, since they
	are already in the .text section and we wouldn't know where to
	write them anyhow.
	(sunos4_aout_backend): Initialize read_dynamic_symbols and
	read_dynamic_relocs fields.
	* aout-target.h (MY(backend_data)): Initialize
	read_dynamic_symbols and read_dynamic_relocs fields.
1994-01-21 06:29:21 +00:00
Ken Raeburn
dc3da58f2c * hosts/alphaosf.h (uint64e_type, uint64_type, int64_type): Delete typedefs,
since HOST_64_BIT will take care of defining them in bfd.h.
1994-01-21 02:00:05 +00:00
Ken Raeburn
7e7fb4a834 updated with alpha changes 1994-01-20 00:07:58 +00:00
Ken Raeburn
693f8191ed (alpha_howto_table): Construct 64-bit negative one values in case of
compilation on a 32-bit machine.  Fix pcrel fields of some reloc types.
(alpha_bfd_reloc_type_lookup): Handle more relocation types.
1994-01-19 23:52:47 +00:00
Ken Raeburn
563eb766b1 (enum bfd_reloc_code_real): Add some Alpha relocation types. Reorganized some
of the existing ones.
1994-01-19 23:51:41 +00:00
Ken Raeburn
5802eb8f93 (sprintf_vma, fprintf_vma): New macros.
(uint64_typeHIGH, uint64_typeLOW): Comment with HOST_64_BIT so they get copied
to bfd.h.
1994-01-19 22:35:48 +00:00
Ken Raeburn
d110544cd0 (uint64_typeHIGH, uint64_typeLOW): Supply default definitions when not defined,
regardless of whether uint64_type is a defined macro or not.

(fprintf_vma, sprintf_vma): Define only if fprintf_vma is not already defined.
1994-01-19 22:32:32 +00:00
Ian Lance Taylor
d7e34f67be * aoutx.h (translate_to_native_sym_flags): Set the type of a
BSF_WARNING symbol to N_WARNING.
1994-01-19 05:05:27 +00:00
Ian Lance Taylor
3a5b50f457 Resolve warning symbols like indirect symbols. 1994-01-19 04:48:37 +00:00
Ian Lance Taylor
53155af199 * aoutx.h (aout_link_add_symbols): Increment sym_hash as well as p
for an indirect or warning symbol.
	(aout_link_write_symbols): Update sym_hash with the target of an
	indirect symbol.  If an indirect symbol is defined, output the
	calculated value and don't output the target symbol.
1994-01-18 21:46:46 +00:00
Ian Lance Taylor
d4366f97ef Comment fix. 1994-01-18 20:51:15 +00:00
David MacKenzie
0c205af2c5 * aoutx.h (translate_from_native_sym_flags): Give warning symbols
an (unused) nonzero section value, needed for check below.
1994-01-18 12:05:32 +00:00
David MacKenzie
964affdcf8 * aoutx.h (translate_from_native_sym_flags,
aout_link_add_symbols): Treat N_SET[ABDT] | N_EXT like
	N_SET[ABDT].
1994-01-17 23:21:07 +00:00
Ian Lance Taylor
38a5f510bc * elfcode.h (elf_object_p): If there is a SHT_DYNAMIC section, set
the DYNAMIC flag for the BFD.
	(NAME(bfd_elf,write_object_contents)): Don't try to write out a
	BFD with the DYNAMIC flag set, since we don't generate the program
	header table correctly.
1994-01-14 22:35:41 +00:00
Ian Lance Taylor
75919b3b2f * ecoff.c (ecoff_link_write_external): An ifd can be -1. 1994-01-14 04:10:44 +00:00
Jeff Law
9558d13f84 * som.c (som_set_reloc_info): Provide a default symbol for
relocations which don't actually have an associated symbol.
1994-01-13 22:53:03 +00:00
Jeff Law
3996115456 * som.c (hppa_som_reloc): Add new "error message" argument. 1994-01-13 20:34:25 +00:00
Peter Schauer
3247659731 Enable gdb to write to core files on more core file readers.
* libbfd.c (bfd_generic_set_section_contents):  Remove range check
	for section size, it is already done in bfd_set_section_contents
	with bfd_get_section_size_now.
	* aix386-core.c, hppabsd-core.c, hpux-core.c, irix-core.c,
	osf-core.c, ptrace-core.c, trad-core.c (*_set_section_contents):
	Use bfd_generic_set_section_contents instead of bfd_false.
1994-01-12 21:40:42 +00:00
Ian Lance Taylor
92f345b9e4 * linker.c (default_indirect_link_order): Don't expect space for
output relocations if there aren't any input relocations.
1994-01-12 20:33:30 +00:00
Ian Lance Taylor
c5481a5e52 * aoutx.h (NAME(aout,final_link)): Set a_entry before computing
file offsets.
1994-01-11 20:58:30 +00:00
Ian Lance Taylor
fed872d325 * elfcode.h (swap_out_syms): A common symbol is STT_OBJECT, not
STT_NOTYPE.
1994-01-11 19:39:28 +00:00
Ian Lance Taylor
cf286547ef * ecofflink.c: Extensive changes to compress and merge debugging
information, and to write some of out directly rather than saving
	it in memory.  Several new functions and structures, and new
	arguments to existing functions.
	* ecoff.c (ecoff_compute_reloc_file_positions): Compute
	sym_filepos as well.
	(ecoff_get_extr): Use ifdmap instead of ifdbase.
	(ecoff_write_object_contents): Don't compute sym_filepos here.
	Only output symbols if outsymbols is not NULL.
	(ecoff_bfd_final_link): Adjust for changes in ecoff_debug_info and
	bfd_ecoff_debug functions.  Write out debugging information here.
	(ecoff_final_link_debug_accumulate): Adjust for changes in
	bfd_ecoff_debug functions.
	(ecoff_link_write_external): Use ifdmap rather than ifdbase.
	* elf32-mips.c (mips_elf_read_ecoff_info): Read external symbols
	first, to put them in the first memory buffer.  Clear fdr field.
	(mips_elf_get_extr): Use pointer to unswapped external symbol.
	(mips_elf_final_link): Adjust for changes in bfd_ecoff functions.
	Preserve .text, .data and .bss even if they are empty.  Save
	pointer to unswapped external symbol rather than copying it.
	Don't free up the external symbols.
	* libelf.h (elf_symbol_type): Change mips_extr to PTR.
	* bfd-in.h (bfd_ecoff_debug_init, bfd_ecoff_debug_free): Declare.
	(bfd_ecoff_debug_accumulate): Update declaration.
	(bfd_ecoff_debug_accumulate_other): Rename declaration from
	bfd_ecoff_debug_link_other and update.
	(bfd_ecoff_write_accumulated_debug): Declare.
	* bfd-in2.h: Rebuilt.
	* Makefile.in: Rebuilt dependencies.
1994-01-11 16:23:41 +00:00
Jim Kingdon
b36b8a6e94 * config.bfd: Use ELF, not COFF for m88*-*-dgux*.
Combine m88k-*-* and m88110-*-* cases into m88*-*-*.
1994-01-11 14:13:55 +00:00
Jim Kingdon
2c96ba79c4 * Makefile.in (install): Remove "@" which follows a backslash. In
this position it just causes errors, not suppresses echoes.
1994-01-11 01:54:37 +00:00
Stan Shebs
e4c7516baa Set lose_these_too correctly 1994-01-11 01:15:02 +00:00
Jeff Law
2304e1e878 * som.c (hppa_som_gen_reloc_type): Fix handling of LT and RT
field selectors.
1994-01-10 17:07:52 +00:00
Ken Raeburn
fb4cf140d6 * config/i386-netbsd.mt (SELECT_VECS): Include i386bsd_vec, for compatibility
with 386bsd and netbsd0.8.
1994-01-09 20:30:00 +00:00
David MacKenzie
5330499f72 * aoutx.h (adjust_z_magic): Don't merge the start of bss with the
end of data if they are not contiguous.
1994-01-07 21:33:00 +00:00
David MacKenzie
d44b2ddb59 * aoutf1.h (sunos4_aout_backend): Comment the fields' meanings. 1994-01-07 20:50:57 +00:00
Ian Lance Taylor
a5a835ffd8 * ecoff.c (ecoff_mkobject_hook): Don't set SEC_SHARED_LIBRARY flag
for .reginfo section here.
	(ecoff_new_section_hook): Set it here instead.
1994-01-07 20:43:55 +00:00
Stan Shebs
fbe3316aba Fri Jan 7 10:34:47 1994 Stan Shebs (shebs@andros.cygnus.com)
* mpw-make.in: Replace 8-bit chars with their names.
	* coffswap.h (coff_swap_scnhdr_out): Add alternative version with
	partly-expanded macros.
1994-01-07 19:05:23 +00:00
Stan Shebs
442da99575 Fri Jan 7 10:29:27 1994 Stan Shebs (shebs@andros.cygnus.com)
* bfd-in.h: (bfd_boolean): Add workaround for systems that also
	define true and false as enums.
	(ALMOST_STDC): Add as alternative to __STDC__.
	* bfd-in2.h: Rebuilt.
	* syms.c (bfd_print_symbol_vandf): Convert a PTR to FILE*.
1994-01-07 19:03:10 +00:00
Ian Lance Taylor
90d58284c1 Various entries. 1994-01-07 01:24:33 +00:00
Ian Lance Taylor
fe83b22bf0 Really remove files that are no longer used. 1994-01-07 01:24:07 +00:00
Ian Lance Taylor
130308bf6d * targets.c (target_vector): Added nlm32_alpha_vec inside #ifdef
BFD64.
	* Makefile.in (BFD32_BACKENDS): Remove nlm32-alpha.o.
	(BFD64_BACKENDS): Add nlm32-alpha.o.  It depends on 64 bit
	support, even though it is for an Alpha in 32 bit mode.
	* configure.in (nlm32_alpha_vec): Set target64 to true.

	* nlm32-gen.c, nlm64-gen.c: Removed.  All nlm targets are
	different, so there is no point to providing a generic one.
	* libnlm.h: Don't bother to check for nlm_backend(bfd) being NULL
	in the backend accessor macros; that should no longer be possible.
	* targets.c (target_vector): Removed nlm32_big_generic_vec,
	nlm64_big_generic_vec, nlm64_little_generic_vec.
	* configure.in (nlm32_big_generic_vec, nlm32_little_generic_vec,
	nlm64_big_generic_vec, nlm64_little_generic_vec): Removed.
	* Makefile.in: Rebuilt dependencies, and
	(BFD32_BACKENDS): Removed nlm32-gen.o.
	(BFD64_BACKENDS): Removed nlm64-gen.o.
	(CFILES): Removed nlm32-gen.c and nlm64-gen.c.
1994-01-07 01:21:37 +00:00
David MacKenzie
6f56c941ee * aoutx.h (translate_to_native_sym_flags): Catch the case where
there is no output section.
1994-01-06 22:26:18 +00:00
Ian Lance Taylor
559d5074f7 * hp300hpux.c (ARCH_SIZE): Define before including aoutx.h. 1994-01-06 22:18:59 +00:00
Ian Lance Taylor
2f84ec0d97 Various entries. 1994-01-06 20:05:44 +00:00
Ian Lance Taylor
966e0a16b8 * ecoff.c: First cut at new style of linker backend for
ECOFF--added a bunch of functions.  Also:
	(ecoff_sec_to_styp_flags): Set flags for .pdata and .xdata.
	(ecoff_slurp_symbolic_header): New function.
	(ecoff_slurp_symbolic_info): Call ecoff_slurp_symbolic_header.
	(ecoff_compute_reloc_file_positions): New function.
	(ecoff_set_section_contents): Get out quickly if count is zero.
	Check errors better.
	(ecoff_write_object_contents): Put .xdata section in data segment.
	Call ecoff_compute_reloc_file_positions.  Don't output relocs or
	external symbols if outsymbols is NULL.
	(ecoff_bfd_final_link): Completely rewritten.
	* libecoff.h: Include bfdlink.h.
	(struct ecoff_backend_data): Add relocate_section field.
	(ecoff_data_type): Add sym_hashes and symndx_to_section fields.
	(struct ecoff_link_hash_entry): Define.
	(struct ecoff_link_hash_table): Define.
	(ecoff_bfd_link_add_symbols): Declare as function, not macro.
	(ecoff_bfd_link_hash_table_create): Likewise.
	* ecofflink.c (bfd_ecoff_debug_one_external): New function.
	(bfd_ecoff_debug_externals): Call bfd_ecoff_debug_one_external.
	* bfd-in.h (bfd_ecoff_debug_one_external): Declare.
	* bfd-in2.h: Rebuilt.
	* coff-alpha.c (alpha_howto_table): Mark BRADDR as
	partial_inplace, and set the src_mask to 0x1fffff.
	(alpha_ecoff_get_relocated_section_contents): Remove unused
	variable gp_warned.
	(alpha_convert_external_reloc): New static function.
	(alpha_relocate_section): New static function.
	(alpha_ecoff_backend_data): Initialize relocate_section field.
	* coff-mips.c (mips_relocate_refhi): New static function.
	(mips_relocate_section): New static function.
	(mips_ecoff_backend_data): Initialize relocate_section field.
1994-01-06 20:04:43 +00:00
Ian Lance Taylor
e68de5d56a * aoutx.h (NAME(aout,final_link)): Don't abort when trying to link
a non a.out file, just pass it to _bfd_default_link_order.
	(aout_link_input_section_std): When doing a final PC relative link
	against a section symbol, subtract the VMA of the input section.
	(aout_link_input_section_ext): Likewise.
1994-01-06 20:02:49 +00:00
Ian Lance Taylor
6e07e54f1b * linker.c (_bfd_generic_link_add_one_symbol): Add constructor and
bitsize arguments.  Changed all callers (aoutx.h).
	(default_indirect_link_order): Renamed from
	_bfd_generic_indirect_link_order and made static.
	(_bfd_generic_final_link): Don't switch on link_order type, just
	call _bfd_default_link_order.
	(_bfd_default_link_order): Handle bfd_indirect_link_order type.
	* genlink.h: Removed declaration of
	_bfd_generic_indirect_link_order.
	* elf32-mips.c (mips_elf_final_link): Don't switch on link_order
	type, just call _bfd_default_link_order.
1994-01-06 20:01:42 +00:00
David D. Zuhn
0b0dbdfc8a fix comment delimiters 1994-01-05 19:35:44 +00:00
Stan Shebs
6625a2efec Remove ChangeLog entry, since one change was backed out immediately and
the other never committed.
1994-01-04 00:42:09 +00:00
Stan Shebs
a92c59065a Mon Jan 3 10:59:28 1994 Stan Shebs (shebs@andros.cygnus.com)
* mpw-config.in: New file, MPW version of configure.in.
	* mpw-make.in: New file, MPW version of Makefile.in.
	* hosts/mpw.h: New file, MPW host definitions.

Mon Jan  3 13:00:07 1994  Stan Shebs  (shebs@andros.cygnus.com)

	* mpw-xconfig.in: New file, mpw x mips configuration bits.
1994-01-04 00:38:05 +00:00
Stan Shebs
d60e8a540e Mon Jan 3 10:59:28 1994 Stan Shebs (shebs@andros.cygnus.com)
* mpw-config.in: New file, MPW version of configure.in.
	* mpw-make.in: New file, MPW version of Makefile.in.
	* hosts/mpw.h: New file, MPW host definitions.
1994-01-04 00:34:05 +00:00
David MacKenzie
83acd9a218 * aout-target.h (MY(vec)): Add DYNAMIC to mask of object flags.
* aoutf1.h (NAME(aout,sunos4_write_object_contents)):
	If the DYNAMIC flag is set, set it in the exec header.
	* aoutx.h (NAME(aout,some_aout_object_p)): If the object is
	dynamically linked, set the DYNAMIC flag in the BFD.
	* libaout.h (N_SET_DYNAMIC): New macro.
	(N_DYNAMIC): Add missing 0 in mask.
1994-01-04 00:08:53 +00:00
Ian Lance Taylor
85d739444c * bfd-in.h, hash.c: Change bfd_hash_allocate argument from size_t
to unsigned int, because size_t may not be defined in bfd.h.
	* bfd-in2.h: Rebuilt.
1994-01-03 22:42:12 +00:00
Stan Shebs
c91884b377 Mon Jan 3 13:05:08 1994 Stan Shebs (shebs@andros.cygnus.com)
* syms.c (bfd_print_symbol_vandf): Change PTR to FILE *.
	* hosts/irix4.h (exit): Declare properly.
1994-01-03 22:02:48 +00:00
Ian Lance Taylor
8120aa8f45 Entry for making swapping retrieval routines take const argument. 1994-01-03 21:36:02 +00:00
Ian Lance Taylor
1a973af1cf * bfd-in.h (bfd_get{b,l}[_signed_]{16,32,64}): Declare argument to
be a const pointer.
	* bfd-in2.h: Rebuilt.
	* libbfd.c (bfd_get{b,l}[_signed_]{16,32,64}): Declare argument to
	be a const pointer.
	* targets.c (bfd_target): Change swap function pointers
	accordingly.
	* archive.c (do_slurp_coff_armap): Change swap accordingly.
	* aix386-core.c: Change NO_GET and NO_GETS accordingly.
	* hppabsd-core.c, hpux-core.c, irix-core.c, osf-core.c,
	ptrace-core.c, trad-core.c: Change NO_GET and NO_SIGNED_GET
	accordingly.
1994-01-03 21:28:43 +00:00
Ian Lance Taylor
2af2b7c4f2 Renamed get_elt_at_filepos to _bfd_get_elt_at_filepos, and made it
non-static.
1994-01-03 18:27:24 +00:00
Ian Lance Taylor
b59f0276fa * libbfd-in.h (struct artdata): Added tdata field.
(_bfd_add_bfd_to_archive_cache): Declare.
	(_bfd_snarf_ar_hdr): Renamed from snarf_ar_hdr.
	* libbfd.h: Rebuilt.
	* archive.c: Cleaned up some more.
	(_bfd_generic_mkarchive, bfd_generic_archive_p): Initialize
	pointer elements of artdata.
	(_bfd_add_bfd_to_archive_cache): Renamed from add_bfd_to_cache.
	(_bfd_snarf_ar_hdr): Renamed from snarf_ar_hdr.
	(get_extended_arelt_filename, get_elt_at_filepos,
	bfd_construct_extended_name_table, bfd_ar_hdr_from_filesystem,
	compute_and_write_armap): Made static.
	* ecoff.c: Some comment changes.
	(ecoff_slurp_armap): Handle rename of snarf_ar_hdr.  Set
	ardata->tdata to raw_armap.
	(ecoff_archive_p): Initialize pointer elements of artdata.
	* coff-rs6000.c (rs6000coff_get_elt_at_filepos): Handle rename of
	add_bfd_to_cache.
1994-01-03 18:05:19 +00:00
Ian Lance Taylor
43f4b7751d * bfd.texinfo: Added Hash Tables node.
* Makefile.in (DOCFILES): Added hash.texi.
	(SRCDOC): Added hash.c.
	(hash.texi): New target.
1994-01-03 16:48:24 +00:00
Ian Lance Taylor
031534b0e6 * hash.c: Added some documentation. 1994-01-03 16:47:46 +00:00
Jim Kingdon
3f99570ec9 * aout-target.h, netbsd386.c: Replace NO_SWAP_MAGIC with SWAP_MAGIC,
and do the swapping here rather than calling ntohl from the N_*
	macros.  This cleans up assumptions about the size of a host long,
	the existence to ntohl, etc.
1994-01-03 16:16:01 +00:00
David MacKenzie
00fe3f5326 * hosts/i386mach3.h (HOST_SEGMENT_SIZE): Fix value. 1994-01-01 23:39:18 +00:00
Rob Savoye
e38bcbdb72 * config.bfd: Add support for VSTa micro-kernel. It currently uses
i386-aout.
1994-01-01 20:52:24 +00:00
David MacKenzie
f4d7c848df * i386mach3.c (SEGMENT_SIZE): Fix value. 1994-01-01 19:09:51 +00:00
Ian Lance Taylor
728472f170 Minor cleanups suggested by CodeCenter.
* aoutx.h, coffgen.c, ecoff.c, ecofflink.c, elf.c, libbfd.c,
	linker.c, reloc.c, section.c, srec.c: Added /*ARGSUSED*/ as
	appropriate.
	* aoutx.h (struct external_exec): Removed unnecessary declaration.
	(NAME(aout,some_aout_object_p)): Set some tdata pointers to NULL.
	(adjust_z_magic): Removed useless variable data_vma.
	(stringtab_init): Initialize hash_zero.
	(add_to_stringtab): Removed unused fourth argument.
	(NAME(aout,swap_std_reloc_out)): Removed useless variable
	r_addend.
	(aout_link_input_section): Added some casts.
	* archive.c (get_extended_arelt_filename, do_slurp_coff_armap,
	bfd_ar_hdr_from_filesystem, bsd_write_armap, coff_write_armap):
	Minor code rewriting to make it more C like.
	(do_slurp_bsd_armap): Added some casts.
	* ecoff.c (ecoff_write_object_contents): Removed useless variable
	scn_base.
	(ecoff_write_armap): Added some casts.  Use "" rather than "\0".
	* ecofflink.c (bfd_ecoff_write_debug): Added a cast.
	* libaout.h (struct internal_exec): Removed unnecessary
	declaration.
	* linker.c (_bfd_generic_indirect_link_order): Added a cast.
	* opncls.c (new_bfd): Removed a cast.
	* reloc.c (bfd_generic_get_relocated_section_contents): Added
	some casts.
	* srec.c (internal_srec_write_object_contents): Removed useless
	variable bytes_written.
1993-12-31 21:51:05 +00:00
David MacKenzie
696df58f2d * i386mach3.c (N_TXTADDR): Don't define after all.
(TEXT_START_ADDR): Don't include exec header size in value.
1993-12-31 21:11:49 +00:00
David MacKenzie
e450eb45f5 Define N_TXTADDR 1993-12-30 23:48:44 +00:00
Ian Lance Taylor
2975f1f04f Rebuilt after removal of seclet.c from doc/Makefile.in. 1993-12-30 22:14:19 +00:00
Ken Raeburn
f3e7b8b089 Makefile.in: Delete all references to seclet.c, since it's just been deleted.
Don't mention hash.c, linker.c, or genlink.h yet, since they don't contain
documentation yet (hint, hint!).
1993-12-30 22:02:22 +00:00
Ian Lance Taylor
da6b2d99f7 Added new files for linker support, and removed old seclet files. 1993-12-30 20:03:34 +00:00
Ian Lance Taylor
4c3721d514 Extensive changes to move the bulk of the linker into BFD so that
more efficient backend code can be written for specific object
	files.  Only existing efficient backend is a.out.
	* seclet.c, seclet.h: Removed.
	* hash.c, linker.c, genlink.h: New files.
	* bfd-in.h: Removed bfd_error_vector.  Declared hash table
	structures and functions.
	(JUMP_TABLE): Removed bfd_seclet_link, added
	bfd_link_hash_table_create, bfd_link_add_symbols and
	bfd_final_link.
	* All backends: Changed accordingly.
	* bfd-in2.h: Rebuilt.
	* bfd.c (struct _bfd): Added link_next and archive_pass fields.
	Removed ld_symbols field.
	(bfd_nonrepresentable_section, bfd_undefined_symbol,
	bfd_reloc_value_truncated, bfd_reloc_is_dangerous,
	bfd_error_vector): Removed.
	(bfd_default_error_trap, bfd_error_trap,
	bfd_error_nonrepresentabltrap): Removed.
	(bfd_get_relocated_section_contents): Pass link_info.  Pass
	link_order instead of seclet.  Pass symbols.
	(bfd_relax_section): Pass link_info.
	(bfd_seclet_link): Removed.
	(bfd_link_hash_table_create, bfd_link_add_symbols,
	bfd_final_link): New macros.
	* libbfd-in.h: If __GNUC__ is defined and alloca is not, define
	alloca as __builtin_alloca.  Declare internal linking functions.
	* libbfd.h: Rebuilt.
	* libbfd.c (bfd_seek): Comment out fseek assertion.  It's worked
	for months.
	* reloc.c (reloc_howto_type): Added error_message argument to
	special_function field.  Changed all callers and all definitions.
	(bfd_get_reloc_size): Make argument a const pointer.
	(bfd_perform_relocation): Add error_message argument to hold
	string set if return value if bfd_reloc_dangerous.  Changed all
	callers.
	(_bfd_final_link_relocate, _bfd_relocate_contents): New functions.
	* section.c (asection): Renamed seclets_head and seclets_tail to
	link_order_head and link_order_tail.
	* targets.c (bfd_target): Replaced seclet argument with link_info
	and link_order and symbols arguments in
	bfd_get_relocated_section_contents.  Added symbols argument to
	bfd_relax_section.  Removed bfd_seclet_link.  Added
	bfd_link_hash_table_create, bfd_link_add_symbols and
	bfd_final_link.
	* libaout.h (struct aoutdata): Added external_syms,
	external_sym_count, external_strings, sym_hashes fields.
	(obj_aout_external_syms, obj_aout_external_sym_count,
	obj_aout_external_strings, obj_aout_sym_hashes): New accessor
	macros.
	(WRITE_HEADERS): Only output symbols if outsymbols is not NULL.
	* aoutx.h: Wrote new back end linker routines.
	(translate_to_native_sym_flags): Return boolean value.  Don't use
	bfd_error_vector.
	(NAME(aout,write_syms)): Return boolean value.  Check return value
	of translate_to_native_sym_flags and bfd_write.
	* aout-target.h (final_link_callback): New function.
	(MY_bfd_final_link): New function.
	* aout-adobe.c (aout_adobe_write_object_contents): Check return
	value of aout_32_write_syms.
	* hp300hpux.c (MY(write_object_contents)): Likewise.
	* i386lynx.c (WRITE_HEADERS): Likewise.
	* libaout.h (WRITE_HEADERS): Likewise.
	* bout.c: Changed functions to use link_info->callbacks rather
	than bfd_error_vector, and link_orders rather than seclets.
	* coff-alpha.c: Likewise.
	* coff-h8300.c: Likewise.
	* coff-h8500.c: Likewise.
	* coff-sh.c: Likewise.
	* coff-z8k.c: Likewise.
	* elf32-hppa.c: Likewise.
	* reloc16.c: Likewise.
	* coff-alpha.c (alpha_ecoff_get_relocated_section_contents): Look
	up _gp in the hash table rather than in outsymbols.
	* coff-a29k.c (a29k_reloc): Pass errors back in new error_message
	argument rather than printing them.
	* coffcode.h (bfd_coff_reloc16_extra_cases): Take link_info and
	link_order arguments rather than seclet.  Changed all uses and
	definitions.
	(bfd_coff_reloc16_estimate): Pass link_info arguments.  Changed
	all uses and definitions.
	* libcoff.h: Rebuilt.
	* ecoff.c (ecoff_get_extr): If symbol is defined by linker, but
	not by ECOFF, make it scAbs.
	(ecoff_bfd_final_link): Renamed from ecoff_bfd_seclet_link and
	rewritten.
	* elf32-mips.c (mips_elf_final_link): Renamed from
	mips_elf_seclet_link and rewritten.
	* elf32-hppa.c (elf32_hppa_stub_description): Added link_info
	field.
	(new_stub, add_stub_by_name, hppa_elf_build_arg_reloc_stub,
	hppa_elf_build_long_branch_stub, hppa_look_for_stubs_in_section):
	Added link_info arguments.  Changed all callers.
	* elfcode.h (elf_slurp_symbol_table): Don't quit if outsymbols is
	not NULL.
	* oasys.c (oasys_write_sections): Return boolean value rather than
	using bfd_error_vector.
	(oasys_write_object_contents): Check return value of
	oasys_write_sections.
	* hosts/std-host.h: Don't declare qsort or strtol.
	* Makefile.in: Rebuild dependencies.
	(BFD_LIBS): Removed seclet.o.  Added hash.o and linker.o.
	(CFILES): Removed seclet.c.  Added hash.c and linker.c.
	(HFILES): Removed seclet.h.  Added genlink.h.
1993-12-30 19:56:50 +00:00
Peter Schauer
1adbf66264 * section.c (bfd_get_section_contents): Return zero filled buffer
if section has no contents.
1993-12-30 15:51:16 +00:00
Ian Lance Taylor
d1b44e837e * elf.c (bfd_elf_generic_reloc): If this is not an inplace reloc,
then skip bfd_perform_relocation even if the addend is non-zero.
1993-12-28 17:45:14 +00:00