Commit graph

16 commits

Author SHA1 Message Date
Ian Lance Taylor
0397592594 Only build PowerPC stubs if we are converting a PowerPC object file. 1994-03-31 04:59:09 +00:00
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
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
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
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
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
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
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
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
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
Ian Lance Taylor
a30f59a465 Restore changes clobbered by Sean's check in. 1993-12-02 01:03:03 +00:00
Ian Lance Taylor
90d8edfdf3 * nlmconv.c (main): Force moduleName field to upper case. 1993-10-27 16:06:56 +00:00
Ian Lance Taylor
ef5b53687b * nlmconv.c (main): Force creation of .bss section. Set up the
sections before looking at the symbols.  Move all common symbols
	into .bss section.  Automatically define _edata and _end.  Only
	export symbols in the export list, with multiple prefixes if
	necessary.  Warn if no version.  Always create extended header.
	Set date automatically if not already set.
	(setup_sections): Count size of bss sections.
	(mangle_relocs, i386_mangle_relocs): Accept section argument, and
	take reloc_count as a changeable pointer; changed callers.
	(i386_mangle_relocs): Remove PC relative relocs within a section,
	as they require no adjustment.
	* nlmheader.y: Fixed memory allocation throughout: token STRING is
	now allocated on the heap, and freed if not needed.  Null
	terminated copyright message.  Accept version with only two
	strings.
	(symbol_list_opt): New nonterminal, either symbol_list or empty.
	(symbol_list): Use left recursion to avoid overflowing parser
	stack.
	(yylex): Rearranged beginning of line check.  Accept quoted
	strings using single quotes.  End generic argument at comment
	character or parentheses.
	(string_list_append): Fixed.
	(string_list_append1): New function.
1993-08-31 17:47:58 +00:00
Ian Lance Taylor
d92aadfd5a Write out all the header information, except the SHARELIB stuff which
is still not implemented.
1993-08-11 18:30:39 +00:00