Commit Graph

1054 Commits

Author SHA1 Message Date
Ian Lance Taylor
e3361fc35c * cf-m68klynx.c (CALC_ADDEND): Check for PC relative relocs by
enumerating them, since the reloc type can not serve as an index
	into the m68k COFF howto_table.
1994-04-29 19:09:51 +00:00
Steve Chamberlain
dbf13547b7 * config.bfd (*-go32): Changed to coff.
* coff-h8300.c (JMPL1): Get HOWTO right for 24bit branches.
	* srec.c (srec_write_symbols): Write out the correct number of
	symbols and don't stick in extra nulls.
1994-04-29 16:48:25 +00:00
Steve Chamberlain
7c6ba20141 * coff-h8300.c (JMPL1): Get HOWTO right for 24bit branches. 1994-04-29 16:44:48 +00:00
Stan Shebs
380c60b19a Tue Apr 26 15:07:24 1994 Stan Shebs (shebs@andros.cygnus.com)
* cf-sparclynx.c (LYNXOS, COFF_LONG_FILENAMES): Define.
	* coff-sparc.c (BADMAG): Recognize LYNXCOFFMAGIC.
	(COFF_SPARC): Define.
	* coffcode.h (coff_new_section_hook): If COFF_SPARC, set alignment
	power of data and bss sections to 3.
	* hosts/lynx.h (__LYNXOS): Define.

Brought over from 94Q1.
1994-04-26 22:10:10 +00:00
Jeff Law
6c101bcf78 * elf32-hppa.c (hppa_elf_reloc): Adjust the addend of relocations
against section symbols to avoid losing during ld -r.
1994-04-26 22:06:13 +00:00
Ian Lance Taylor
ba436e33cd * elfcode.h (write_relocs): Undo patch of Apr 10; breaks Solaris. 1994-04-25 19:52:15 +00:00
Ian Lance Taylor
2e03ce1861 * elfcode.h (bfd_section_from_shdr): Use bfd_make_section_anyway
to create sections.  Check return value of recursive calls.
	(bfd_section_from_phdr): Check return value of bfd_make_section.
	(elf_symbol_from_bfd_symbol): Likewise.
	(elf_object_p): Check return value of bfd_section_from_shdr.
	(section_from_elf_index): Likewise.
	(elf_slurp_symbol_table): Check return value of
	section_from_elf_index.
	(bfd_prstatus): Return boolean value.  Check return value of
	bfd_make_section.
	(bfd_fpregset): Likewise.
	(bfd_prpsinfo): Return boolean value.
	(elf_corefile_note): Check return values of bfd_prstatus,
	bfd_fpregset, and bfd_prpsinfo.
	(elf_core_file_p): Check return value of elf_corefile_note.
1994-04-25 19:36:51 +00:00
Ian Lance Taylor
cc71e155b6 Get rid of the ECOFF .reginfo section hack.
* ecoff.c (ecoff_mkobject_hook): Don't create a .reginfo section.
	(ecoff_new_section_hook): Don't handle the .reginfo section.
	(ecoff_sizeof_headers): Likewise.
	(ecoff_get_section_contents): Likewise.
	(ecoff_compute_section_file_positions): Likewise.
	(ecoff_compute_reloc_file_positions): Likewise.
	(ecoff_set_section_contents): Likewise.
	(ecoff_write_object_contents): Likewise.
	(ecoff_bfd_final_link): Likewise.
	(ecoff_bfd_copy_private_bfd_data): Copy the GP value and the
	register masks.
	(bfd_ecoff_get_gp_value): New function.
	(bfd_ecoff_set_gp_value): New function.
	(bfd_ecoff_set_regmasks): New function.
	* bfd-in.h (bfd_ecoff_get_gp_value): Declare.
	(bfd_ecoff_set_gp_value): Declare.
	(bfd_ecoff_set_regmasks): Declare.
	* bfd-in2.h: Rebuilt.
