Commit Graph

730 Commits

Author SHA1 Message Date
Raymond Jou e069197a14 * mpw-make.sed: Add a "stamps" target. 1996-01-25 19:38:14 +00:00
Ian Lance Taylor 980ef031a0 shorten copyright line 1996-01-25 18:55:00 +00:00
Ian Lance Taylor 1efb2ef007 * objdump.c (dump_headers, dump_section_header): Change objdump -h
output to be simpler and to include section file offsets.
1996-01-25 18:52:59 +00:00
Ian Lance Taylor fab21c7850 * ieee.c (ieee_read_cxx_class): Don't multiply voffset by 4.
(struct ieee_write_type): Add name field.
	(struct ieee_type_class): Remove name field.  Change all uses to
	use new name field in type instead.
	(struct ieee_name_type): Likewise.
	(ieee_start_struct_type): Initialize name field of type.
	(ieee_start_class_type): Don't initialize classdef entry of tag.
	(ieee_class_method_var): Don't adjust voffset.
	(ieee_end_class_type): Likewise.
	(ieee_tag_type): Initialize new name field of type.
	(ieee_typdef): Set name after copying in type information.
1996-01-25 00:26:19 +00:00
Ian Lance Taylor 526fed067e * ieee.c (struct ieee_modified_type): Define.
(struct ieee_handle): Add modified and modified_alloc fields.
	(ieee_get_modified_info): New static function.
	(ieee_pointer_type): Cache type index.
	(ieee_const_type): Likewise.
	(ieee_volatile_type): Likewise.
1996-01-24 22:51:32 +00:00
Ian Lance Taylor 76e45938c3 * ieee.c (ieee_define_named_type): When creating a tag for an
anonymous struct, copy the name into memory.
	(ieee_tag_type): Likewise.
	* debug.c (debug_write_type): Only check and set id field for an
	unnamed object.
	(debug_write_class_type): Likewise.
1996-01-24 21:10:55 +00:00
Ian Lance Taylor 2466210755 * ieee.c: Various changes to write out types for functions and
references, and to not write out unnecessary function types.
1996-01-24 19:40:21 +00:00
Ian Lance Taylor a837b8fc96 comment change 1996-01-24 19:38:16 +00:00
Ian Lance Taylor 74ae0c978d * ieee.c (struct ieee_var): Remove variable field. Add kind
field, and define some enum constants for it.
	(parse_ieee_ty): Set kind field of variable for 'x' and 'X' types.
	(parse_ieee_atn): Make an indirect slot for an external variable,
	although we otherwise don't record it.  Set kind field rather than
	variable field of pvar.
	(ieee_read_cxx_class): Try to get the type of a static member.
	(ieee_read_reference): Check kind field rather than variable
	field.
1996-01-24 17:08:25 +00:00
Ian Lance Taylor c5baf5d9af fix ChangeLog entry 1996-01-24 01:27:44 +00:00
Ian Lance Taylor 501be095c9 * debug.h (enum debug_var_kind): Add DEBUG_VAR_ILLEGAL.
(enum debug_parm_kind): Add DEBUG_PARM_ILLEGAL.
	* debug.c (debug_get_parameter_types): Handle DEBUG_KIND_FUNCTION.
1996-01-24 01:26:49 +00:00
Ian Lance Taylor 3d2d462907 * ieee.c: Various changes to handle C++ reference types. 1996-01-24 01:26:21 +00:00
David Edelsohn 4e050e3b3e * objdump.c (disassemble_data): Pass fprintf to INIT_DISASSEMBLE_INFO. 1996-01-23 22:56:05 +00:00
Ian Lance Taylor b96e1ce4f8 * ieee.c: Various changes to write out definitions of C++ classes. 1996-01-23 20:59:46 +00:00
Ian Lance Taylor 796369aa96 * debug.c (debug_append_filename): Remove.
* debug.h (debug_append_filename): Don't declare.
1996-01-23 20:59:18 +00:00
Ian Lance Taylor c80b0dbaee * stabs.c (struct stab_handle): Remove last_type field. Add
so_string and so_value fields.
	(finish_stab): Call stab_emit_pending_vars before calling
	debug_end_function.  Don't warn about pending variables.
	(parse_stab): Accumulate N_SO strings until a non N_SO symbol is
	seen, rather than calling debug_append_filename.  Call
	stab_emit_pending_vars before calling debug_end_function.  Don't
	set info->last_type.
