Commit graph

1106 commits

Author SHA1 Message Date
Ian Lance Taylor
9deaaaf1b3 * targets.c (bfd_target): Add _bfd_free_cached_info field.
* bfd.c (bfd_free_cached_info): Define.
	* bfd-in.h (JUMP_TABLE): Add _bfd_free_cached_info.
	* bfd-in2.h: Rebuilt.
	* All backends: Initialize bfd_free_cached_info entry point to
	bfd_true.
1994-04-01 17:55:47 +00:00
Ian Lance Taylor
f8ee1ebba0 Added some support for Irix 4 shared libraries.
* ecoff.c (ecoff_new_section_hook): Set SEC_SHARED_LIBRARY for a
	.lib section.
	(ecoff_sec_to_styp_flags): Set SEC_SHARED_LIBRARY if
	STYP_ECOFF_LIB bit is set.
	(ecoff_compute_section_file_positions): Round the contents of a
	.lib section up to the next page boundary.
	(ecoff_set_section_contents): If we see a .lib section, increment
	the vma by one to count the number of shared libraries we have.
	(ecoff_write_object_contents): Don't crash if we see a
	STYP_ECOFF_LIB section, and don't adjust text_start or data_start
	or bss_size either.
1994-03-31 21:38:23 +00:00
Ian Lance Taylor
492d52cc58 * coffcode.h (CALC_ADDEND): Change to fetch original symbol value
from original BFD, rather than using value of current BFD symbol.
	Needed for new linker.
	* coff-sparc.c (CALC_ADDEND): Likewise.
1994-03-31 21:05:21 +00:00
Ian Lance Taylor
1788b1bd01 * ecoff.c (ecoff_write_object_contents): Set the text_start and
data_start entries in the optional header correctly even if a text
	or data section starts at location zero.
1994-03-31 19:44:10 +00:00
Ian Lance Taylor
e9c6595dd4 Added missing ChangeLog entry for Sean's check in, and rebuilt
bfd-in2.h.
1994-03-31 19:08:22 +00:00
Ian Lance Taylor
3af0f479d0 * nlm32-i386.c (nlm_i386_read_import): Null terminate the symbol
name.
	* nlm32-alpha.c (nlm_alpha_read_import): Likewise.
	* nlm32-sparc.c (nlm_sparc_read_import): Likewise.
1994-03-31 19:05:03 +00:00
Ian Lance Taylor
bfe8224f3e * coffgen.c (coff_write_symbol): Reindented. Changed to return
boolean, and changed written to unsigned int *.  Check error
	returns from called functions.
	(coff_write_alien_symbol): Likewise.
	(coff_write_native_symbol): Likewise.
	(coff_write_symbols): Likewise.  Reworked checks on whether to
	write symbol name to string table for clarity and to avoid core
	dumping when given a non COFF symbol.
	* libcoff-in.h (coff_write_symbols): Declare as returning boolean.
	* libcoff.h: Rebuilt.
	* coffcode.h (coff_write_object_contents): Check return value of
	coff_write_symbols.
1994-03-31 16:58:23 +00:00
Jeff Law
06e6eb0e53 * som.c (som_begin_writing): New approach at dealing with holes
in executables left by the HP linker.  Does not rely on subspace
        alignments as subspaces are *NOT* guaranteed to be properly
        aligned in an executable (can you believe that!).