1994-04-22 22:09:25 +00:00
Ian Lance Taylor
1bb42b1f2b Fix ECOFF objcopy to actually copy debugging information.
* ecoff.c (ecoff_bfd_copy_private_bfd_data): New function.
	(ecoff_get_extr): Assume that any ECOFF symbol with local clear is
	an external symbol, rather than checking the symbol flags.  Only
	check the flags for non-ECOFF symbols.
	* ecofflink.c (bfd_ecoff_debug_externals): Don't crash if the
	output_section field of the symbol section is NULL.
	* libecoff.h (ecoff_bfd_copy_private_bfd_data): Declare as
	function rather than defining as macro.
1994-04-22 20:32:51 +00:00
Ian Lance Taylor
d290d8da0e * targets.c (bfd_target_vector): Add bfd_elf32_powerpc_vec. 1994-04-22 17:38:20 +00:00
Ian Lance Taylor
80a903c960 * aout-adobe.c (aout_adobe_set_arch_mach): Check return value of
bfd_default_set_arch_mach.  Accept bfd_arch_m68k as well as
	bfd_arch_unknown.
	* elfcode.h (elf_set_arch_mach): Don't check a list of ELF
	architectures, just see if the desired architecture matches what
	the ELF backend permits.
1994-04-22 17:11:37 +00:00
Ian Lance Taylor
79167def08 Follow convention in which each NLM header has an 8 byte stamp
followed by a four byte length.
	* libnlm.h (struct nlm_obj_tdata): Rename nlm_cygnus_section_hdr
	to nlm_cygnus_ext_header, and change type to
	Nlm_Internal_Cygnus_Ext_Header.
	(nlm_cygnus_ext_header): Rename from nlm_cygnus_section_header.
	* nlmcode.h (nlm_swap_auxiliary_headers_in): Use CyGnUsEx instead
	of CyGnUsSeCs.  Rename from cygnus_section to cygnus_ext.  Require
	length word to be 8.
	(nlm_swap_auxiliary_headers_out): Rename from cygnus_section to
	cygnus_ext.  Set length word to 8.
	(nlm_compute_section_file_positions): Rename from cygnus_section
	to cygnus_ext.
1994-04-22 15:16:34 +00:00
Stu Grossman
7f772644c7 * nlmcode.h (nlm_swap_auxiliary_headers_in): Keep section table
(from CyGnUsSeCs) in more permanent memory to keep section names
	from getting trashed.
1994-04-22 05:59:24 +00:00
Ian Lance Taylor
1eff2af3ba Clean up uses of _bfd_dummy_target (from Peter Schauer).
* libbfd.c (_bfd_dummy_target): Set bfd_error_wrong_format.
	* nlm-target.h (nlm_core_file_p): Define as _bfd_dummy_target, not
	NULL.
	* srec.c (srec_vec): Use _bfd_dummy_target, not NULL, in
	_bfd_check_format.
	(symbolsrec_vec): Likewise.
	* tekhex.c (tekhex_vec): Likewise.
1994-04-21 18:19:22 +00:00
Peter Schauer
cb71adf12b * libelf.h (elf_obj_tdata): Add members for dynamic symbol table
handling.
	* elfcode.h (bfd_section_from_shdr):  Handle dynamic symbol table.
	* elfcode.h (elf_slurp_symbol_table):  Take additional parameter
	to select static or dynamic symbol table and return number of
	symbols slurped or -1 on error.
	* elfcode.h (elf_get_symtab):  Set bfd symcount from
	elf_slurp_symbol_table result.
	* elfcode.h (elf_get_dynamic_symtab_upper_bound,
	elf_canonicalize_dynamic_symtab):  New functions to handle dynamic
	symbol table.
	* elf32-target.h, elf64-target.h (BFD_JUMP_TABLE_DYNAMIC):
	Change to handle dynamic symbol table, provide default definitions
	for dynamic relocs.
	* aoutx.h (howto_table_std, NAME(aout,swap_std_reloc_out),
	NAME(aout,swap_std_reloc_in), aout_link_input_section_std,
	aout_link_reloc_link_order):  Handle r_jmptable and r_relative
	relocations.
