Commit graph

195 commits

Author SHA1 Message Date
Ian Lance Taylor
ae5d2ff573 Update for recent BFD changes to symbol and reloc reading. Rename
all uses of get_symtab_upper_bound to bfd_get_symtab_upper_bound.
	Also:
	* coffgrok.c (symcount): Change to long.
	(do_sections_p1): Check for error return from
	bfd_get_reloc_upper_bound.  Change relcount to long, and check for
	error from bfd_canonicalize_reloc.
	(coff_grok): Change storage to long.  Check for error from
	bfd_get_symtab_upper_bound and bfd_canonicalize_symtab.
	* nlmconv.c (main): Change symcount, newsymalloc, newsymcount, and
	i to long.  Check for error from bfd_get_symtab_upper_bound and
	bfd_canonicalize_symtab.
	(copy_sections): Change reloc_size and reloc_count to long.  Check
	for error from bfd_get_reloc_upper_bound and
	bfd_canonicalize_reloc.
	(mangle_relocs, i386_mangle_relocs, alpha_mangle_relocs): Change
	reloc_count_ptr argument to long *.  Make corresponding changes to
	variables loaded from *reloc_count_ptr.
	* nm.c (display_rel_file): Change storage and symcount to long.
	Check for errors from bfd_get_symtab_upper_bound and
	bfd_canonicalize_symtab.
	* objcopy.c (filter_symbols): Change symcount, src_count and
	dst_count to long.
	(copy_object): Change symcount to long.  Pass another argument to
	fprintf.  Check for errors from bfd_get_symtab_upper_bound and
	bfd_canonicalize_symtab.
	(copy_section): Change relcount to long.  Check for errors from
	bfd_get_reloc_upper_bound and bfd_canonicalize_reloc.
	(mark_symbols_used_in_relocations): Change relcount and i to long.
	Check for errors form bfd_get_reloc_upper_bound and
	bfd_canonicalize_reloc.
	* objdump.c (storage): Remove global variable.
	(symcount): Changed to long.
	(slurp_symtab): New local variable storage.  Check for errors from
	bfd_get_symtab_upper_bound and bfd_canonicalize_symtab.
	(remove_useless_symbols): Change return value and count to long.
	(objdump_print_address): Change min, max, thisplace and i to long.
	(disassemble_data): Change i to long.
	(dump_symbols): Change count to long.
	(dump_relocs): Change relcount to long.  Check for errors from
	bfd_ret_reloc_upper_bound and bfd_canonicalize_reloc.
	(display_info_table): Add casts when passing LONGEST_ARCH for
	printf %* argument.
1994-03-30 22:06:17 +00:00
Ian Lance Taylor
8f197c94e3 * objdump.c (display_file): Close each archive element after it
has been displayed.
1994-03-29 21:34:44 +00:00
Ian Lance Taylor
9f191108c1 * nm.c (display_archive): Close each archive element after it has
been displayed.
1994-03-29 20:00:09 +00:00
Ian Lance Taylor
934ec70a4e * configure.in: Change error message to refer to bfd/config.bfd
rather than bfd/configure.in.
1994-03-28 18:05:12 +00:00
Jeff Law
77ccab3c95 * More fixes for object formats which allow multiple sections
with the same name:
        * objcopy.c (setup_section): Make a new output section even if
        one already exists with the given name.
        (copy_section): Use isection->output_section rather than trying
        to look the output section up by its (possibly non-unique) name.
1994-03-28 00:25:15 +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
4e85e79f4f * Makefile.in: Avoid bug in hpux sed. 1994-03-20 23:40:41 +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
Ian Lance Taylor
60e9faebc1 * ar.c (write_archive): Allocate space for the null byte. From
Robert Lipe <robertl@arnet.com>.
1994-03-18 15:55:27 +00:00
Ian Lance Taylor
06459c063e * Makefile.in: Built nm.new and strip.new to avoid problems with
collect when . is in PATH.
	(STRIP_PROG): Change from strip to strip.new.
	(NM_PROG): Change from nm to nm.new.
	(install): Remove the .new when installing.
1994-03-17 21:22:30 +00:00
Jeff Law
1d483829ad * objcopy.c (filter_symbols): Use bfd_is_local_label to determine
if a symbol represents a compiler-generated local label.
	(copy_object): Give the BFD backends a chance to copy any private
	bfd data from the input BFD to the output BFD.
	(setup_section): Give the BFD backends a chance to copy any private
	section data from the input section to the output section.