1996-01-23 20:58:57 +00:00
David Edelsohn 38aa863c90 * objdump.c (disassemble_data): Handle unknown endianness. 1996-01-23 17:58:32 +00:00
David Edelsohn 458bbd1f1e Add new option --show-raw-insn.
* objdump.c (show_raw_insn): New global.
	(usage): Update.
	(long_options): Update.
	(disassemble_data): Set disasm_info.flags if --show-raw-insn.

	* objdump.c (disassemble_data): Set new arch,mach,endian fields in
	disasm_info.
1996-01-23 00:50:24 +00:00
Ian Lance Taylor 4207b304c9 * ieee.c: Extensive changes to pass a single info argument around
in the reading routines, rather than several arguments.  Add code
	to read C++ debugging records.
1996-01-23 00:35:25 +00:00
Ian Lance Taylor 35aa91b97d * debug.h (debug_get_type_size): Declare.
(debug_get_field_name): Declare.
	(debug_get_field_bitpos): Declare.
	(debug_get_field_bitsize): Declare.
	(debug_get_field_visibility): Declare.
	(debug_get_field_physname): Declare.
	* debug.c (debug_get_real_type): Handle DEBUG_KIND_TAGGED.
	(debug_get_type_size): New function.
	(debug_get_field_name): New function.
	(debug_get_field_bitpos): New function.
	(debug_get_field_bitsize): New function.
	(debug_get_field_visibility): New function.
	(debug_get_field_physname): New function.
	(debug_write_type): Make sure we pass the real kind, not INDIRECT,
	to tag_type.  Pass the name recursively for INDIRECT.
1996-01-23 00:34:58 +00:00
Ian Lance Taylor 267e52989e * debug.h (struct debug_write_fns): Remove ellipsis_type. Add int
and boolean parameters to function_type.  Add boolean parameter to
	method_type.
	(debug_make_ellipsis_type): Don't declare.
	(debug_make_function_type): Add debug_type * and boolean
	parameters.  Change all callers.
	(debug_make_method_type): Add boolean parameter.  Change all
	callers.
	(debug_get_parameter_types): Add boolean * parameter.  Change all
	callers.
	(debug_get_target_type): Declare.
	* debug.c (struct debug_function_type): Add fields arg_types and
	varargs.
	(struct debug_method_type): Add field varargs.
	(debug_ellipsis_type, ELLIPSIS_P): Remove.
	(debug_make_ellipsis_type): Remove.
	(debug_make_function_type): Add arg_types and varargs parameters.
	(debug_make_method_type): Add varargs parameter.
	(debug_get_parameter_types): Add pvarargs parameter.
	(debug_get_target_type): New function.
	(debug_write_type): In case DEBUG_KIND_FUNCTION, push argument
	types and pass count to function_type.  In DEBUG_KIND_METHOD, use
	a signed int for the count, don't call ellipsis_type, and pass
	varargs to method_type.
	* stabs.c (struct stab_demangle_info): Add varargs field.
	(stab_demangle_argtypes): Add pvarargs parameter.  Change all
	callers.
	(stab_demangle_args): Likewise.
	(stab_demangle_type): In case 'F', pick up argument types.
	* prdbg.c (pr_ellipsis_type): Remove.
	(pr_function_type): Add argcount and varargs parameters.
	(pr_method_type): Add varargs parameter.
	* ieee.c (ieee_ellipsis_type): Remove.
	(ieee_function_type): Add argcount and varargs parameters.
	(ieee_method_type): Add varargs parameter.  Remove most of
	function body, and just call ieee_function_type.
1996-01-19 19:44:00 +00:00
Ian Lance Taylor d3023c8f19 * stabs.c: Include "demangle.h". Added several new static
functions not listed below to demangle argument types; they are
	all called via stab_demangle_argtypes.
	(finish_stab): If the kind of an undefined tag is
	DEBUG_KIND_ILLEGAL, use DEBUG_KIND_STRUCT instead.  Warn if there
	are any pending variable.
	(parse_stab): Don't close the function when the block depth goes
	to zero.  Pass value to debug_end_function.
	(parse_stab_string): In case 'T', pass the name to
	parse_stab_type.
	(parse_stab_type): In case 'x', use stab_find_tagged_type.  In
	case '#', handle functions with variable numbers of arguments.
	(parse_stab_struct_type): Add tagname parameter.  Change all
	callers.
	(parse_stab_members): Add tagname and typenums parameters.  Change
	all callers.  If the type of a method is a stub, call
	parse_stab_argtypes to demangle the argument types and get the
	physical name of the function.
	(parse_stab_argtypes): New static function.
	(stab_record_variable): For a DEBUG_GLOBAL or DEBUG_STATIC
	variable, call debug_record_variable immediately.
	(stab_find_tagged_type): New static function.