1994-04-21 17:01:12 +00:00
Ian Lance Taylor
6c534df0c9 * libnlm.h (struct nlm_obj_tdata): Add nlm_cygnus_section_hdr
field.
	(nlm_cygnus_section_header): New accessor macro.
	* nlmcode.h (nlm_object_p): Free new tdata structure if failure.
	Add fixed sections before swapping in auxiliary headers.  After
	adding sections, treat errors as real, not as wrong format.
	(nlm_swap_auxiliary_headers_in): Swap in the sections header; add
	sections to the BFD for each section it describes.
	(nlm_swap_auxiliary_headers_out): Swap out the sections header.
	(nlm_compute_section_file_positions): Account for the size of the
	sections header.
1994-04-21 16:13:01 +00:00
Ken Raeburn
4a5bfdbc73 * coff-sparc.c (sparccoff_vec): Change minimum alignment power to 2, so that
stab sections can be multiples of 4 bytes only.
1994-04-20 22:44:52 +00:00
Ken Raeburn
71363c410e * hosts/i386aix.h: Changes to avoid prototypes conflicts with the ones defined
in stdlib.h.  (From Minh Tran-Le.)
1994-04-20 22:42:57 +00:00
Ian Lance Taylor
476d01f08a start-sanitize-powerpc-netware
* nlm32-ppc.c: Complete rewrite for new version of PowerPC
	NetWare.  Old code still present, but ifdeffed out.
end-sanitize-powerpc-netware

	* nlmcode.h (nlm_swap_auxiliary_headers_in): Don't assume a
	particular format for the customer header.  Allocate a block of
	memory and read it into that.
	(nlm_swap_auxiliary_headers_out): Write out the block of memory.
	(nlm_compute_section_file_positions): Include length of customer
	header when computing its size.
1994-04-20 18:38:22 +00:00
Jeff Law
694787005c * som.c (som_prep_headers): Get the space's number from the
backend private section data rather than target_index.
        (bfd_som_set_section_attributes): Store the space's number
        in the backend private section data rather than target_index.

        * som.h (som_copyable_section_data_struct): Add space_number.
1994-04-18 21:28:01 +00:00
Ian Lance Taylor
09ed366671 * coff-a29k.c (reloc_processing): Always set the address of a
R_IHCONST reloc to that of the immediately preceding R_IHIHALF.
	gas does this anyhow, but some other assemblers seem to leave
	garbage in the R_IHCONST address field.
1994-04-15 22:22:07 +00:00
Ian Lance Taylor
97ea252ef8 * bfd/archive.c: Consistently use ARFMAG; from
schwab@issan.informatik.uni-dortmund.de (Andreas Schwab).
	(_bfd_write_archive_contents): Use ARFMAG rather than '`' and
	'\012'.
	(bsd_write_armap): Likewise.
	(coff_write_armap): Likewise.
1994-04-15 19:30:09 +00:00
Ian Lance Taylor
ef79dba3c3 * coff-mips.c (mips_relocate_section): When relaxing, adjust local
relocs against the .text section as required.
	* ecofflink.c (bfd_ecoff_debug_accumulate): When relaxing, adjust
	PDR addresses as required.
1994-04-15 18:35:32 +00:00
Ian Lance Taylor
2ec2e6a90a * ecoff.c (ecoff_emit_aggregate): Take fdr argument. Map fdr
index through rfd map if it exists.  Check for a couple of cases
	which gdb handles specially.  Change all callers.
	(ecoff_type_to_string): Take fdr argument rather than aux_ptr and
	bigendian argument.  Change all callers.
	(ecoff_print_symbol): Handle stStruct, stUnion and stEnum.