1994-03-16 07:04:42 +00:00
Jeff Law
c956356797 * objcopy.c (mangle_section): Delete unused function.
(setup_section): Set osection here instead of calling
        mangle section to do it.
1994-03-14 19:36:15 +00:00
Ian Lance Taylor
ad8e3db940 * ar.c (write_archive): Close inarch before unlinking it. 1994-03-14 17:14:08 +00:00
Ian Lance Taylor
4bd7a65f5f * nlmconv.c (main): For PowerPC, call powerpc_build_stubs and
powerpc_resolve_stubs.  Use __GOT0, not __toc_start.  Handle it if
	the start and end symbols are not in the text section.
	(struct powerpc_stub): New struct definition.
	(powerpc_stubs, powerpc_stub_insns): New static variables.
	(powerpc_initial_got_size): New static variable.
	(powerpc_build_stubs): New function.
	(powerpc_resolve_stubs): New function.
	(powerpc_mangle_relocs): Clear extraneous data in .got section.
	Rearrange reloc handling to handle ELF relocs that are not
	partial_inplace.  Resolve PC relative relocs.
1994-03-12 03:26:12 +00:00
Steve Chamberlain
9fdf266ccc * ar.c (move_members): Fix it so that the abi positional modifiers
don't delete all archive members following the insert point.
1994-03-09 21:53:54 +00:00
Steve Chamberlain
e52e2acd51 * coffgrok.[ch]: New files, understand coff objects.
* coffdump.c: Uses coffgrok to dump out the debug info of a coff
	file.
	* sysroff.info: Description of a SYSROFF object file.
	* sysinfo.y, syslex.l: Parse info file, generate a reader, writer,
	header files and a printer.
	* srconv.c: Uses coffgrok.c and sysroff.info to convert a coff
	file to a SYSROFF file.
1994-03-08 21:53:19 +00:00
Ian Lance Taylor
33e61c95a2 Set Emacs local variables to never use version control. 1994-03-08 19:16:31 +00:00
Stan Shebs
6eb243a23d Sat Feb 26 13:35:26 1994 Stan Shebs (shebs@andros.cygnus.com)
* ar.c (do_quick_append): Pad with a genuine character 10,
	rather than whatever '\n' might happen to be.
1994-02-26 21:38:04 +00:00
David MacKenzie
7681bc7b30 * ar.c, bucomm.c, nlmconv.c, nm.c, objcopy.c, objdump.c,
size.c: Use bfd_get_error and bfd_set_error and new error names.
1994-02-17 18:10:18 +00:00
David MacKenzie
704bbd0dc3 * objcopy.c (strip_main, copy_main): Add missing 'break' in switch. 1994-02-11 23:56:49 +00:00
David MacKenzie
5d2f7e30c5 * objcopy.c (filter_bytes): Make MEMHUNK a char *, not PTR, so we
can do arithmetic on it.
1994-02-04 18:47:33 +00:00
David MacKenzie
250e36fe2d * objdump.c (dump_section_stabs, read_section_stabs,
print_section_stabs): Functions broken out of dump_stabs_1.
	Free the stabs and strings when done with them.
1994-02-03 22:21:28 +00:00
David MacKenzie
6f9dff07e1 More changes to print ambiguous matches and use the
abstracting macros.
1994-02-03 13:08:29 +00:00
David MacKenzie
0c5dc23cc9 * nlmconv.c (main): Use bfd_get_flavour instead of struct member.
* ar.c (print_contents, extract_file), size.c
	(print_berkeley_format): Use bfd_get_filename and
	bfd_my_archive instead of dereferencing the structs directly.
