Commit Graph

1664 Commits

Author SHA1 Message Date
Steve Chamberlain c974e19ef4 * libcoff-in.h (pe_data_type.in_reloc_p): New. 1995-10-16 21:46:48 +00:00
Ian Lance Taylor 22a35f0b05 * elf32-mips.c (mips_elf_symbol_processing): Set SEC_ALLOC, not
SEC_NO_FLAGS, for .acommon section.  From Peter Schauer
	<Peter.Schauer@Regent.E-Technik.TU-Muenchen.DE>.
1995-10-16 14:54:17 +00:00
Michael Meissner fb417a2138 Add in_reloc_p, cloned from coff-i386.c 1995-10-15 01:37:23 +00:00
Steve Chamberlain b1e463692c Fri Oct 13 11:22:01 1995 steve chamberlain <sac@slash.cygnus.com>
* coff-arm.c (in_reloc_p): New.
	* coff-i386.c (in_reloc_p): New.
	* coffcode.h: Allways include peicode.h if COFF_WITH_PE.
	(coff_write_object_contents): Only set has_reloc_section
	if PE_IMAGE.
	* cofflink.c (_bfd_coff_generic_relocate_section): Call
	in_reloc_p to decide if reloc should be emitted.
	* libcoff.h (pe_data_type.in_reloc_p): New.
	* peicode.h (pe_mkobject): Initialize in_reloc_p.
1995-10-13 18:28:31 +00:00
Ian Lance Taylor ee9f09cd26 * elflink.h (elf_link_add_object_symbols): Correct conditions
under which type and size change warnings are issued.
1995-10-11 04:50:20 +00:00
Ian Lance Taylor 78b31b6bb8 x 1995-10-10 22:51:22 +00:00
Fred Fish 9dd7e56f74 * Makefile.in (FLAGS_TO_PASS): Remote BISON. 1995-10-10 19:23:54 +00:00
Ian Lance Taylor 8235c11240 * elflink.h (elf_link_add_object_symbols): Don't warn about
changing the size or type if the old definition was weak.
1995-10-10 05:30:17 +00:00
Ian Lance Taylor 49488f2b2d * coffcode.h (combined_entry_type): Add fix_line field.
(coff_slurp_line_table): Warn if we try to set the lineno field of
	a symbol twice.
	(coff_slurp_symbol_table): If RS6000COFF_C, handle C_BINCL and
	C_EINCL by setting fix_line.  Fix C_BSTAT symbol value.
	* coffgen.c (coff_mangle_symbols): Handle fix_line.
	(coff_write_symbol): Only use N_DEBUG if the symbol is in the
	absolute section.
	(coff_print_symbol): Print fix_value symbols in a useful fashion.
	* libcoff.h: Rebuild.
1995-10-09 23:32:22 +00:00
Ian Lance Taylor 5f710a3a89 * libcoff-in.h (struct xcoff_tdata): Define.
(xcoff_data): Define.
	* bfd.c (struct _bfd): Add xcoff_obj_data field to tdata union.
	* bfd-in2.h, libcoff.h: Rebuild.
	* coff-rs6000.c (xcoff_mkobject): New static function.
	(coff_mkobject): Define.
	(xcoff_copy_private_bfd_data): New static function.
	(coff_bfd_copy_private_bfd_data): Define.
	(rs6000coff_howto_table): Change R_TOC complain_on_overflow from
	signed to bitfield.
	(rs6000coff_vec): Add DYNAMIC to object_flags.
	* coffcode.h (sec_to_styp_flags): If RS6000COFF_C, handle .pad and
	.loader sections specially.
	(coff_new_section_hook): If RS6000COFF_C, get the .text and .data
	section alignment from the XCOFF tdata information.
	(coff_mkobject_hook): If RS6000COFF_C, set DYNAMIC based on
	F_SHROBJ, and copy the extra a.out header information into the
	XCOFF tdata structure.
	(coff_write_object_contents): If RS6000COFF_C, set F_SHROBJ,
	F_DYNLOAD and the extra a.out header information.
	(coff_slurp_symbol_table): Set BSF_NOT_AT_END for a C_EXT or
	C_HIDEXT symbol with attached csect information.
	* coffswap.h (coff_swap_aouthdr_in): If RS6000COFF_C, swap
	in the o_maxdata field.
	(coff_swap_aouthdr_out): If RS6000COFF_C, swap extra XCOFF fields.
	* coffgen.c (coff_renumber_symbols): Don't move any symbol to the
	end if BSF_NOT_AT_END is set.
1995-10-09 21:19:53 +00:00
Ian Lance Taylor 3f2c5b2d2f * coffcode.h (coff_slurp_symbol_table): Set BSF_NOT_AT_END for an
XCOFF XTY_LD symbol.
1995-10-09 15:40:38 +00:00
Ian Lance Taylor 0322af0d62 * targets.c (bfd_target): Rename _bfd_read_ar_hdr field to
_bfd_read_ar_hdr_fn.
	* libbfd-in.h (_bfd_read_ar_hdr): Update accordingly.
	* bfd-in2.h, libbfd.h: Rebuild.
	* archive.c (_bfd_get_elt_at_filepos): Cast _bfd_read_ar_hdr
	return value.
	(do_slurp_bsd_armap, do_slurp_coff_armap): Likewise.
	(bfd_slurp_bsd_armap_f2): Likewise.
	(_bfd_slurp_extended_name_table): Likewise.
1995-10-09 15:29:04 +00:00
Ian Lance Taylor 4372f33ffb * coffgen.c (coff_fix_symbol_name): Don't try to set up file
auxent if there isn't one.
	(coff_write_symbols): If there is no file auxent, use SYMNMLEN
	rather than FILNMLEN as the maximum name length.
1995-10-06 22:35:01 +00:00
Ken Raeburn 3266eaffb7 Mon Sep 25 22:49:32 1995 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* archive.c (bfd_get_next_mapent): Return BFD_NO_MORE_SYMBOLS when the symbol
table is empty.

* elf32-m68k.c (elf_m68k_size_dynamic_sections): Don't reserve space for
section symbols, since we don't output them either.
(elf_m68k_adjust_dynindx): Removed.

