Commit Graph

9655 Commits

Author SHA1 Message Date
Ian Lance Taylor
e1b5066f45 * config/obj-ecoff.h (obj_sec_sym_ok_for_reloc): Define to be 1. 1994-03-22 19:00:08 +00:00
Jeff Law
4b8250bda2 * gprof.c (funcsymbol): Use bfd_get_symbol_info instead of
bfd_decode_symclass.
1994-03-22 18:51:41 +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
Ian Lance Taylor
f3bc3ac3fa * ldwrite.c (build_link_order): Handle lang_data_statement_enum by
building a bfd_data_link_order, rather than by setting the section
	contents immediately.
1994-03-22 18:18:32 +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
Ian Lance Taylor
4fdbafb247 Changes to make -Ur work again.
* ldmain.c (add_to_set): Now takes reloc argument rather than
	bitsize.  Check config.build_constructors here.  If an new hash
	table entry is created, mark it as undefined.
	(constructor_callback): No longer takes bitsize argument.  Pass
	BFD_RELOC_CTOR to ldctor_add_set_entry, but first make sure the
	BFD backend supports it.
	(reloc_overflow): Handle a NULL abfd argument.
	(reloc_dangerous, unattached_reloc): Likewise.
	* ldctor.c: Include ldmain.h.
	(struct set_info): Change bitsize field to reloc.
	(ldctor_add_set_entry): Now takes reloc argument rather than
	bitsize.  Don't bother to check config.build_constructors here.
	(ldctor_build_sets): Get the size from the reloc howto.  If
	generating relocateable output, call lang_add_reloc rather than
	lang_add_data.
	* ldctor.h (ldctor_add_set_entry): Change declaration to use reloc
	instead of bitsize.
	* ldlang.h (statement_enum): Add lang_reloc_statement_enum.
	(lang_reloc_statement_type): New structure.
	(lang_statement_union_type): Add reloc_statement field.
	(lang_add_reloc): Declare new function.
	* ldlang.c (lang_for_each_statement_worker): Handle
	lang_reloc_statement_enum.
	(map_input_to_output_sections, print_statement): Likewise.
	(lang_size_sections, lang_do_assignments): Likewise.
	(print_reloc_statement): New function.
	(lang_add_reloc): New function.
	* ldwrite.c (build_link_order): Handle lang_reloc_statement_enum.
1994-03-22 00:24:13 +00:00
Ian Lance Taylor
651d2da7f6 * bfdlink.h (struct bfd_link_callbacks): Change bitsize argument
to add_to_set to reloc.  Remove bitsize argument from constructor.
	Comment that reloc_overflow, reloc_dangerous and unattached_reloc
	must handle NULL pointers for reloc location.
	(enum bfd_link_order_type): Add bfd_section_reloc_link_order and
	bfd_symbol_reloc_link_order.
	(struct bfd_link_order): Add reloc field to union.
	(struct bfd_link_order_reloc): Define.
1994-03-22 00:21:38 +00:00
Peter Schauer
388f491940 * config/i386/tm-i386aix.h, config/i386/tm-sun386.h,
config/i386/tm-symmetry.h (REGISTER_CONVERT_TO_RAW):  Fix typo.
	* config/i386/tm-symmetry.h:  Make comment inside #if 0 a real
	comment.
	* config/i386/tm-symmetry.h (STORE_STRUCT_RETURN):  Cast argument
	to write_memory to avoid warnings from gcc.
	* config/i386/xm-symmetry.h:  Add missing #endif.
	* config/i386/nm-symmetry.h (NO_PTRACE_H):  Add for Dynix.
	* config/i386/symmetry.mt (TDEPFILES):  Add i386-tdep.o.
	* config/i386/symmetry.mh (NAT_FILE, NATDEPFILES):  Add.