1994-04-15 16:29:56 +00:00
Stan Shebs
1a000744e6 Wed Apr 13 11:50:07 1994 Stan Shebs (shebs@andros.cygnus.com)
* coff-sparc.c (sparccoff_vec): Set minimum alignment power to 3.
1994-04-14 18:09:12 +00:00
Ian Lance Taylor
4f996613fa * coff-mips.c (mips_howto_table): Add dummy entries to account for
numbering changes in include/coff/mips.h.  Add entries for
	MIPS_R_RELHI and MIPS_R_RELLO.
	(mips_ecoff_swap_reloc_in): Handle an extra bit for the reloc type
	when little endian.  Treat internal MIPS_R_RELLO or MIPS_R_RELHI
	relocs like MIPS_R_SWITCH, and convert r_offset from 24 to 32
	bits.
	(mips_ecoff_swap_reloc_out): Likewise.
	(mips_adjust_reloc_in): Handle internal MIPS_R_RELLO or
	MIPS_R_RELHI relocs like MIPS_R_SWITCH.
	(mips_adjust_reloc_out): Likewise.
	(mips_relhi_addr, mips_relhi_addend): New static variables.
	(mips_relhi_reloc, mips_rello_reloc): New functions.
	(mips_bfd_reloc_type_lookup): Turn BFD_RELOC_PCREL_HI16_S into
	MIPS_R_RELHI and turn BFD_RELOC_PCREL_LO16 into MIPS_R_RELLO.
	(mips_relocate_hi): Rename from mips_relocate_refhi, and add pcrel
	argument.  Changed all callers.
	(mips_relocate_section): Rename got_reflo to got_lo and
	reflo_int_rel to lo_int_rel.  Handle MIPS_R_RELLO and MIPS_R_RELHI
	relocs.
	(mips_relax_section): Adjust MIPS_R_RELHI/MIPS_R_RELLO pairs when
	expanding a PC relative call.
1994-04-14 17:33:22 +00:00
Jeff Law
41194a4a59 * som.c (som_write_fixups): Always emit at least
one relocation for any non-bss section.
1994-04-12 20:37:33 +00:00
Ian Lance Taylor
bf08d1e266 * elfcode.h (assign_file_positions_except_relocs): Don't require
the file alignment to correspond to the page size when linking
	with -N.
1994-04-11 18:43:15 +00:00
Jeff Law
9a5334e590 * elfcode.h (write_relocs): For rela relocations, adjust the
addend for relocations involving section symbols to account
        for the lossage of 1:1 mapping from input section symbols to
        output section symbols.
1994-04-10 08:12:33 +00:00
Ian Lance Taylor
ec6b18c4fa * aoutx.h (NAME(aout,make_sections)): New function.
(NAME(aout,some_aout_object_p)): Call NAME(aout,make_sections)
	rather than making sections inline.
	(NAME(aout,mkobject)): Don't make any sections.
	(NAME(aout,adjust_sizes_and_vmas)): Call NAME(aout,make_sections).
	(NAME(aout,final_link)): Don't dereference obj_textsec (abfd) or
	obj_datasec (abfd) if they are NULL.
	* libaout.h (NAME(aout,make_sections)): Declare.
	* bout.c (b_out_mkobject): Don't make any sections.
	(b_out_write_object_contents): Call aout_32_make_sections.
	(b_out_set_section_contents): Likewise.
	* i386os9k.c (os9k_mkobject): Don't make any sections.
	(os9k_write_object_contents): Call aout_32_make_sections.
	(os9k_set_section_contents): Likewise.
1994-04-08 21:40:38 +00:00
Ian Lance Taylor
e48f985cd2 * aoutx.h (NAME(aout,new_section_hook)): Don't set N_EXT in target
index.
1994-04-08 16:24:01 +00:00
Peter Schauer
06863047a5 * config.bfd, configure.host: Add mips-*-sysv4* support. 1994-04-08 00:17:32 +00:00
Ian Lance Taylor
dabf906e9b * coff-mips.c (mips_howto_table): Add entry for MIPS_R_SWITCH.
(mips_ecoff_swap_reloc_in): For MIPS_R_SWTICH, copy r_symndx into
	r_offset and set r_symndx to RELOC_SECTION_TEXT.
	(mips_ecoff_swap_reloc_out): For MIPS_R_SWITCH, get the r_symndx
	value from the r_offset field.
	(mips_adjust_reloc_in): Maximum r_type value is now MIPS_R_SWITCH.
	For MIPS_R_SWITCH, copy the r_offset field into the addend field.
	(mips_adjust_reloc_out): For MIPS_R_SWITCH, copy the addend field
	into the r_offset field.
	(mips_switch_reloc): New function.
	(mips_bfd_reloc_type_lookup): Translate BFD_RELOC_GPREL32 into
	MIPS_R_SWITCH.
	(mips_relocate_section): Handle MIPS_R_SWITCH.
	(mips_relax_section): Adjust MIPS_R_SWITCH offset if necessary.