* ptrace-core.c (rawptr): Make it a local variable of ptrace_unix_core_file_p.
* trad-core.c (rawptr): Likewise, for trad_unix_core_file_p.
1995-10-06 21:30:51 +00:00
Ian Lance Taylor 0fc9ada91e * coffcode.h (bfd_coff_backend_data): Add new field
_bfd_coff_print_aux.
	(bfd_coff_print_aux): New static function.
	(coff_pointerize_aux_hook (RS6000COFF_C version)): Pointerize the
	scnlen field of an XTY_LD csect aux entry.
	(coff_print_aux): New static function.
	(coff_slurp_symbol_table): Don't pointerize scnlen field; now done
	in coff_pointerize_aux_hook.
	(bfd_coff_std_swap_table): Initialize new field.
	* coffgen.c (coff_print_symbol): Call bfd_coff_print_aux.
	* libcoff.h: Rebuild.
	* coff-alpha.c (alpha_ecoff_backend_data): Initialize new field.
	* coff-mips.c (mips_ecoff_backend_data): Likewise.
1995-10-06 20:36:26 +00:00
Ian Lance Taylor 7860fe3846 * coffcode.h (coff_write_object_contents): On AIX, clear F_RELFLG
if there are symbols, for native AIX ld compatibility.
1995-10-06 19:49:48 +00:00
Ian Lance Taylor c80cc8332c * coffcode.h (bfd_coff_backend_data): Add new field
_bfd_coff_pointerize_aux_hook.
	(coff_pointerize_aux_hook): Define as a function if RS6000COFF_C
	or I960, and as 0 otherwise.
	(bfd_coff_std_swap_table): Initialize new field.
	* libcoff.h: Rebuild.
	* coffgen.c (coff_pointerize_aux): Change parameters  to take
	symbol pointer instead of type and class, and to take aux index.
	Call _bfd_coff_pointerize_aux_hook if it is defined.
	(coff_get_normalized_symtab): Always call coff_pointerize_aux.
	* coff-alpha.c (alpha_ecoff_backend_data): Initialize all fields.
	* coff-mips.c (mips_ecoff_backend_data): Likewise.
1995-10-06 19:19:48 +00:00
Ian Lance Taylor d11e6b5276 * coffcode.h (OTHER_GLOBAL_CLASS): Do not define to be C_HIDEXT
if RS6000COFF_C.
1995-10-06 18:00:29 +00:00
Michael Meissner 45b5d2f039 Fix typo in last change 1995-10-06 16:37:31 +00:00
Michael Meissner 249479faf1 Add NT/MAC object file formats to powerpc eabi. 1995-10-06 16:25:45 +00:00
Ian Lance Taylor c53fac125a * targets.c (bfd_target): Add _bfd_read_ar_hdr field. Modify
BFD_JUMP_TABLE_ARCHIVE accordingly.
	* libbfd-in.h (_bfd_snarf_ar_hdr): Don't declare.
	(_bfd_compute_and_write_armap): Declare.
	(_bfd_generic_read_ar_hdr): Declare.
	(_bfd_read_ar_hdr): Define.
	(_bfd_noarchive_read_ar_hdr): Define.
	(_bfd_archive_bsd_read_ar_hdr): Define.
	(_bfd_archive_coff_read_ar_hdr): Define.
	* archive.c: Change all callers of _bfd_snarf_ar_hdr to call
	_bfd_read_ar_hdr instead.
	(_bfd_generic_read_ar_hdr): Rename from _bfd_snarf_ar_hdr.
	(_bfd_compute_and_write_armap): Rename from
	compute_and_write_armap.  Make non-static.  Change all callers.
	* ecoff.c (_bfd_ecoff_slurp_armap): Call _bfd_read_ar_hdr rather
	than _bfd_snarf_ar_hdr.
	* aout-target.h (MY_read_ar_hdr): Define if not defined.
	* ieee.c (ieee_read_ar_hdr): Define.
	* libecoff.h (_bfd_ecoff_read_ar_hdr): Define.
	* oasys.c (oasys_read_ar_hdr): Define.
	* som.c (som_read_ar_hdr): Define.
	* bfd-in2.h, libbfd.h: Rebuild.
1995-10-06 16:15:35 +00:00
Steve Chamberlain f8e47484d9 * peicode.c (coff_swap_filehdr_in): If symptr is
zero, there aren't any symbols, even if nsyms is set.
1995-10-05 21:07:24 +00:00
Ian Lance Taylor aca736871c * libecoff.h (struct ecoff_backend_data): Add adjust_headers
field.
	* ecoff.c (ecoff_sec_to_styp_flags): Check for various Alpha
	sections, and set styp correctly for them: .got, .hash, .dynamic,
	.liblist, .rel.dyn, .conflic, .dynstr, .dynsym, .comment.
	(_bfd_ecoff_styp_to_sec_flags): Check for various Alpha section
	types.
	(ecoff_sort_hdrs): New static function.
	(ecoff_compute_section_file_positions): Return boolean, not void.
	Sort the sections by VMA before looking through them.  Put the
	first non SEC_ALLOC section on a new page.  Put every SEC_ALLOC
	section on an appropriate boundary within the page.
	(ecoff_compute_reloc_file_positions): Check return value of
	ecoff_compute_section_file_positions.
	(_bfd_ecoff_set_section_contents): Likewise.
	(_bfd_ecoff_write_object_contents): Check for various Alpha
	section types when incrementing text_size and data_size.  Call
	adjust_headers backend function if it exists.
	* coff-alpha.c (alpha_adjust_headers): New static function.
	(alpha_ecoff_backend_data): Initialize adjust_headers field.
	* coff-mips.c (mips_ecoff_backend_data): Likewise.
PR 8141.
1995-10-05 17:48:32 +00:00
Ian Lance Taylor 2b874a2df4 * hosts/i386bsd.h: Restore file incorrectly deleted on Sep 6. 1995-10-05 15:46:40 +00:00
Jeff Law c780e5dbaf * rs6000-core.c (CORE_VERSION_1): Use CORE_VERSION_1 instead
of ALTERNATE_AIX_CORE_FORMAT.
	* configure.in (aix4): No longer need CORE_FLAGS.
	* configure: Updated.