1994-03-31 06:50:42 +00:00
Ian Lance Taylor
326e32d7ce Wed Mar 30 16:25:41 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
Changes to let BFD return an error indication from
	get_symtab_upper_bound, bfd_canonicalize_symtab,
	bfd_get_reloc_upper_bound, and bfd_canonicalize_reloc.  They now
	return long instead of unsigned int, and use -1 to indicate an
	error.  Along the way, rename get_symtab_upper_bound to
	bfd_get_symtab_upper_bound.
	* bfd.c (bfd_get_reloc_upper_bound): Return long, and -1 on
	errors.
	(bfd_canonicalize_reloc): Likewise.
	* syms.c (bfd_get_symtab_upper_bound): Renamed from
	get_symtab_upper_bound.
	* targets.c (bfd_target): Renamed _get_symtab_upper_bound to
	_bfd_get_symtab_upper_bound, and changed it and
	_bfd_canonicalize_symtab and _get_reloc_upper_bound and
	_bfd_canonicalize_reloc to all return long.
	* aoutx.h (NAME(aout,get_symtab)): Return long, and -1 on errors.
	(NAME(aout,canonicalize_reloc)): Likewise.
	(NAME(aout,get_reloc_upper_bound)): Likewise.
	(NAME(aout,get_symtab_upper_bound)): Likewise.
	* bout.c (b_out_canonicalize_reloc): Likewise.
	(b_out_get_reloc_upper_bound): Likewise.
	* coffcode.h (coff_canonicalize_reloc): Likewise.
	* coffgen.c (coff_get_symtab_upper_bound): Likewise.
	(coff_get_symtab): Likewise.
	(coff_get_reloc_upper_bound): Likewise.
	* ecoff.c (ecoff_get_symtab_upper_bound): Likewise.
	(ecoff_get_symtab): Likewise.
	(ecoff_canonicalize_reloc): Likewise.
	* elfcode.h (elf_get_symtab_upper_bound): Likewise.
	(elf_get_reloc_upper_bound): Likewise.
	(elf_canonicalize_reloc): Likewise.
	(elf_get_symtab): Likewise.
	* hp300hpux.c (MY(get_symtab)): Likewise.
	(MY(get_symtab_upper_bound)): Likewise.
	(MY(canonicalize_reloc)): Likewise.
	* i386lynx.c (NAME(lynx,canonicalize_reloc)): Likewise.
	* ieee.c (ieee_slurp_external_symbols): Change return type to
	boolean.  Check for errors from get_symbol.
	(ieee_slurp_symbol_table): Change return type to boolean.  Check
	for errors from ieee_slurp_external_symbols.
	(ieee_get_symtab_upper_bound): Return long, and -1 on errors.
	(ieee_get_symtab): Likewise.
	(ieee_get_reloc_upper_bound): Likewise.
	(ieee_canonicalize_reloc): Likewise.
	* mipsbsd.c (MY(canonicalize_reloc)): Likewise.
	* nlmcode.h (nlm_get_symtab_upper_bound): Likewise.
	(nlm_get_symtab): Likewise.
	(nlm_get_reloc_upper_bound): Likewise.
	(nlm_canonicalize_reloc): Likewise.
	* oasys.c (oasys_get_symtab_upper_bound): Likewise.
	(oasys_get_symtab): Likewise.
	(oasys_get_reloc_upper_bound): Likewise.
	(oasys_canonicalize_reloc): Likewise.
	* som.c (som_get_symtab_upper_bound): Likewise.
	(som_get_symtab): Likewise.
	(som_get_reloc_upper_bound): Likewise.
	(som_canonicalize_reloc): Likewise.
	* srec.c (srec_get_symtab_upper_bound): Likewise.
	(srec_get_symtab): Likewise.
	(srec_get_reloc_upper_bound): Define as bfd_0l.
	(srec_canonicalize_reloc): Likewise.
	* tekhex.c (tekhex_get_symtab): Return long, and -1 on errors.
	(tekhex_get_symtab_upper_bound): Likewise.
	(tekhex_get_reloc_upper_bound): Define as bfd_0l.
	(tekhex_canonicalize_reloc): Likewise.
	* libaout.h (NAME(aout,get_symtab_upper_bound)): Change
	declaration to return long.
	(NAME(aout,get_symtab)): Likewise.
	(NAME(aout,canonicalize_reloc)): Likewise.
	(NAME(aout,get_reloc_upper_bound)): Likewise.
	* libcoff-in.h (coff_get_symtab_upper_bound): Likewise.
	(coff_get_symtab): Likewise.
	(coff_get_reloc_upper_bound): Likewise.
	* libecoff.h (ecoff_get_symtab_upper_bound): Likewise.
	(ecoff_get_symtab): Likewise.
	(ecoff_canonicalize_reloc): Likewise.
	* libelf.h (bfd_elf32_get_symtab_upper_bound): Likewise.
	(bfd_elf32_get_symtab): Likewise.
	(bfd_elf32_get_reloc_upper_bound): Likewise.
	(bfd_elf32_canonicalize_reloc): Likewise.
	(bfd_elf64_get_symtab_upper_bound): Likewise.
	(bfd_elf64_get_symtab): Likewise.
	(bfd_elf64_get_reloc_upper_bound): Likewise.
	(bfd_elf64_canonicalize_reloc): Likewise.
	* libnlm.h (nlmNAME(get_symtab_upper_bound)): Likewise.
	(nlmNAME(get_symtab)): Likewise.
	(nlmNAME(get_reloc_upper_bound)): Likewise.
	(nlmNAME(canonicalize_reloc)): Likewise.
	* archive.c (compute_and_write_armap): Use error_return and
	no_memory_return labels rather than freeing information in various
	places.  Change storage, symcount and src_count to long.  Check
	errors from bfd_get_symtab_upper_bound and
	bfd_canonicalize_symtab.
	* bout.c (b_out_relax_section): Change reloc_size to long.  Check
	for errors from bfd_get_reloc_upper_bound and
	bfd_canonicalize_reloc.
	(b_out_get_relocated_section_contents): Likewise.
	* coff-alpha.c (alpha_ecoff_get_relocated_section_contents):
	Likewise.
	* elf32-mips.c: Likewise.
	* elf32-hppa.c (hppa_elf_stub_finish): Likewise.
	(hppa_look_for_stubs_in_section): Check for errors from
	bfd_get_symtab_upper_bound, bfd_canonicalize_symtab, and
	bfd_canonicalize_reloc.
	* ecofflink.c (bfd_ecoff_debug_accumulate_other): Check for errors
	from bfd_get_symtab_upper_bound and bfd_canonicalize_symtab.
	* linker.c (generic_link_read_symbols): Likewise.
	(_bfd_generic_final_link): Check for errors from
	bfd_get_reloc_upper_bound and bfd_canonicalize_reloc.
	* reloc.c (bfd_generic_get_relocated_section_contents): Likewise.
	* reloc16.c (bfd_coff_reloc16_relax_section): Likewise.
	(bfd_coff_reloc16_get_relocated_section_contents): Likewise.
	* libbfd.c (bfd_0l): New function.
	* libbfd-in.h (bfd_0l): Declare.
	* aix386-core.c: Change get_symtab_upper_bound, get_symtab,
	get_reloc_upper_bound, and canonicalize_reloc to use bfd_0l rather
	than bfd_0u.
	* cisco-core.c, hppabsd-core.c, hpux-core.c: Likewise.
	* irix-core.c, osf-core.c, ptrace-core.c, trad-core.c: Likewise.
	* bfd-in2.h: Rebuilt.
	* libbfd.h: Rebuilt.
	* libcoff.h: Rebuilt.

	* nlm32-sparc.c (nlm_sparc_read_reloc): Remove unused variables
	temp and name.