1994-02-03 01:39:10 +00:00
David MacKenzie
0c62139f90 * ar.c: Use bfd_fatal and bfd_nonfatal instead of bfd_perror and exit.
Indent.  Remove DEFUNs.
1994-02-03 00:42:37 +00:00
David MacKenzie
cef35d4882 * nlmconv.c (main), objcopy.c (copy_file): Print matching formats
if ambiguous match.
	* nm.c (display_file), size.c (display_bfd): Eliminate gotos.
	Print matching formats if there is an ambiguous match.  Use
	bfd_nonfatal instead of hardcoded error message if nothing matches.

	* arsup.c, ar.c, objdump.c: Use bfd_get_filename instead of
	abfd->filename.

	* nm.c (display_archive): New function, from code in display_file.
	(display_rel_file): Renamed from do_one_rel_file.

	* size.c: Indent.
	(display_archive): New function from code in display_file.
	(display_file): Check bfd_close error return.

	* strings.c (strings_object_file): Check bfd_check_format
	error return.

	* strings.c, objdump.c, size.c: Use bfd_nonfatal instead of bfd_perror.

	* bucomm.c: Delete references to exit_handler.  It wasn't set
	anywhere, and now that we're using the libiberty xmalloc, it
	wouldn't always get called before exiting.
	(list_matching_formats): Function moved from objdump.c.
	* bucomm.h: Declare it.

	* objdump.c (disassemble_data): Move some variable decls closer to
	their use.  Add some comments.  Replace a nested block with a
	return.
1994-02-03 00:25:30 +00:00
Stan Shebs
334d6e7603 Mon Jan 31 18:50:41 1994 Stan Shebs (shebs@andros.cygnus.com)
* objdump.c (display_target_list, display_info_table): Check that
	the bfd of the dummy output file is not null.
1994-02-01 02:52:22 +00:00
David MacKenzie
f7b839f7cd * objcopy.c (filter_bytes): New function.
(copy_section): Call it.
	(copy_options, copy_usage, copy_main): Add --byte option to
	activate it.  Appropriate the -b option (which was an undocumented
	synonym for -F) for it, also.  Add --interleave, -i option for
	additional control.
	(setup_section, copy_section, mangle_section): Renamed with no `s'
	on the end.
	* objcopy.1, binutils.texi: Document the new options.

	* objdump.c (display_target_tables, display_target_list):
	New functions broken out of display_info.
	Eliminate some magic constants.  Use more meaningful variable names.
	(dump_bfd_header): New function broken out of display_bfd.
	(dump_section_header): New function broken out of dump_headers.
	(remove_useless_symbols): Don't shadow global variable name with
	parameter.
	(objdump_print_address): Fix backward test.
1994-01-26 22:11:18 +00:00
Stan Shebs
0886e098c5 Tue Jan 25 19:40:54 1994 Stan Shebs (shebs@andros.cygnus.com)
* bucomm.c (print_arelt_descr): Change decl of `when' to time_t.
	* objdump.h: Removed.
1994-01-26 03:45:21 +00:00
David MacKenzie
abdcac0f52 * objdump.c (display_file): Remove call to list_matching_formats.
It would never be called.
	(list_matching_formats): Take an arg giving the list of matching
	formats.
	(display_bfd): Pass the arg, and get it filled in by calling
	bfd_check_format_matches instead of bfd_check_format.
	(display_info, display_info_table): target_vector was renamed to
	bfd_target_vector.
1994-01-25 13:27:56 +00:00
David MacKenzie
209e561041 * objdump.c (display_file): Remove call to list_matching_formats.
It would never be called.
	(list_matching_formats): Take an arg giving the list of matching
	formats.
	(display_bfd): Pass the arg, and get it filled in by calling
	bfd_check_format_matches instead of bfd_check_format.

	* binutils.texi (objdump): Note some limitations of -h section
	address printing.
1994-01-24 23:38:03 +00:00
David MacKenzie
db2e6adb5b * binutils.texi (objdump): Note some limitations of -h section
address printing.
1994-01-24 21:31:01 +00:00
Stan Shebs
3785367375 Minor MPW compatibility tweaks. 1994-01-23 00:31:14 +00:00
David MacKenzie
eae821453c * objdump.c (list_matching_formats): If the file format is ambiguous,
print the matching names so the user can choose one.
	(display_bfd): Call it.
	(display_file): Call it.
1994-01-22 05:11:40 +00:00
Ian Lance Taylor
722087ec13 * objdump.c (disassemble_data): Support bfd_arch_rs6000. 1994-01-22 00:19:02 +00:00
Stan Shebs
fe2750e101 Mon Jan 17 13:57:25 1994 Stan Shebs (shebs@andros.cygnus.com)
* objdump.c (stab_name): Allocate dynamically.
	(stab_print): Use pointers to strings instead of char arrays.
	(dump_stabs): Change alloc and init of arrays appropriately.
	(dump_stabs_1): Always decide whether to print stab_name or
	the stab's type number, if unnamed.