1995-10-05 00:21:25 +00:00
Ken Raeburn 2a01c351e3 NS32k changes from Ian Dall:
* aoutx.h (MY_final_link_relocate, MY_relocate_contents): New macros.
(aout_link_input_section_std, aout_link_input_section_ext,
aout_link_reloc_link_order): Call them instead of _bfd_* versions.
* aout-target.h (MY_exec_header_not_counted): New macro, defaults to zero.
(backend_data): Use it instead of hardcoded zero.

* aout-ns32k.c (CTOR_TABLE_RELOC_HOWTO): New macro.
(MY_swap_std_reloc_out): Use udata.i for KEEPIT, don't call stoi.

* ns32knetbsd.c: Include bfd.h.
(MY_text_includes_header, MY_bfd_reloc_type_lookup): New macros.
(MY_bfd_reloc_type_lookup): Declare function too.
* pc532-mach.c (set_sizes): Don't declare.
(MY_text_includes_header, MY_exec_header_not_counted): Define.
(backend_data, MY_backend_data): Don't define.

* config.bfd: Treat ns32k-pc532-ux* like ns32k-pc532-mach*, and ns32k-*-lites*
like ns32k-*-netbsd*.

* hosts/nbsd.h: Swap order of sys/vmparam.h and sys/param.h, to compile on
lites.
1995-10-04 20:25:21 +00:00
Ian Lance Taylor 5944d75b46 * coffcode.h (coff_write_object_contents): Restore setting
f_timdat to 0, deleted on August 22.
1995-10-04 18:20:08 +00:00
Steve Chamberlain db344f829d Tue Oct 3 16:28:32 1995 steve chamberlain <sac@slash.cygnus.com>
* coffcode.h (coff_bfd_copy_private_symbol_data,
	coff_bfd_copy_private_section_data,
	coff_bfd_copy_private_bfd_data): ifdef to allow overrides.
	* peicode.h (coff_bfd_copy_private_bfd_data): New
	(pe_bfd_copy_private_bfd_data): New.
	(coff_swap_scnhdr_in): Swap bss size into the right place.
	(pe_print_private_bfd_data): Add some newlines.
1995-10-03 23:44:34 +00:00
Jeff Law 704257cb1b Remove last (incorrect) change. 1995-10-03 19:26:36 +00:00
Jeff Law 97f1feda83 * som.c (setup_sections): Don't die if a space has no subspaces. 1995-10-03 18:48:38 +00:00
Ian Lance Taylor 3d7c42c988 * elflink.h (elf_link_add_object_symbols): Don't let a weak
dynamic symbol override a common symbol.  Don't change the size or
	type if they have been set and the new symbol is not a definition.
	Warn if the size or type changes.
1995-10-02 18:11:12 +00:00
Jeff Law 709af562b8 * som.c (som_begin_writing): Don't write the symbol table or
symbol	strings.
	(som_finish_writing): Write them here.  Place them after the
	subspace data, but before the relocs.

Works around a truely stupid bug in the hpux8/hpux9 linker.  Fixes all
known link-time problems with -mlinker-opt.
1995-10-01 07:38:03 +00:00
Stan Shebs 7009e4519e Description of PowerMac changes. 1995-09-29 02:16:05 +00:00
Steve Chamberlain b91537be61 Thu Sep 28 17:06:23 1995 steve chamberlain <sac@slash.cygnus.com>
* binary.c (binary_get_symtab): Return an empty string on error.
	* opncls.c (bfd_fdpenr): Change WIN32 restriction to WINGDB.
1995-09-29 00:09:21 +00:00
Ian Lance Taylor 69fd4fddca * hp300hpux.c (convert_sym_type): Treat secondary symbols as weak
symbols rather than as indirect symbols.
	(MY(slurp_symbol_table)): Don't do anything special about
	secondary symbols.
1995-09-28 22:27:49 +00:00
Kim Knuttila 30360a6f96 Updated comments 1995-09-28 19:40:52 +00:00
Ian Lance Taylor 46b5a8926d * coffcode.h (coff_new_section_hook): Make sure that the alignment
of .ctors and .dtors sections is no larger than 2.
PR 8006.
1995-09-28 17:57:06 +00:00
Ian Lance Taylor 9db5923077 * sunos.c (sunos_add_one_symbol): Don't change
bfd_link_hash_common to bfd_link_hash_new, since it may be on the
	undef list.
	(bfd_sunos_record_link_assignment): Don't put __DYNAMIC in the
	dynamic symbols when creating a shared library.
	(sunos_scan_ext_relocs): Handle relocs correctly when creating a
	shared library.
	(sunos_scan_dynamic_symbol): Don't mark the __DYNAMIC symbol as
	written even if it is not defined in a regular object.
	(sunos_write_dynamic_symbol): Use plt_offset for the address of
	the jump table reloc.  Add an assertion.  Use RELOC_JMP_SLOT
	rather than the constant 22.
	(sunos_check_dynamic_reloc): Handle creating a shared library.
	(sunos_finish_dynamic_link): Set the first entry in the GOT to
	zero when creating a shared library.
	* aoutx.h (NAME(aout,final_link)): If there is a symbol __DYNAMIC,
	write it out at the start of the symbol table.
1995-09-28 16:30:54 +00:00
Ian Lance Taylor 20d1e233b6 * Makefile.in (BFD32_BACKENDS): Add coff-arm.o. 1995-09-28 15:21:35 +00:00
David Edelsohn a11e10fe44 * config.bfd: Add arm-*-coff.
* configure.in, configure: Add armcoff_{little,big}_vec.
	* targets.c (armcoff_{little,big}_vec): Declare.
	(bfd_target_vector): Add armcoff_{little,big}_vec.
	* coff-arm.c (armcoff_{little,big}_vec): Always define.