1994-03-30 22:15:07 +00:00
Jim Kingdon
c2c818bc35 * hosts/dpx2.h: Define POSIX_UTIME. 1994-03-30 16:33:45 +00:00
Peter Schauer
bdf1b51158 * i386dynix.c, config/i386-dynix.mt: New files, handling Dynix
variant of a.out.
	* configure.in, config.bfd:  Use them for Dynix.
	* Makefile.in:  Add dependencies for i386dynix.o.
	* targets.c:  Add definition for i386dynix_vec.
1994-03-30 08:53:45 +00:00
Ian Lance Taylor
9f37f56aac Entry for last check in. 1994-03-28 23:44:43 +00:00
Ian Lance Taylor
09a2820705 * coffcode.h (coff_set_flags): Handle bfd_arch_powerpc like
bfd_arch_rs6000.
1994-03-28 23:20:38 +00:00
Ian Lance Taylor
ce8f1f60b7 * config.bfd (powerpc-*-aix*): New target; use rs6000.mt. 1994-03-28 18:02:05 +00:00
Ian Lance Taylor
34632537e0 * configure.in (powerpc-*-aix*): New target; use rs6000.mt.
* config/rs6000.mt (SELECT_ARCHITECTURES): Add bfd_powerpc_arch.
1994-03-28 18:00:09 +00:00
Ian Lance Taylor
a8a916c86f * aoutx.h (translate_from_native_sym_flags): Set SEC_RELOC flag
for generated constructor section.
1994-03-28 17:57:34 +00:00
Jeff Law
f977e865cb * som.c (som_get_section_contents): New function. Do not try
to actually read data from a section that doesn't have either
        SEC_LOAD or SEC_DEBUGGING set (eg $BSS$) just return true.