1994-03-21 21:16:16 +00:00
Peter Schauer
71c33ef7d4 * symmisc.c (maintenance_check_symtabs): New function to check
consistency of psymtabs and symtabs.
	* symtab.h (maintenance_check_symtabs):  Add prototype.
	* maint.c:  Add new `maint check-symtabs' command.
1994-03-21 21:14:27 +00:00
Stu Grossman
72bba93b85 Mon Mar 21 11:02:51 1994 Stu Grossman (grossman at cygnus.com)
* alpha-tdep.c:  Gobs of changes (many imported from mips-tdep) to
	improve remote debugging efficiency.  Also fixed problems with
	doing function calls for programs with no entry points.
	* infcmd.c (run_stack_dummy):  Use CALL_DUMMY_ADDRESS instead of
	entry_point_address.
	* inferior.h (PC_IN_CALL_DUMMY):  ditto.
	* mdebugread.c (parse_symbol, parse_procedure, parse_external,
	parse_lines):  Pass section_offsets info to these routines so that
	we can relocate symbol table entries upon readin.
	* (psymtab_to_symtab_1):  Set symtab->primary to tell
	objfile_relocate to do relocations for our symbols.
	* (ecoff_relocate_efi):  New routine to relocate adr field of PDRs
	(which hang off of the symbol table).
	* Use prim_record_minimal_symbols_and_info instead of
	prim_record_minimal_symbols to supply section info to make minimal
	symbol relocations work.
	* minsyms.c (prim_record_minimal_symbols_and_info):  If section is
	-1, try to deduce it from ms_type.
	* objfiles.c (objfile_relocate):  Use ALL_OBJFILE_SYMTABS where
	appropriate.  Handle relocation of MIPS_EFI symbols special. Also,
	add code to relocate objfile->sections data structure.
	* remote.c (get_offsets):  Use new protocol message to acquire
	section offsets from the target.
	* (remote_wait):  Get rid of relocation stuff.  That's all handled
	by objfile_relocate now.
	* config/alpha/alpha-nw.mt (TM_FILE):  Use tm-alphanw.h.
	* config/alpha/tm-alpha.h:  Define CALL_DUMMY_ADDRESS, and
	VM_MIN_ADDRESS.
	* config/alpha/tm-alphanw.h:  DECR_PC_AFTER_BREAK=0, VM_MIN_ADDRESS=0.
1994-03-21 19:57:38 +00:00
Jeff Law
4fd5eed484 * hppa-tdep.c (hppa_fix_call_dummy): Use value_ptr.
(hppa_push_arguments): Likewise.
1994-03-21 19:53:36 +00:00
Stu Grossman
30f5dbc0d8 * alpha-tdep.c: Gobs of changes (many imported from mips-tdep) to
improve remote debugging efficiency.  Also fixed problems with
	doing function calls for programs with no entry points.
	* infcmd.c (run_stack_dummy):  Use CALL_DUMMY_ADDRESS instead of
	entry_point_address.
	* inferior.h (PC_IN_CALL_DUMMY):  ditto.
	* mdebugread.c (parse_symbol, parse_procedure, parse_external,
	parse_lines):  Pass section_offsets info to these routines so that
	we can relocate symbol table entries upon readin.
	* (psymtab_to_symtab_1):  Set symtab->primary to tell
	objfile_relocate to do relocations for our symbols.
	* (ecoff_relocate_efi):  New routine to relocate adr field of PDRs
	(which hang off of the symbol table).
	* Use prim_record_minimal_symbols_and_info instead of
	prim_record_minimal_symbols to supply section info to make minimal
	symbol relocations work.
	* minsyms.c (prim_record_minimal_symbols_and_info):  If section is
	-1, try to deduce it from ms_type.
	* objfiles.c (objfile_relocate):  Use ALL_OBJFILE_SYMTABS where
	appropriate.  Handle relocation of MIPS_EFI symbols special. Also,
	add code to relocate objfile->sections data structure.
	* remote.c (get_offsets):  Use new protocol message to acquire
	section offsets from the target.
	* (remote_wait):  Get rid of relocation stuff.  That's all handled
	by objfile_relocate now.
	* config/alpha/alpha-nw.mt (TM_FILE):  Use tm-alphanw.h.
	* config/alpha/tm-alpha.h:  Define CALL_DUMMY_ADDRESS, and
	VM_MIN_ADDRESS.
	* config/alpha/tm-alphanw.h:  DECR_PC_AFTER_BREAK=0, VM_MIN_ADDRESS=0.
1994-03-21 19:52:50 +00:00
Ian Lance Taylor
93e53ea4d9 * objdump.c (objdump_print_address): Make static. Declare with
prototype.  Change vardiff from int to bfd_signed_vma.  Correct
	binary search termination condition.  When looking for same
	section symbol in relocatable file, handle final symbol correctly.
1994-03-21 17:58:39 +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
David Edelsohn
7f695c077c * config/sparc/sp64.mt (SIMFILES): Use remote-sim.o now.
(TM_CLIBS): Define to -lm, the simulator uses the sqrt() function.
* config/sparc/tm-sp64.h (FPS_REGNUM, CPS_REGNUM): Define (so
sparc-tdep.c compiles).
(TARGET_PTR_BIT): Must be a constant now, fix at 64.
1994-03-20 23:45:33 +00:00
Jeff Law
4e85e79f4f * Makefile.in: Avoid bug in hpux sed. 1994-03-20 23:40:41 +00:00
David Edelsohn
5029b1148d (FPS_REGNUM, CPS_REGNUM): Define (so sparc-tdep.c compiles).
(TARGET_PTR_BIT): Must be a constant now, fix at 64.
1994-03-20 23:36:50 +00:00
David Edelsohn
9b4bebb232 (SIMFILES): Use remote-sim.o instead of remote-sp64sim.o.
(TM_CLIBS): Define to -lm, the simulator uses the sqrt() function.
1994-03-20 23:31:15 +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
David Edelsohn
d148e8c4fe sparc-tdep.c (sparc_frame_find_save_regs): Use REGISTER_RAW_SIZE instead of 4. 1994-03-20 23:25:16 +00:00
David Edelsohn
d36889322e sp64-tdep.c (target_ptr_bit, set_target_ptr_bit): Deleted, can no longer set
this at run time.
1994-03-20 23:17:18 +00:00
David Edelsohn
18edeee9b5 (target_ptr_bit, set_target_ptr_bit): Deleted, can no longer set this
at run time.
1994-03-20 23:11:16 +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
Ken Raeburn
c37f6138d4 * Makefile.in (config-stamp): If `defs' is defined, emit a preprocessor
directive to create a macro named by this value into config.new; don't
explicitly go for BFD_ASSEMBLER.
* configure.in: Define `defs', not `BFDDEF'.  Set it to MANY_SEGMENTS for any
obj-coffbfd target.
* config/obj-coffbfd.h (BFD_HEADERS, BFD): Define.
* config/i386coff.mt (TDEFINES): Don't define BFD, MANY_SEGMENTS, BFD_HEADERS.
(LOCAL_LOADLIBES): Deleted.
* config/m68kcoff.mt (TDEFINES): Don't define those macros.
* config/m88kcoff.mt (TDEFINES): Ditto.
* config/ebmon29k.mt: Deleted.
* config/h8300hds.mt: Deleted.
* config/ic960coff.mt: Deleted.
* config/sparc.mt: Deleted.
* config/h8300.mt (LOCAL_LOADLIBES, TDEFINES): Deleted.
* config/h8500.mt (LOCAL_LOADLIBES, TDEFINES): Deleted.
* config/sh.mt (LOCAL_LOADLIBES, TDEFINES): Deleted.
* config/z8k.mt (LOCAL_LOADLIBES): Deleted.
(TDEFINES): Don't define the coffbfd macros.