1995-09-28 08:08:49 +00:00
Ian Lance Taylor 99062cfcc9 * targets.c (bfd_find_target): Remove debugging code. 1995-09-27 14:38:03 +00:00
Kim Knuttila deacbe0fa0 PPC bfd support 1995-09-27 11:40:15 +00:00
Ian Lance Taylor e6cb7b411b * bfd.c (bfd_assert): Remove \n from string passed to
_bfd_error_handler.
1995-09-26 18:45:16 +00:00
Michael Meissner d22b02e0dc Flesh out branch prediction support. 1995-09-26 18:26:32 +00:00
Ian Lance Taylor 1af85fbbbb * coff-i386.c: (TWO_DATA_SECS): Don't define.
* coffcode.h (bfd_coff_backend_data): Remove _bfd_make_section_hook.
	(bfd_coff_make_section_hook): Don't define.
	(coff_make_section_hook): Remove.
	(sec_to_styp_flags): Remove TWO_DATA_SECS case.
	(styp_to_sec_flags): Likewise.
	(coff_write_object_contents): Likewise.
	(bfd_coff_std_swap_table): Don't initialize make_section_hook
	field.
	* libcoff.h: Rebuild.
	* coffgen.c (make_a_section_from_file): Just call
	bfd_make_section_anyway, not bfd_make_section or
	bfd_coff_make_section_hook.
	* ecoff.c (_bfd_ecoff_make_section_hook): Remove.
	* libecoff.h (_bfd_ecoff_make_section_hook): Don't declare.
	* coff-alpha.c (alpha_ecoff_backend_data): Don't initialize
	make_section_hook field.
	* coff-mips.c (mips_ecoff_backend_data): Likewise.
1995-09-26 17:58:38 +00:00
Ian Lance Taylor fcf490c05f * aoutx.h (translate_from_native_sym_flags): Don't try to stuff
pointers into value field for warning and indirect symbols; just
	leave the value field alone.
	* linker.c (generic_link_add_symbol_list): Use next symbol for
	warning and indirect symbols, rather than looking in symbol value.
	* ecoff.c (ecoff_set_symbol_info): Remove indirect_ptr_ptr
	parameter.  Change all callers.  Remove support for indirect
	symbols; it didn't work anyhow.
	(_bfd_ecoff_slurp_symbol_table): Remove indirect_ptr variable.
	* syms.c: Change comments about BSF_WARNING and BSF_INDIRECT.
	* bfd-in2.h: Rebuild.
1995-09-26 16:56:28 +00:00
Ian Lance Taylor 7a7fbffb25 * aout-adobe.c (aout_adobe_callback): Use _bfd_error_handler
rather than a direct fprintf.
	* archive.c (_bfd_write_archive_contents): Likewise.
	* coffcode.h (coff_slurp_symbol_table): Likewise.
	* elf32-ppc.c (ppc_elf_merge_private_bfd_data): Likewise.
	(ppc_elf_unsupported_reloc): Likewise.
	(ppc_elf_relocate_section): Likewise.
	* i386linux.c (linux_tally_symbols): Likewise.
	(linux_finish_dynamic_link): Likewise.
	* osf-core.c (osf_core_core_file_p): Likewise.
	* rs6000-core.c (rs6000coff_get_section_contents): Likewise.
	* som.c (som_sizeof_headers): Likewise.
	* srec.c (srec_bad_byte): Likewise.
	* bfd.c (bfd_assert): Likewise.  Also change file to be const.
	* libbfd-in.h (bfd_assert): Declare first parameter const.
	* libbfd.h: Rebuild.
	* coff-a29k.c (a29k_reloc): Don't bother to fprintf; returning
	bfd_reloc_overflow is enough.
	* coff-h8300.c (rtype2howto): Don't bother to fprintf; just abort.
	* coff-h8500.c (rtype2howto): Likewise.
	* coff-z8k.c (rtype2howto): Likewise.
	* coffcode.h (dummy_reloc16_extra_cases): Likewise.
	* elf.c (_bfd_elf_get_lineno): Likewise.
	(_bfd_elf_no_info_to_howto): Likewise.
	(_bfd_elf_no_info_to_howto_rel): Likewise.
	* hp300hpux.c (convert_sym_type): Likewise.
	(MY(swap_std_reloc_in)): Likewise.
	* elf.c (bfd_section_from_shdr): Remove #if 0 sections.
1995-09-25 21:31:29 +00:00
Ian Lance Taylor f1c6dd5d16 * libaout.h (struct aoutdata): Add line_buf field.
* aoutx.h (NAME(aout,find_nearest_line)): Remove statics buffer
	and filename_buffer.  Instead, use a malloc buffer stored in the
	new line_buf field.  Remove length restrictions.
1995-09-25 20:55:50 +00:00
Ian Lance Taylor f0500a41d0 * coffgen.c (string_size): Remove static variable.
(debug_string_size, debug_string_section): Likewise.
	(coff_fix_symbol_name): Add string_size_p, debug_string_section_p,
	and debug_string_size_p parameters.  Use them instead of the
	global variables.  Change all callers.
	(coff_write_symbol): Likewise.
	(coff_write_alien_symbol, coff_write_native_symbol): Likewise.
	(coff_write_symbols): Add local variables to replace removed
	global variables.
1995-09-25 20:25:12 +00:00
Michael Meissner cc47d19a93 Fix previous change 1995-09-25 20:07:26 +00:00
Ian Lance Taylor 25b5a53dac * libcoff-in.h (struct coff_section_tdata): Add offset, i,
function, and line_base fields.
	* libcoff.h: Rebuild.
	* coffgen.c (coff_find_nearest_line): Use section tdata to cache
	information, rather than using static variables.
1995-09-25 20:03:11 +00:00
Ian Lance Taylor 641ac26a06 * sunos.c (sunos_read_dynamic_info): Adjust offsets in an NMAGIC
file.  From Peter DeWolf <pld@amt.tay1.dec.com>.
1995-09-25 16:45:16 +00:00
Ian Lance Taylor 81449d47c5 * init.c (initialized): Remove static variable.
(bfd_init): Don't bother setting initialized.
	(bfd_check_init): Remove.
	* opncls.c (_bfd_new_bfd): Don't call bfd_check_init.
	* libbfd.h: Rebuild.