1996-01-19 18:06:59 +00:00
Ian Lance Taylor 07aa1e1b7a * debug.h (enum debug_type_kind): Add DEBUG_KIND_ILLEGAL.
(struct debug_write_fns): Add field ellipsis_type.  Add id
	parameter to start_struct_type, start_class_type, and tag_type.
	(debug_make_ellipsis_type): Declare.
	(debug_find_named_type): Declare.
	(debug_get_type_kind): Declare.
	(debug_get_return_type): Declare.
	(debug_get_parameter_types): Declare.
	(debug_get_fields): Declare.
	(debug_get_field_type): Declare.
	* debug.c (struct debug_handle): Add fields class_id and base_id.
	(struct debug_class_type): Add field id.
	(struct debug_method_variant): Rename argtypes to physname.
	Change all uses.
	(debug_ellipsis_type): New static variable.
	(ELLIPSIS_P): New macro.
	(debug_make_ellipsis_type): New function.
	(debug_make_method_variant): Rename argtypes to physname.
	(debug_make_static_method_variant): Likewise.
	(debug_name_type): Always put types in the global namespace.
	(debug_find_named_type): New function.
	(debug_find_tagged_type): Treat DEBUG_KIND_ILLEGAL specially,
	rather than DEBUG_KIND_VOID.
	(debug_get_real_type): New static function.
	(debug_get_type_kind): New function.
	(debug_get_return_type): New function.
	(debug_get_parameter_types): New function.
	(debug_get_fields): New function.
	(debug_get_field_type): New function.
	(debug_write): Initialize base_id.
	(debug_write_type): Pass new id argument to tag_type.  Handle
	DEBUG_KIND_ILLEGAL.  Use id for	DEBUG_KIND_STRUCT and
	DEBUG_KIND_UNION.  Handle ellipsis for method arguments.
	(debug_write_class_type): Don't dereference kclass if it is NULL.
	Use id.
	* prdbg.c (pr_fns): Add pr_ellipsis_type.
	(pr_ellipsis_type): New static function.
	(pr_pointer_type): If this is a pointer to an array, parenthesize
	it correctly.
	(pr_start_struct_type): Add id parameter.
	(pr_start_class_type): Likewise.
	(pr_tag_type): Likewise.
	(pr_fix_visibility): Add the visibility to the top of the stack,
	not the second element on the stack.
	(pr_struct_field): Pop the stack before calling pr_fix_visibility.
	(pr_class_static_member): Likewise.
	(pr_class_start_method): Don't push a type, just set the method
	name in the type on the top of the stack.
	(pr_class_end_method): Don't pop the stack.
	(pr_class_method_variant): Rename argtypes parameter to physname.
	Append const and volatile rather than prepending them.  Add a
	space after the physname.
	(pr_class_static_method_variant): Likewise.
	* ieee.c (ieee_fns): Add ieee_ellipsis_type.
	(ieee_define_named_type): Use DEBUG_KIND_ILLEGAL rather than
	DEBUG_KIND_VOID.
	(write_ieee_debugging_info): Likewise.
	(ieee_typdef): Likewise.
	(ieee_ellipsis_type): New static function.
	(ieee_start_struct_type): Add id parameter.
	(ieee_start_class_type): Likewise.
	(ieee_tag_type): Likewise.
	(ieee_class_method_variant): Rename name to physname.
	(ieee_class_static_method_variant): Likewise.
1996-01-19 18:03:04 +00:00
Kim Knuttila 00d6548424 Changed section orders for alignment purposes 1996-01-18 22:48:53 +00:00
J.T. Conklin 264dac7c64 * srconv.c (wr_du): Set du.stackfrmt to 0.
(wr_un, wr_sc): Emit all sections, even those with 0 size.
1996-01-17 22:27:12 +00:00
J.T. Conklin 9ac5703369 * srconv.c (wr_hd): Space size within segment was being
stored in segment identifier field.
1996-01-17 00:17:13 +00:00
Stan Shebs dda8716b94 * mpw-config.in (BUILD_NLMCONV, BUILD_SRCONV, SYSINFO_PROG,
BUILD_DLLTOOL): Put definitions for these into makefile when
	configuring, instead of always clearing in mpw-make.sed.
	* mpw-make.sed: Edit out any host_alias or target_alias settings,
	fix pathname to BFD internal include files, remove dependency
	calculation rules.