* Makefile.in: Insert makefile fragments before OBJS definition.
(OBJS): Add $(TE_OBJS).
1994-03-20 21:13:59 +00:00
Ken Raeburn
3680de746a * config/obj-coff.c (obj_pseudo_table): Supply "section" unconditionally. 1994-03-20 21:07:43 +00:00
Ken Raeburn
1871f91a91 * write.c (set_symtab): Define only if BFD_ASSEMBLER. 1994-03-20 21:01:31 +00:00
David Edelsohn
a8183040a0 Remove v9 sanitization. 1994-03-20 20:44:34 +00:00
Jeff Law
c20c75060d * Makefile.in (STAGESTUFF): Add gasp.new. 1994-03-20 20:06:53 +00:00
Jeff Law
cec70b2b6c * configure.in (hppa*-*-*): Enable binutils. 1994-03-20 19:29:05 +00:00
Jeff Law
fb158b92f9 * objcopy.c: Changes to keep it from stripping symbols used
in output relocations.
        (mark_symbols_used_in_relocations): New function.  Mark symbols
        used in output relocations with BSF_KEEP.
        (filter_symbols): Do not strip symbols marked with BSF_KEEP.
        (copy_object): Reorder actions.  First setup sections, then
        build the output symbol table, then copy the section contents.
1994-03-20 19:27:40 +00:00
Jeff Law
517a6af632 * som.c (som_begin_writing): Fix braino (one call to align
space/subspace data was done unconditionally rather than
        just for executables.)
1994-03-20 19:22:04 +00:00
Jeff Law
142f59f4a9 * som.c (som_begin_writing): Align text in all executables to
make HPUX kernel happy.  Fixes strip/objcopy for shared
        executables.
1994-03-20 17:27:51 +00:00
Jim Kingdon
47dc9b52c2 * bfd.c (struct _bfd): Add cisco_core_struct to tdata union.
* libbfd.c (bfd_read, bfd_seek): Add comments regarding errors.
	* cisco-core.c: New file.
	* Makefile.in: Change accordingly.
	* configure.in: Recognize cisco_core_vec.
	* config/m68k-aout.mt (SELECT_VECS): Add cisco_core_vec.
	* targets.c: Add cisco_core_vec.
	* bfd-in2.h: Rebuilt.
1994-03-19 21:13:58 +00:00
Jim Kingdon
d34979a72d * config/m68k/{cisco.mt,tm-cisco.h}: New files. 1994-03-19 20:02:54 +00:00
Jim Kingdon
d0bff94e42 * config/m68k/{cisco.mt,tm-cisco.h}: New files.
* Makefile.in (ALLPARAM, ALLCONFIG): Add them.
	* configure.in: Recognize m68*-cisco*-*.