1995-09-25 15:50:25 +00:00
Peter Schauer 138b9b81e3 * rs6000-core.c (rs6000coff_core_p): Don't check the core file
size for full core dumps. Copy core file header to private data.
	(rs6000coff_core_file_failing_command,
	rs6000coff_core_file_failing_signal):  New functions to extract
	the file name and terminating signal from the core file.
	* coff-rs6000.c:  Use them.
1995-09-23 11:04:45 +00:00
Ian Lance Taylor 2ffbb79ae4 Change arch info to be const, initialized at compile time.
* archures.c: Reindent many functions.  Change CONST to const.
	(bfd_arch_info_type): Make arch_name const.  Remove disassemble;
	nothing set it anyhow.  Make next const.
	(bfd_arch_info_list): Remove.
	(bfd_archures_list): Rename from archures_init_table.  Change from
	a table of function pointers to a table of bfd_arch_info_type
	structure addresses.
	(bfd_scan_arch): Rewrite accordingly.  Return a const pointer.
	(bfd_lookup_arch): Likewise.
	(bfd_set_arch_info): Rewrite accordingly.  Change argument to be a
	const pointer.
	(bfd_default_arch_struct): Make const.
	(bfd_arch_init, bfd_arch_linkin): Remove.
	(bfd_get_arch_info): Return a const pointer.
	* init.c (bfd_init): Don't call bfd_arch_init.
	* bfd.c (struct _bfd): Make arch_info const.
	* bfd-in2.h: Rebuild.
	* libbfd.h: Rebuild.
	* configure.in: Put & before everything in $selarchs.
	* configure: Rebuild.
	* cpu-*.c: Change bfd_*_arch from a function which calls
	bfd_arch_linkin to a const structure.
	* ieee.c (ieee_object_p): Make arch const.
1995-09-22 22:06:51 +00:00
Michael Meissner 02f85cda33 Start work to all full PowerPC V.4 reloc support. 1995-09-22 20:30:18 +00:00
Michael Meissner dd82c578be Add support -mrelocatable-lib 1995-09-22 02:30:57 +00:00
Ian Lance Taylor e18c4e8f8f * coffcode.h (coff_write_object_contents): Clear the vstamp field
in the a.out header.
1995-09-20 23:09:09 +00:00
Ian Lance Taylor f69e888e4d * aoutx.h (NAME(aout,swap_ext_reloc_out)): Don't set r_extern for
a reloc against a local symbol, even if it's not a section.
1995-09-20 16:10:18 +00:00
Ian Lance Taylor a56552441f * targets.c (bfd_target): Remove unused align_power_min field.
* bfd-in2.h: Rebuild.
	* All backends: Remove initialization of align_power_min.
1995-09-19 21:11:46 +00:00
Steve Chamberlain 500d7394cf Tue Sep 19 14:02:21 1995 steve chamberlain <sac@slash.cygnus.com>
* peicode.h (coff_swap_scnhdr_out): Get sizes for BSS right.
	(pr 8045)
1995-09-19 21:04:02 +00:00
Ian Lance Taylor 049df0a849 Mon Sep 18 14:35:01 1995 Arne H. Juul <arnej@pvv.unit.no>
* config.bfd (mips-dec-netbsd*): New target.
	* configure.host (mips-dec-netbsd*): New host.
	* configure.in (mips-dec-netbsd*): New native.
	* configure: Rebuild.
1995-09-18 18:37:58 +00:00
Ian Lance Taylor 1862bbd8d9 Make the COFF backend linker merge common types:
* cofflink.c (struct coff_debug_merge_element): Define.
	(struct coff_debug_merge_type): Define.
	(struct coff_debug_merge_hash_entry): Define.
	(struct coff_debug_merge_hash_table): Define.
	(coff_debug_merge_hash_table_init): Define.
	(coff_debug_merge_hash_table_free): Define.
	(coff_debug_merge_hash_lookup): Define.
	(struct coff_final_link_info): Add debug_merge field.
	(coff_debug_merge_hash_newfunc): New static function.
	(_bfd_coff_final_link): Allocate and free debug_merge table.
	(coff_link_input_bfd): Merge identical enum, struct and union
	types.
PR 7145.
1995-09-15 14:29:05 +00:00
Ian Lance Taylor a208a70f7a Convert i960 COFF to use COFF backend linker.
* coff-i960.c (coff_i960_relocate): Use a coff_section_data
	structure to store the symbol being used.
	(coff_i960_start_final_link): New static function.
	(coff_i960_relocate_section): New static function.
	(coff_i960_adjust_symndx): New static function.
	(coff_start_final_link): Define.
	(coff_relocate_section): Define.
	(coff_adjust_symndx): Define.
	* coffcode.h (bfd_coff_backend_data): Add new callback function
	_bfd_coff_start_final_link.
	(bfd_coff_start_final_link): Define.
	(coff_start_final_link): Define if not defined.
	(bfd_coff_std_swap_table): Add coff_start_final_link.
	* cofflink.c (_bfd_coff_internal_syment_name): Make globally
	visible.
	(_bfd_coff_final_link): Call bfd_coff_start_final_link if the
	function callback is not NULL.
	* libcoff-in.h (struct coff_section_tdata): Add tdata field.
	(_bfd_coff_internal_syment_name): Declare.
	* libcoff.h: Rebuild.
	* configure.in (icoff_big_vec): Add cofflink.o.
	(icoff_little_vec): Likewise.
	* configure: Rebuild.
1995-09-14 19:03:21 +00:00
Fred Fish f0abedbe98 * Makefile.in (clean-info): Remove extraneous tab from line
following action.
1995-09-14 00:39:41 +00:00
Ian Lance Taylor aa4b3dc509 * cofflink.c (coff_link_input_bfd): Fail if a section with no
contents has relocs.
PR 7979.
1995-09-13 17:29:05 +00:00
Ian Lance Taylor 9521bac394 * Makefile.in (do_maintainer_clean): Rename from do_realclean.
(maintainer-clean): Rename from realclean, passing
	maintainer-clean down to subdirectories, but leave realclean as a
	synonym.