1994-03-26 20:25:48 +00:00
Jeff Law
250578363e * libbfd.c (bfd_read): Set bfd_error as appropriate for a short
read. (bfd_error_system_call or bfd_error_file_truncated).

        * som.c: Do not blindly set bfd_error_system_call after a
        failing bfd_read, bfd_write, or bfd_seek.  In a few places
        (like som_object_p) override the error status set by bfd_read.

        * aix386-core.c, aout-encap,c archive.c, bout.c: Likewise.
        * coff-rs6000.c, coffgen.c ecoff.c, elf.c: Likewise.
        * elf32-hppa.c, elfcode.h, hp300hpux.c, i386lynx.c: Likewise.
        * nlm32-alpha.c, nlm32-i386.c, nlm32-sparc.c: Likewise.

        * som.c: Check return values from several bfd_{seek,read,write}
        calls that we just assumed were not failing.
1994-03-26 18:28:29 +00:00
Jim Kingdon
471c3c3f74 * hosts/sysv4.h (HAVE_PROCFS): Add comments about ptx4.
* config/sysv4.mh: Add comment.
	* config/symmetry.mh: Change comment.
	* configure.host: Use sysv4, not symmetry, for i[34]86-sequent-sysv4*.
1994-03-26 01:12:53 +00:00
Ian Lance Taylor
a3a33af390 Changes to support linker relaxing of embedded MIPS PIC code to
use a five instruction sequence for funtion calls which are out of
	range of the bal instruction.
	* libecoff.h (struct ecoff_section_tdata): Define.
	(ecoff_section_data): Define.
	(ecoff_bfd_relax_section): Don't define.
	* ecoff.c (ecoff_final_link_debug_accumulate): Don't read or free
	the debugging information if it has already been read.
	(ecoff_indirect_link_order): Handle _cooked_size being different
	from _raw_size.  Don't reread the contents or the relocs if they
	have already been read in.
	* coff-mips.c (mips_howto_table): Change bitsize of PCREL16 from
	18 to 16.
	(PCREL16_EXPANSION_ADJUSTMENT): Define.
	(mips_relocate_refhi): Take adjust argument.
	(mips_relocate_section): Handle reloc offsets stored in section
	used_by_bfd field.  Call mips_relax_pcrel16 to handle details of
	expanding an out of range PCREL16.  Keep trace of adjustments
	required by expansions.  Set s and unset h when converting a reloc
	from undefined to section.  Change handling of PC relative relocs:
	if against a section, they are correct in the object file, if
	against an external symbol they are pcrel_offset.
	(mips_relax_section): New function.
	(mips_relax_pcrel16): New function.
	(ecoff_bfd_relax_section): Define.
	* coff-alpha.c (ecoff_bfd_relax_section): Define.
	* ecofflink.c (bfd_ecoff_debug_accumulate): Handle adjustments
	built by mips_relax_section when writing out addresses.
	* elf32-mips.c (mips_elf_read_ecoff_info): Clear adjust field.