1994-04-07 18:29:38 +00:00
Jeff Law
99a6c7613c * elfcode.h (elf_set_section_contents): Support calling the backend
function elf_backend_begin_write_processing when just beginning to
	write an object file.

	* libelf.h (elf_backend_begin_write_processing): Declare.

	* elf{32,64}-target.h (elf_backend_begin_write_processing): Provide
	a default definition.
	(elf{32,64}_bed): Add elf_backend_begin_write_processing.

	* elf32-hppa.h (elf_hppa_tc_symbol): Delete extern declaration.
	(elf_hppa_tc_make_sections): Likewise.

	* elf32-hppa.c (symext_chain_built): Delete.
	(symext_chain_size): Renamed from symextn_contents_real_size.
	(elf32_hppa_backend_{begin,final}_write_processing): New functions.
	(add_entry_to_symext_chain): New function.
	(hppa_elf_set_section_contents): Ignore writes to the symbol extension
	section until it's been rebuilt internally.
	(hppa_elf_get_section_contents): Symbol extension section is no
	longer special.
	(elf_backend_{begin,final}_write_processing): Define.
	(elf_hppa_tc_make_sections): Simplify now that much code has
	migrated into elf32_hppa_backend_{being,final}_write_processing.
1994-04-07 18:12:25 +00:00
Ian Lance Taylor
dfc1c00613 * All backends: Added BFD_JUMP_TABLE_DYNAMIC to target vector. 1994-04-07 01:58:27 +00:00
Ian Lance Taylor
6812b6077e * targets.c (bfd_target): Rearranged fields in target vector.
Removed _bfd_debug_info_start, _bfd_debug_info_end and
	_bfd_debug_info_accumulate, which were never used.
	(BFD_JUMP_TABLE_GENERIC, BFD_JUMP_TABLE_COPY): Defined.
	(BFD_JUMP_TABLE_CORE, BFD_JUMP_TABLE_ARCHIVE): Defined.
	(BFD_JUMP_TABLE_SYMBOLS, BFD_JUMP_TABLE_RELOCS): Defined.
	(BFD_JUMP_TABLE_WRITE, BFD_JUMP_TABLE_LINK): Defined.
	* All backends: Changed to use the new BFD_JUMP_TABLE_* macros
	rather than the single JUMP_TABLE macro.  Removed many of the
	weird macro definitions needed to support the monolithic
	JUMP_TABLE.
	* bfd-in.h (JUMP_TABLE): Removed.
	* libbfd-in.h: Define a bunch of macros, and declare a few
	functions, for use with the new BFD_JUMP_TABLE_* macros.
	* libbfd.c (_bfd_dummy_new_section_hook): Removed.
	(bfd_false): Set bfd_error_invalid_operation.
	(bfd_nullvoidptr): Likewise.
	(bfd_n1): New function.
	(_bfd_nocore_core_file_matches_executable_p): Renamed from
	_bfd_dummy_core_file_matches_executable_p.
	(_bfd_nocore_core_file_failing_command): Similar rename.  Set
	bfd_error_invalid_operation.
	(_bfd_nocore_core_file_failing_signal): Likewise.
	(_bfd_generic_get_section_contents): Renamed from
	bfd_generic_get_section_contents.  Changed all callers.
	(_bfd_generic_set_section_contents): Similar rename.
	* ieee.c: #if 0 out ieee_bfd_debug_info_start,
	ieee_bfd_debug_info_end, ieee_bfd_debug_info_accumulate.  They
	were never called.
	* bfd-in2.h: Rebuilt.
	* libbfd.h: Rebuilt.
1994-04-06 22:00:40 +00:00
Jeff Law
65b1ef4963 * Crude support for examining dynamic libraries.
* som.c (som_object_setup): Set DYNAMIC flag for SHL_MAGIC and
        DL_MAGIC objects.
        (som_prep_headers): Preserve the system_id for DYNAMIC objects.
        Use SHL_MAGIC as the magic number of the DYNAMIC flag is set.
        Write exec headers for DYNAMIC objects.
        (som_begin_writing): DYNAMIC objects have the same alignment
        restrictions as D_PAGED objects.
        (bfd_section_from_som_symbol): Treat DYNAMIC objects like EXEC_P
        objects.
        (object_flags): Add DYNAMIC.