1994-01-17 22:03:42 +00:00
Ian Lance Taylor
46050fe4d0 * objcopy.c (strip_main, copy_main): Don't clobber the input file
if copy_file fails.
1994-01-14 21:44:44 +00:00
Ian Lance Taylor
1edb7335e6 * nlmconv.c (main): Warn about an attempt to use a shared library
with uninitialized data.
1994-01-14 20:58:43 +00:00
Ian Lance Taylor
e70f2bde6f * nlmconv.c (setup_sections): Make sure that we align the
output_offset of each input section appropriately.
1994-01-14 19:55:42 +00:00
Ian Lance Taylor
02a68547b9 * objdump.c (dump_relocs): Don't crash if section name is NULL. 1994-01-13 22:34:51 +00:00
Ken Raeburn
096aefc040 * bucomm.c (xmalloc, xrealloc): Deleted.
* bucomm.h (xmalloc, xrealloc): Prototypes fixed to correspond to libiberty
versions.
1994-01-09 20:37:30 +00:00
David MacKenzie
eae0423857 * binutils.texi: Add a chapter summarizing the ways to select
aspects of the target for each program.

	* objdump.c (long_options, usage): Add long equivalents for all
	remaining short options that lacked them.
	* binutils.texi objdump.1: Document them.

	* size.c (usage): Tweak usage message.
	* size.1: Add missing `=' in examples.

	* binutils.texi strip.1 objcopy.1 nlmconv.1 objcopy.c nlmconv.c:
	Use "--target=bfdname" as the option to select the BFD target,
	like nm and size already do.
	Reserve "--format=format" for textual output selection options, but
	for now keep old option names as obsolete for backward compatibility.

	* strings.c (main, strings_object_file, usage): Add --target option.
	* binutils.texi strings.1: Document it.
1994-01-06 19:49:06 +00:00
Ian Lance Taylor
9ef23d71b3 Various entries. 1993-12-23 17:29:32 +00:00
Ian Lance Taylor
6972011b96 * nlmheader.y (command): Accept MAP and FULLMAP without arguments.
* nlmconv.c (main): Change error message for MAP and FULLMAP.
1993-12-10 19:29:10 +00:00
Ian Lance Taylor
4e58b3ebfc * nlmconv.c (main): Warn about imported symbols that are not in
the IMPORT list even if the IMPORT keyword is not used.

Fixes PR 4006.
1993-12-10 05:51:25 +00:00
Ian Lance Taylor
0f6df2eee0 * nlmconv.c (debug, unlink_on_exit): New static variables.
(long_options): Add "debug" and "linker".
	(main): Handle -d and -l arguments.  Make command line input and
	output files optional.  Parse the command file before opening the
	BFD's, which requires storing more information in local variables.
	If INPUT names multiple files, link them together.  Use OUTPUT for
	the output file name if not named on command line.
	(show_usage): Changed for new options.
	(link_inputs): New function to automatically invoke linker to
	handle multiple INPUT files.
	(choose_temp_base_try, choose_temp_base, pexecute): New functions,
	mostly copied from gcc/gcc.c.
	* nlmconv.h (input_files, output_file): Declare.
	* nlmheader.y (input_files, output_file): Define.
	(command): Support INPUT with a string_list argument.  Support
	OUTPUT.
	(string_list): Renamed from module_list.
	* Makefile.in (nlmconv.o): Define LD_NAME based on
	program_transform_name.

Fixes PR 3974.
1993-12-10 05:33:49 +00:00
Ian Lance Taylor
627703f982 * nlmheader.y (nlmheader_identify): New function. Use it to print
the program name just once, instead of with every error message.

Fixes PR 3973.
1993-12-08 18:10:11 +00:00
Ian Lance Taylor
419093bc9c * nlmconv.c (long_options): Changed --header-info to --header-file
to match documentation and usage message.
1993-12-06 21:12:48 +00:00
Jeff Law
e2767a0115 * objdump.c (dump_relocs): Avoid dereferencing a NULL sym_ptr_ptr
in a relocation.
1993-12-05 09:32:06 +00:00
Ian Lance Taylor
3fa2ae535b Remove unused declaration from nlmconv.c. Add ChangeLog entry for
Sean's change.
1993-12-02 01:05:45 +00:00