1996-01-16 20:12:17 +00:00
Ian Lance Taylor 854efa68e8 * binutils-all/objcopy.exp: Use the lma, not the vma, when testing
address adjustments.
1996-01-15 23:14:52 +00:00
Michael Meissner 71897943c4 update copyright 1996-01-11 22:50:52 +00:00
Michael Meissner 83f4323e5a Add support for SHT_ORDERED and SHF_EXCLUDE 1996-01-11 22:47:04 +00:00
Ian Lance Taylor f2165194a4 * objcopy.c (filter_symbols): NULL terminate the output symbols.
(copy_object): Allocate space for a possible extra NULL pointer.
1996-01-11 17:34:12 +00:00
Ian Lance Taylor 499452f3cc * ieee.c (ieee_enum_type): Handle an undefined enum. 1996-01-11 17:33:47 +00:00
Ian Lance Taylor 36302909f2 * debug.c (debug_make_undefined_tagged_type): Make sure we are
given a kind of type we can handle.
	(debug_write_type): Handle undefined enums and structs.
	(debug_write_class_type): Handle undefined classes.
	* prdbg.c (pr_enum_type): Handle an undefined enum.
Also comment changes to debug.h.
1996-01-11 16:47:10 +00:00
Ian Lance Taylor 5207a907b6 * Makefile.in: (ALLOCA, MALLOC): Remove variables.
(ADDL_LIBS): Remove $(MALLOC) from definition.
	* alloca.c, gmalloc.c: Remove.
1996-01-10 20:43:39 +00:00
Ian Lance Taylor 0374a10562 * Makefile.in: Updated dependencies. 1996-01-10 20:33:36 +00:00
Ian Lance Taylor 3d01586485 * ieee.c: Add global function write_ieee_debugging_info and a
bunch of static functions and structs used to write out IEEE
	debugging information.
	* budbg.h (write_ieee_debugging_info): Declare.

	* ieee.c (struct ieee_type): Add pslot field.
	(enum builtin_types): Define.
	(ieee_builtin_type): For a pointer, return a pointer to the named
	type.  Use enum values rather than numbers.
	(ieee_alloc_type): New static function.
	(ieee_read_type_index): Use ieee_alloc_type.
	(parse_ieee_bb): Likewise.
	(parse_ieee_ty): Likewise.  Use ieee_builtin_type for array range,
	rather than making a new integer type.  Store the new type in the
	slot, if there is one.
	(parse_ieee_atn): Treat ATN10 as defining a register variable.
	(ieee_regno_to_genreg): Rename from ieee_regno_to_gen.  Change all
	callers.
	(ieee_genreg_to_regno): New static function.
1996-01-08 23:20:00 +00:00
Ian Lance Taylor 1ff0de4529 * stabs.c (parse_stab_type): Add new typename parameter. Change
all callers.
	(parse_stab_range_type): Add new typename parameter.  Change all
	callers.
1996-01-08 23:19:17 +00:00
Ian Lance Taylor 63840d265c * debug.h (struct debug_write_fns): Add tag parameter to
enum_type, start_struct_type, and start_class_type.
	* debug.c (debug_write_type): Pass any tag name to
	start_struct_type, debug_write_class_type, and enum_type.  If
	DEBUG_KIND_TAGGED, pass the name in the recursive call.
	(debug_write_class_type): Accept a new tag parameter, and pass it
	to start_class_type.
	* prdbg.c (pop_type): Don't remove '+' character.
	(pr_enum_type): Accept and use tag parameter.
	(pr_start_struct_type): Likewise.
	(pr_start_class_type): Likewise.
	(pr_class_baseclass): Adjust algorithm used to find where to put
	the baseclass name.
	(pr_tag): Don't bother to insert the tag name.