1994-04-06 05:11:31 +00:00
Stan Shebs
08a431621f Tue Apr 5 17:48:52 1994 Stan Shebs (shebs@andros.cygnus.com)
* i386lynx.c, sparclynx.c (NAME): Remove embedded whitespace in
	macro uses, confuses some non-ANSI compilers.
1994-04-06 00:53:20 +00:00
Jeff Law
b2452d3918 * som.c (som_bfd_free_cached_info): Add missing PARAMS decl.
Don't free anything if we don't have a bfd_object.
        (som_close_and_cleanup): Call som_bfd_free_cached_info.
1994-04-05 22:50:42 +00:00
Ian Lance Taylor
856613c4fe * elf32-mips.c (mips_elf_final_link): Don't remove empty sections.
It turns out not to be required on Irix 5, and it causes problems
	if the sections happen to contain symbols.
1994-04-05 16:29:00 +00:00
Ian Lance Taylor
b3cee0a981 * aoutx.h (NAME(aout,canonicalize_reloc)): Don't error out if
section->relocation is NULL; malloc might have returned NULL when
	given a zero size if there were no relocations.
	* bout.c (b_out_canonicalize_reloc): Likewise.
	* coffcode.h (coff_canonicalize_reloc): Likewise.
	* ecoff.c (ecoff_canonicalize_reloc): Likewise.
	* elfcode.h (elf_canonicalize_reloc): Likewise.
	* mipsbsd.c (MY(canonicalize_reloc)): Likewise.
	* i386lynx.c (NAME(lynx,canonicalize_reloc)): Likewise.
	* nlmcode.h (nlm_canonicalize_reloc): Likewise.
	* som.c (som_canonicalize_reloc): Likewise.
	* hp300hpux.c (MY(slurp_reloc_table)): Likewise.  Also, if malloc
	returns NULL, don't report an error if we asked for zero bytes.
	* i386lynx.c (NAME(lynx,slurp_reloc_table)): If malloc returns
	NULL, don't report an error if we asked for zero bytes.
	* nlmcode.h (nlm_slurp_reloc_fixups): Likewise.
1994-04-05 15:32:49 +00:00
Ian Lance Taylor
c4dd531f11 * aoutx.h (NAME(aout,bfd_free_cached_info)): Don't free anything
if we don't have a bfd_object.
1994-04-04 23:44:13 +00:00
Ian Lance Taylor
4002f18a05 Made sure that every call to bfd_read, bfd_write, and bfd_seek
checks the return value and handled bfd_error correctly.  These
	changes are not itemised.
1994-04-04 22:49:04 +00:00
Ian Lance Taylor
f3a14a9ee2 * Makefile.in: Rebuilt dependencies. 1994-04-04 20:04:52 +00:00
Peter Schauer
3e2993b648 * aix386-core.c (aix386_bfd_is_local_label): Correct cast from
asection to asymbol.
	* ptrace-core.c (ptrace_unix_bfd_is_local_label):  Correct cast from
	bfd to asymbol.
	* trad-core.c (trad_unix_bfd_is_local_label):  Correct cast from
	asection to asymbol.
1994-04-04 17:59:36 +00:00
Jeff Law
1f46bba327 * som.c (som_slurp_string_table): Use malloc to allocate space
for the cached copy of the native string table.
        (som_slurp_symbol_table): Likewise for the native symbol table.
        (som_slurp_reloc_table): Likewise for the native and generic
        relocation tables.
        (som_bfd_free_cached_info): Free the cached native strings,
        symbols, and relocations.  Also free the canonical cached relocations.
1994-04-04 01:28:51 +00:00
Ian Lance Taylor
d6d6b18ab2 * aoutx.h (aout_link_write_symbols): If keep_memory is false, make
sure the symbol name is stored in permanent memory before adding
	it to the string table.
1994-04-01 23:01:53 +00:00
Ian Lance Taylor
dfe09c4926 * archive.c (_bfd_write_archive_contents): Once we've found an
object, don't bother to look for more when deciding whether to
	build a map.
	(compute_and_write_armap): After adding the symbols for a BFD,
	call bfd_free_cached_info on it.
1994-04-01 22:12:00 +00:00
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