1995-09-12 22:16:14 +00:00
Ian Lance Taylor 4ca6381165 * linker.c (_bfd_generic_link_add_one_symbol): Pass symbol name to
warning callback.
1995-09-12 20:31:29 +00:00
Steve Chamberlain beee31b1a2 Thu Sep 7 12:45:34 1995 steve chamberlain <sac@slash.cygnus.com>
* coffcode.h (coff_compute_section_file_positions): Keep the
	raw size safe.
	(coff_write_object_contents): Remember if it's a relocatable
	file.
	* libcoff-in.h (pe_data_type): New member 'has_reloc_section'
	* peicode.h (coff_swap_filehdr_out): Clear not-reloc flag
	if relocatable file. Swap out saved raw size.
1995-09-12 19:28:30 +00:00
Ian Lance Taylor 5aa4c3ffda * dep-in.sed: Remove config.h from generated dependencies. 1995-09-12 19:19:44 +00:00
Ian Lance Taylor 396aaeb2b6 * sunos.c (sunos_slurp_dynamic_symtab): New static function,
broken out of sunos_canonicalize_dynamic_symtab.
	(sunos_canonicalize_dynamic_symtab): Call new function
	sunos_slurp_dynamic_symtab.
	(sunos_add_dynamic_symbols): Add three new parameters.  Return the
	dynamic symbol table to the caller.
	* aoutx.h (aout_link_add_symbols): Permit add_dynamic_symbols
	callback to override the symbols being read.
	* libaout.h (struct aout_backend_data): Add three new parameters
	to add_dynamic_symbols callback.
1995-09-12 18:59:24 +00:00
Ian Lance Taylor ae115e5114 Extensive minor changes to avoid various gcc warnings. Also:
* Makefile.in (BFD32_BACKENDS): Remove coff-arm.o.
	* archures.c (bfd_arch_info_type): Change mach field from long to
	unsigned long.
	(bfd_lookup_arch): Change machine parameter from long to unsigned
	long.
1995-09-12 16:23:25 +00:00
Ian Lance Taylor b088e4b229 * sunos.c (sunos_scan_std_relocs): Fix BFD_ASSERT: it's OK to find
a symbol with a non-zero plt_offset.
1995-09-11 14:56:49 +00:00
Ian Lance Taylor 2b71e1e4d7 * elfcode.h (align_file_position): Remove; not used. 1995-09-08 22:43:31 +00:00
Ian Lance Taylor 1dff79026a * configure.in: Only check for <sys/procfs.h> on a native system,
and make sure it defines prstatus_t.
	* configure: Rebuild.
1995-09-08 15:50:29 +00:00
Ian Lance Taylor 535c89f0a5 * sunos.c (sunos_write_dynamic_symbol): Correct m68k abort test. 1995-09-07 20:29:24 +00:00
Ian Lance Taylor a7873a6cbd tweak last change 1995-09-07 17:09:48 +00:00
Ian Lance Taylor 936b870cfd * config.in: Rename from config.h.in.
* configure.in: Call AC_CONFIG_HEADER with config.h:config.in.
	* configure: Rebuild.
	* Makefile.in (stamp-h): Set CONFIG_HEADERS to config.h:config.in
	when calling config.status.
1995-09-07 17:03:55 +00:00
Ian Lance Taylor 870015b1b8 * Makefile.in (do_distclean): Remove config.h and stamp-h.
(Makefile): Just rebuild Makefile.
	(config.h, stamp-h): New targets.
	* configure.in: Create stamp-h when rebuilding config.h.
	* configure: Rebuild.