1996-01-08 23:18:51 +00:00
Ian Lance Taylor f5818d79dd * objcopy.c: Include budbg.h.
(convert_debugging): New static variable.
	(OPTION_DEBUGGING): Define.
	(copy_options): Add "debugging".
	(copy_usage): Mention --debugging.
	(is_strip_section): Skip debugging sections if convert_debugging.
	(setup_section, copy_section): Likewise.
	(filter_symbols): Skip debugging symbols if convert_debugging.
	(copy_object): If convert_debugging, read and write debugging
	information.
	(write_debugging_info): New static function.
	(copy_main): Handle --debugging.
	* Makefile.in (DEBUG_OBJS): New variable.
	($(OBJCOPY_PROG)): Depend upon and link against $(DEBUG_OBJS).
	($(STRIP_PROG)): Likewise.
	(OBJDUMP_OBJS): Remove variable.
	($(OBJDUMP_PROG)): Use objdump.o $(DEBUG_OBJS) rather than
	$(OBJDUMP_OBJS).
	* binutils.texi, objcopy.1: Document --debugging.
1996-01-08 23:18:29 +00:00
Ian Lance Taylor 1a418120d7 update copyright 1996-01-08 23:14:40 +00:00
Ian Lance Taylor f516798679 * ieee.c: New file with code to read IEEE debugging information.
* budbg.h (parse_ieee): Declare.
	* rddbg.c (read_debugging_info): Handle IEEE flavour files.
	(read_ieee_debugging_info): New static function.
	* Makefile.in: Rebuild dependencies.
	(CFILES): Add ieee.c.
	(OBJDUMP_OBJS): Add ieee.o.
1996-01-04 21:35:04 +00:00
Ian Lance Taylor e1c145993e Implement generic debugging support. Implement a stabs reader and
a generic printer.
	* budbg.h, debug.c, debug.h, prdbg.c, rddbg.c, stabs.c: New files.
	* objdump.c: Include "debug.h" and "budbg.h".
	(dump_debugging): New global variable.
	(usage): Mention --debugging.
	(long_options): Add "debugging".
	(display_bfd): Handle --debugging.
	* Makefile.in (OBJDUMP_OBJS): New variable.
	($(OBJDUMP_PROG)): Use $(OBJDUMP_OBJS).
	* binutils.texi, objdump.1: Document --debugging.
1996-01-02 22:48:58 +00:00
Ian Lance Taylor cd46af111e * Makefile.in: Add targets to automatically rebuild dependencies.
Remove targets which just listed dependencies of .o files.
	(DEP): New variable.
	(HFILES, GENERATED_HFILES): New variables.
	(CFILES, GENERATED_CFILES): New variables.
	(underscore.c): Don't do anything, just depend upon stamp-under.
	(stamp-under): New target; do what underscore.c used to do.
	(nlmconv.o): Depend upon sym.h and ecoff.h.
	(.dep, .dep1, dep.sed, dep, dep-in): New targets.
	(stage1, stage2, stage3, against, comparison): Remove.
	(de-stage1, de-stage2, de-stage3): Remove.
	(clean, distclean): Remove stamp-under and dep.sed.
	* dep-in.sed: New file.

	* Makefile.in (OBJDUMP_OBJS): New variable.
	($(OBJDUMP_PROG)): Use $(OBJDUMP_OBJS).
1996-01-02 22:48:13 +00:00
Jeff Law dcd6706b1a * nm.c ( long_options): Add "--defined-only" option.
(usage): Update for new "--defined-only" option.
        (filter_symbols): Handle "--defined-only".
Part of mentor vm work.
1995-12-30 17:02:06 +00:00
Ian Lance Taylor 428e7fb4c2 * arparse.y: Include "bucomm.h", not <sysdep.h>.
* nlmheader.y: Don't include "sysdep.h".
1995-12-29 21:02:02 +00:00
Ian Lance Taylor 5d0bc3b9df * nm.c (print_symdef_entry): Check return value of
bfd_get_elt_at_index.
1995-12-26 23:20:35 +00:00
Michael Meissner 7920c1d195 Build dlltool if config is powerpc*-*-win* 1995-12-23 16:05:03 +00:00
Steve Chamberlain 445604d7eb * dlltool.c (fill_ordinals): Start from 1 if no other instructions
given.
1995-12-15 15:52:56 +00:00
Ian Lance Taylor 64c4b2ad86 * Makefile.in (clean): Remove $(DEMANGLER_PROG).1. From Ronald
F. Guilmette <rfg@monkeys.com>.
1995-12-12 17:08:17 +00:00
Stan Shebs f44f761453 * mac-binutils.r: Fix copyright and version strings.
* Makefile.in (version): Remove, no longer used.
1995-12-11 22:35:35 +00:00