1994-03-19 19:53:31 +00:00
Jim Kingdon
27c2404f38 * config.sub: Recognize cisco. 1994-03-19 19:50:57 +00:00
Jim Kingdon
419e8b6b41 New for cisco 1994-03-19 19:32:51 +00:00
Jim Kingdon
94d4b71373 * Makefile.in (TAGS): Use variables directly, rather than using
find, to locate TM_FILE, XM_FILE, and NAT_FILE.  This is faster
	and means that these filenames no longer need be unique across all
	the config/* directories.
	* configure.in: Put the config/*/ into TM_FILE, etc.

	* m68k-stub.c (computeSignal): Return SIGFPE, not SIGURG, for chk
	and trapv exceptions.

	* target.h (struct section_table), objfiles.h (struct obj_section):
	Change name of field sec_ptr to the_bfd_section.  More mnemonic
	and avoids the (sort of, for the ptx compiler) name clash with
	the name of the typedef.
	* exec.c, xcoffexec.c, sparc-tdep.c, rs6000-nat.c, osfsolib.c,
	solib.c, irix5-nat.c, objfiles.c, remote.c: Change users.

	* utils.c: Include readline.h.
	* Makefile.in (utils.o): Add dependency.

	* remote.c (getpkt): Add support for run-length encoding.
1994-03-19 18:49:50 +00:00
Jim Kingdon
1732fbd47a * cisco-core.c: New file. 1994-03-19 17:51:39 +00:00
Jeff Law
00806436cd * som.c (som_begin_writing): Account for alignment needs of
subspaces too when writing executables.  Never request a negative
        bss size.  Fixes some problems with demand paged executables,
        still having problems with pure executables and shared executables.
1994-03-19 15:08:12 +00:00
Jeff Law
1576691751 * som.h (som_copyable_section_data_struct): New structure
containing all the private section information which needs
	to be copied from input section to output section during
	objcopy or strip.
	(som_section_data_struct): Remove several fields now in
	som_copyable_section_data_struct.  Make the space and
	subspace dictionaries be pointers (to save space when
	only reading objects).

	* som.c (bfd_som_set_section_attributes): Now returns a boolean;
	some references changed.  Allocate a copyable data stucture if
	none exists.  Store info into the copyable data structure.
	(bfd_som_set_subsection_attributes): Likewise.
	(som_is_space, som_is_subspace, som_is_container): New functions.
	Use these instead of directly accessing private data.
	(som_prep_headers): Allocate space and subspace headers here.
	Fill in some fields in the space/subspace headers from the
	copyable data.
	(som_bfd_copy_private_section_data): Only copy the stuff
	that we really need to make objcopy and strip work.  Allocate
	the copy_data structure for the output bfd before copying.
1994-03-19 06:41:54 +00:00
Jim Kingdon
5d70e4d137 * bfd.c (struct _bfd): Add cisco_core_struct to tdata union.
* libbfd.c (bfd_read, bfd_seek): Add comments regarding errors.
	* cisco-core.c: New file.
	* Makfile.in: Change accordingly.
	* bfd-in2.h: Rebuilt.
1994-03-19 06:36:47 +00:00
Jim Kingdon
a94100d198 * utils.c (prompt_for_continue): Call readline, not gdb_readline. 1994-03-19 06:36:18 +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
Steve Chamberlain
8eec331072 * utils.c (prompt_for_continue): Call readline, not gdb_readline. 1994-03-19 03:16:10 +00:00
Ken Raeburn
1cf7548efc * write.c (symbol_table_frozen): New variable, to be set after bfd_set_symtab
is called.
(dump_section_relocs): Note whether a symbol is a section symbol or not.
(adjust_reloc_syms): For now, always supply an absolute symbol for fixups
without symbols but not yet `done'.  Use section_symbol to get the symbol,
instead of going directly for abs_symbol.
(write_relocs) [DEBUG4]: Abort if any symbol referred to by a reloc is not a
section symbol and is not in the symbol table.
(set_symtab): New function, broken out from write_object_file.  Counts symbol
table instead of relying on an earlier count.
(write_object_file): Call set_symtab, but do it after potentially invoking the
*_frob_file macros.  Don't bother counting symbols.  Call symbol_remove,
instead of expanding it in place.  Moved the conditionalized `object_file_size'
declaration down to conditionalized block where it's used.  When using the
absolute symbol for a fixup without a symbol, set sy_used_in_reloc.
(write_object_file) [BFD_ASSEMBLER]: Call section_symbol to get the correct
symbol for the absolute section.
1994-03-19 02:36:09 +00:00