1995-09-07 16:50:40 +00:00
Ian Lance Taylor b7577823b6 * configure.in: Call AC_CONFIG_HEADER. Substitute
HOST_64BIT_LONG.  Check that various header files exist.  Check
	that fcntl exists.  Call BFD_BINARY_FOPEN.  Check whether malloc
	and/or free need to be declared.  Don't make a link to sysdep.h.
	Define TRAD_HEADER for various hosts.
	* configure: Rebuild.
	* configure.host: Don't set my_host.  Add definitions taken from
	host header files for various entries.  Remove entries which now
	do nothing.
	* acconfig.h: New file.
	* config.h.in: New file, built by autoheader.
	* sysdep.h: New file.
	* Makefile.in (do_distclean): Don't remove sysdep.h.
	(RECONFIG): Remove.
	(LOCAL_H_DEPS): New variable.
	($(BFD_LIBS)): Use $(LOCAL_H_DEPS) rather than libbfd.h and
	$(RECONFIG).
	($(BFD_MACHINES), $(BFD_BACKENDS)): Likewise.
	($(OPTIONAL_BACKENDS)): Likewise.
	(stmp-bfd.h): Just substitute for BFD_HOST_64BIT_LONG, rather than
	looking through sysdep.h.
	* bfd-in.h (BFD_HOST_64BIT_LONG): Define; set by Makefile.
	(BFD_HOST_64_BIT): Define based on BFD_HOST_64BIT_LONG.
	(fprintf_vma, sprintf_vma): Likewise.
	(int64_type, uint64_type): Don't define.
	* bfd-in2.h: Rebuild.
	* archures.c, bfd.c, srec.c: Include <ctype.h>.
	* elfcore.h: Check HAVE_SYS_PROCFS_H rather than HAVE_PROCFS.
	* lynx-core.c: Include stuff from old hosts/lynx.h.
	* opncls.c (bfd_fdopenr): Check HAVE_FNCTL and defined (F_GETFL),
	rather than NO_FCNTL.
	* targets.c (bfd_target_list): Check HOST_HPPAHPUX and ! __STDC__
	rather than NATIVE_HPPAHPUX_COMPILER.
	* trad-core.c: Don't include <errno.h>.  Include TRAD_HEADER if it
	is defined.
	* hosts/*.h: Remove all header files which merely include,
	declare, and define things.  Leave header files which define
	information needed by trad-core.c.
1995-09-06 22:53:43 +00:00
Ian Lance Taylor 4c2e4d0e01 * aclocal.m4: Don't try to grep ../Makefile if it doesn't exist.
* configure: Rebuild.
1995-09-06 00:02:00 +00:00
Ian Lance Taylor 7a93ebdd58 * coff-sparc.c (CALC_ADDEND): Don't set the addend to the value of
a global symbol.
PR 7908.
1995-09-05 23:36:49 +00:00
Jason Molenda 866bb9e5c1 * config.bfd: i386pe_ve -> i386pe_vec. 1995-09-05 19:50:50 +00:00
Ian Lance Taylor f515fb2f93 * configure.host: Incorporate host Makefile fragments by setting
shell variables.
	* configure.in: Call AC_PROG_CC.  Substitute CFLAGS, HDEFINES and
	AR.  Call AC_PROG_INSTALL.  Substitute CC_FOR_BUILD, choosing a
	value based on whether the code is being compiled by a cross
	compiler.  Don't substitute host_makefile_frag or frags.
	* aclocal.m4: New file to define local AC_PROG_CC.
	* configure: Rebuild.
	* Makefile.in (INSTALL): Set to @INSTALL@.
	(INSTALL_PROGRAM): Set to @INSTALL_PROGRAM@.
	(INSTALL_DATA): Set to @INSTALL_DATA@.
	(AR): Set to @AR@.
	(CC): Define as @CC@.
	(CFLAGS): Set to @CFLAGS@.
	(CC_FOR_BUILD): Set to @CC_FOR_BUILD@.
	(@host_makefile_frag@): Remove.
	(ALL_CFLAGS): Change $(HDEFINES) to @HDEFINES@.  Move $(CFLAGS)
	after other options.
	(config.status): Remove dependency upon @frags@.
	* config/*.mh, config/README: Remove.
1995-09-04 21:13:51 +00:00
Ian Lance Taylor 2b79a10471 * config.bfd: Rewrite to incorporate the contents of the Makefile
fragments by setting shell variables, rather than merely returning
	the name of a Makefile fragment.
	* configure.in: Use shell variables set by config.bfd rather than
	looking at the target Makefile fragment files.  Don't substitute
	target_makefile_frag.  Do substitute TDEFINES.
	* configure: Rebuild.
	* Makefile.in (@target_makefile_frag@): Remove.
	(ALL_CFLAGS): Change $(TDEFINES) to @TDEFINES@.
	* config/*.mt: Remove.
1995-09-04 18:31:40 +00:00
Ken Raeburn 2cb159a52a Wrap "i[345]86" patterns in changequote lines. 1995-09-04 07:15:54 +00:00
Jeff Law ef07871c96 * som.c (som_bfd_print_private_bfd_data): Define to use the
generic version.
1995-09-03 17:33:44 +00:00
Steve Chamberlain 1613e0758e Split. 1995-09-02 00:24:04 +00:00
Ian Lance Taylor a21227ef2c * Makefile.in (OFILES): Remove $(TDEPFILES).
* config/apollo.mt (TDEPFILES): Remove.
	* config/README: Update.
1995-09-01 22:32:19 +00:00
Ian Lance Taylor a52a3ce8e0 * configure.in: For a native configuration, set COREFILE and
COREFLAG based on the canonical host name.
	* configure: Rebuild.
	* Makefile.in: Rebuild dependencies.
	(ALL_CFLAGS): Add @COREFLAG@.
	(OFILES): Replace $(HDEPFILES) with @COREFILE@.
	* coff-rs6000.c: Check AIX_CORE rather than HOST_AIX for core file
	support routines.  Check LYNX_CORE rather than HOST_LYNX.
	* lynx-core.c: Check LYNX_CORE rather than HOST_LYNX.
	* i386lynx.c: Likewise.
	* m68klynx.c: Likewise.
	* sparclynx.c: Likewise.
	* rs6000-core.c: Check AIX_CORE rather than HOST_AIX.
	* *-core.c: Comment changes.
	* config/decstation.mh (HDEPFILES): Remove.
	(HDEFINES): Remove -DTRAD_CORE.
	* config/irix3.mh (RANLIB): Remove.
	* config/irix4.mh (HDEPFILES, RANLIB): Remove.
	(HDEFINES): Remove -DIRIX_CORE.
	* config/riscos.mh (RANLIB, HDEPFILES): Remove.
	(HDEFINES): Remove -DTRAD_CORE.
	* config/ncr3000.mh (AR_FLAGS, RANLIB): Remove.
	* config/ultra3.mh (RANLIB): Remove.
	* config/aix4.mh, config/alphaosf.mh, config/amix.mh: Remove.
	* config/apollo.mh, config/delta68.mh, config/delta88.mh: Remove.
	* config/dpx2.mh, config/esix.mh, config/harris.mh: Remove.
	* config/hp300.mh, config/hp300bsd.mh, config/hppabsd.mh: Remove.
	* config/hppahpux.mh, config/hppaosf.mh: Remove.
	* config/i386aix.mh, config/i386bsd.mh: Remove.
	* config/i386linux.mh, config/i386mach3.mh: Remove.
	* config/i386sco.mh, config/i386v.mh, config/i386v4.mh: Remove.
	* config/irix5.mh, config/m88kmach3.mh, config/mipsbsd.mh: Remove.
	* config/mipsmach3.mh, config/news-mips.mh: Remove.
	* config/news.mh, config/pc532mach.mh, config/riscix.mh: Remove.
	* config/rs600.mh, config/rs6000lynx.mh: Remove.
	* config/solaris2.mh, config/stratus.mh: Remove.
	* config/symmetry.mh, config/sysv4.mh, config/tahoe.mh: Remove.
	* config/vaxbsd.mh, config/vaxult.mh, config/vaxult2.mh: Remove.
1995-09-01 22:23:04 +00:00
Ian Lance Taylor d6f672b881 Fri Sep 1 15:18:50 1995 Kazumoto Kojima <kkojima@info.kanagawa-u.ac.jp>
* elflink.h (elf_bfd_final_link): Don't change a DT_INIT or
	DT_FINI entry if the appropriate symbol is not in the hash table.

	* libelf.h (struct elf_backend_data): Add create_program_headers
	and want_hdr_in_seg fields.
	* elfxx-target.h (elf_backend_want_hdr_in_seg): Define if not
	defined.
	(elf_backend_create_program_headers): Likewise.
	(elfNN_bed): Initialize create_program_headers and
	want_hdr_in_seg.
	* elf.c (get_program_header_size): Call create_program_headers
	backend routine.
	(map_program_segments): Check want_hdr_in_seg backend field.  Call
	create_program_headers backend routine.

	* elf.c (assign_file_positions_except_relocs): Align non allocated
	sections when creating an executable.

	* elfcode.h (elf_swap_phdr_in): Make non static.
	(elf_swap_phdr_out): Make non static.
	* libelf.h (bfd_elf32_swap_phdr_in): Declare.
	(bfd_elf32_swap_phdr_out): Declare.
	(bfd_elf64_swap_phdr_in): Declare.
	(bfd_elf64_swap_phdr_out): Declare.
1995-09-01 19:29:43 +00:00
Ian Lance Taylor 0cb705689d * elflink.h (elf_link_add_object_symbols): Handle indirect and
warning symbols.  If any section is named .gnu.warning.XXX, treat
	the contents as a warning to be issued if the symbol XXX is
	referenced.
	(elf_link_output_extsym): For an indirect or warning symbol, just
	output the symbol it points to.
1995-09-01 18:08:28 +00:00
Jackie Smith Cashion f14db88017 Fri Sep 1 08:12:50 1995 James G. Smith <jsmith@beauty.cygnus.com>
* config.bfd: Add mips*vr4300-*-elf* target.
        * config/mipsbvr4300.mt: Added.
1995-09-01 15:15:57 +00:00
Steve Chamberlain 4e98461f60 Thu Aug 31 16:00:53 1995 steve chamberlain <sac@slash.cygnus.com>
* Makefile.in: Update dependencies.
	* aout-target.h (MY_bfd_print_private_bfd_data): New.
	* bfd-in.h (PE STUFF): Deleted.
	* bfd.c (tdata->pe_obj_data): New.
	(bfd_print_private_bfd_data): New.
	* coff-i386.c, coff-arm.c (coff_*-rtype_to_howto): Get image base from
	new place.
	* libcoff.h, libbfd.h, bfd-in2.h: Rebuilt.
	* coffcode.h (pe_value): Delete
	(coff_mkobject, coff_mkobject_hook): Conditionally build.
	(coff_compute_section_file_positions): Look in new place.
	(add_data_entry, fill_pe_header_info): Deleted.
	(coff_write_object_contents): Remove PE stuff.
	(coff_bfd_print_private_bfd_data): New.
	* coffswap.h: Remove PE stuff.
	* elfxx-target.h (bfd_elfNN_bfd_print_private_bfd_data): New.
	* libbfd-in.h (_bfd_generic_bfd_print_private_bfd_data): New.
	* libcoff-in.h (pe_data_type): New.
	* libecoff.h (_bfd_ecoff_bfd_print_private_bfd_data): New.
	* targets.c (_bfd_print_private_bfd_data): New.
	* peicode.h: New file.
1995-08-31 23:33:37 +00:00
Ian Lance Taylor 815179af80 * bfd-in.h: Add extern "C" if __cplusplus.
* bfd-in2.h: Rebuild.
PR 7882.
1995-08-31 16:23:02 +00:00
Ian Lance Taylor 61228e36e8 * coff-mips.c (mips_relocate_section): Don't convert a reloc
against an absolute symbol into a reloc against a section.
PR 7880.
1995-08-31 15:54:27 +00:00
Steve Chamberlain da7afe3b8a Thu Aug 31 08:00:14 1995 steve chamberlain <sac@slash.cygnus.com>
* coff-arm.c (coff_arm_reloc): Fix common size problem.
	(i3coff_object_p): Delete.

Wed Aug 30 20:41:27 1995  steve chamberlain  <sac@slash.cygnus.com>

	* coff-arm.c (deletemeacoff_arm_reloc): Deleted.
	(arm26): Not partial inplace.
	* coffcode.h (coff_compute_section_file_positions): Don't
	do page aligning if COFF_PAGE_SIZE isn't defined.
	* coffswap.h (coff_swap_scnhdr_in): Update image base correctly.
1995-08-31 15:05:27 +00:00
Steve Chamberlain c7f6ebe2c3 * coffswap.h (coff_swap_scnhdr_in): Don't always add IMAGE_BASE.
Swap in PE header.
	* coffcode.h (coff_write_object_contents): Remove #if0ed code
	Only remove empty sections in PE inmage files.
1995-08-29 23:26:43 +00:00
Steve Chamberlain 3332ea9c4f * coff-arm.c (coff_rtype_to_howto): Deal with reloc 11.
* coffcode.h (coff_write_object_contents): Remove #if0ed code
	Only remove empty sections in PE inmage files.
1995-08-29 22:28:30 +00:00
Steve Chamberlain 3ea928f5a9 Tue Aug 29 13:50:21 1995 steve chamberlain <sac@slash.cygnus.com>
* libbfd.h, bfd-in2.h: regenerated.
	* coff-arm.c (aoutarm_std_relo): New entry at 11.
	(arm_reloc_type_lookup) : Understand type 11.
	* coff-i386.c (howto_table): fix name of rva type.
	(coff-i386_rtype_to_howto): Understand R_IMAGEBASE type.
	* coffcode.h (sec_to_styp_flags): .edata is data.
	(coff_compute_section_file_positions): Get page size right for PE.
	(fill_pe_header_info): Fix fields.
	(coff_write_object_contents): Remove end_of_image calc.
	(_bfd_coff_generate_reloc_section): Remove orphaned comment.
	* coffswap.h (coff_swap_scnhdr_in): Don't always add IMAGE_BASE.
	(coff_swap_scnhdr_out): Setup PE flags correctly.
	* reloc.c (BFD_RELOC_RVA): New field.
1995-08-29 21:05:59 +00:00