1994-03-25 22:37:55 +00:00
Ian Lance Taylor
ec099b4b25 * aoutx.h (NAME(aout,find_nearest_line)): The caller expects
functionname_ptr to be set to a symbol name, so prepend
	symbol_leading_char.
1994-03-25 22:13:02 +00:00
Steve Chamberlain
47e70c5417 Thu Mar 24 11:33:46 1994 Steve Chamberlain (sac@jonny.cygnus.com)
* coff-h8300.c (h8300_reloc16_extra_cases): Add relaxing info
	for 16bit relative branches.
	* coff-h8500.c (r_high8, r_low16, r_high16): Don't complain on
	overflow.
1994-03-24 19:45:23 +00:00
Jeff Law
9d7f682f8c * som.c (som_bfd_prep_for_ar_write): Ignore non-SOM objects.
(som_bfd_ar_write_symbol_stuff, som_write_armap): Likewise.
1994-03-24 17:21:50 +00:00
Ian Lance Taylor
456961d1bc Clean up the relaxing code for the new linker.
* targets.c (_bfd_relax_section): Take boolean *again argument
	rather than asymbol list.
	* bfd.c (bfd_relax_section): Change name of fourth argument from
	symbols to again.
	* reloc.c (bfd_generic_relax_section): Take boolean *again
	argument rather than asymbol list.  Always return true.
	* bout.c: Include genlink.h.
	(aligncode, perform_slip): Declare.
	(perform_slip): Take BFD argument rather than asymbol list.
	Changed all callers.  Get the symbols from the BFD.  Change the
	hash table entry value as well as the symbol value.
	(abs32code): Take BFD argument rather than asymbol list.  Changed
	all callers.
	(aligncode): Likewise.
	(b_out_relax_section): Take boolean *again argument rather than
	asymbol list.  Only return false if an error occurred.  Set *again
	to false.  Get symbols from BFD.
	* reloc16.c: Include genlink.h.
	(bfd_perform_slip): Take BFD argument rather than asymbol list.
	Get the symbols from the BFD.  Change the hash table entry value
	as well as the symbol value.
	(bfd_coff_reloc16_relax_section): Take boolean *again argument
	rather than asymbol list.  Only return false if an error occurred.
	Set *again to false.  Get symbols from BFD.
	* coffcode.h (bfd_coff_backend_data): Change
	_bfd_coff_reloc16_estimate to take BFD argument rather than
	asymbol list.
	(bfd_coff_reloc16_estimate): Corresponding change.
	(dummy_reloc16_estimate): Corresponding change.
	* libcoff-in.h (bfd_coff_reloc16_relax_section): Change
	declaration to take boolean * rather than asymbol list.
	(bfd_perform_slip): Change declaration to take BFD rather than
	asymbol list.
	* coff-h8300.c (h300_reloc16_estimate): Take BFD argument rather
	than asymbol list.  Changed calls to bfd_perform_slip.
	* bfd-in2.h: Rebuilt.
	* libbfd.h: Rebuilt.
	* libcoff.h: Rebuilt.
	* Makefile.in: Rebuilt dependencies.
1994-03-23 20:21:06 +00:00
Ian Lance Taylor
c031ba0b95 * coff-mips.c (mips_howto_table): Add entry for new MIPS_R_PCREL16
reloc, used in embedded PIC code.
	(mips_adjust_reloc_in): Change sanity check to permit new reloc.
	(mips_bfd_reloc_type_lookup): Turn BFD_RELOC_16_PCREL_S2 into
	MIPS_R_PCREL16.
1994-03-22 20:13:37 +00:00
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
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
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
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
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
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
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
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
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
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
96db31875e Various entries. 1994-02-26 05:38:11 +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
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
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
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
42f62ead47 Various entries. 1994-02-17 20:56:49 +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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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