Per Bothner [Wed, 14 Oct 1992 20:35:29 +0000 (20:35 +0000)]
* copy.c: Re-do command-line parsing to use getopt_long().
Add long option names. Re-think option letters to be more
consistent.
* copy.c: New function filter_symbols() for stripping only
debug-symbols and/or local symbols. Use these to support
the previously-missing options of the old FSF strip.
* xm-hppah.h: if __STDC__ is not defined, define
HPPA_COMPILER_BUG.
symtab.c (decode_line_1): avoid a bug in the HP9000/700 native
compiler; see the comment in the file.
Here's the comment from the file:
/* FIXME: The native HP 9000/700 compiler has a bug which appears
when optimizing this file with target i960-vxworks. I haven't
been able to construct a simple test case. The problem is that
in the second call to SKIP_PROLOGUE below, the compiler somehow
does not realize that the statement val = find_pc_line (...) will
change the values of the fields of val. It extracts the elements
into registers at the top of the block, and does not update the
registers after the call to find_pc_line. You can check this by
inserting a printf at the end of find_pc_line to show what values
it is returning for val.pc and val.end and another printf after
the call to see what values the function actually got (remember,
this is compiling with cc -O, with this patch removed). You can
also examine the assembly listing: search for the second call to
skip_prologue; the LDO statement before the next call to
find_pc_line loads the address of the structure which
find_pc_line will return; if there is a LDW just before the LDO,
which fetches an element of the structure, then the compiler
still has the bug. */
John Gilmore [Fri, 9 Oct 1992 11:48:24 +0000 (11:48 +0000)]
First cut at support for all BSD variants on 386.
* tm-i386bsd.h, xm-i386bsd.h: New config files.
* i386b-nat.c: New native support file.
* configure.in: Add host and target for i[34]86-*-bsd*.
* config/i386bsd.mh, config/i386bsd.mt: New config files.
John Gilmore [Fri, 9 Oct 1992 11:38:30 +0000 (11:38 +0000)]
* configure.host: New file, contains mapping of host configs
to host support file names for bfd, binutils, opcodes.
* configure.in: Use it.
* i386aout.c: Cleanup, dump TARGET_IS_LITTLE_ENDIAN_P.
* i386bsd.c: Cleanup, reformat.
* config/i386-bsd.mt: Comment changes.
* config/i386bsd.mh: New file for core file support.
* hosts/i386bsd.h: Merge changes from Peter Schauer.
* bout.c (ALIGN): Rename to ALIGNER, since system header files
on BSD 4.4 define ALIGN (sigh!).
Ken Raeburn [Fri, 9 Oct 1992 01:39:06 +0000 (01:39 +0000)]
* aout-target.h (callback): Don't define this function if it won't be used.
* aoutx.h (some_aout_object_p): Restore old aout_data value if this type
doesn't match. Don't lose if file sections have already been created.
(set_arch_mach): Set reloc_entry_size.
(slurp_symbol_table): Use bfd_h_get_{16,8} for reaeding symbol data.
* hosts/i386bsd.h: New file.
* configure.in: Recognize i[34]86-*-bsd host.
* aoutx.h (reloc_type_lookup): New function.
* aout-target.h (MY_reloc_howto_type_lookup): Use it as default.
* aoutf1.h (sunos4_reloc_type_lookup): Deleted.
(MY_reloc_howto_type_lookup): Don't define it.
* aoutx.h (adjust_sizes_and_vmas): Don't bother with padding for OMAGIC files.
(slurp_symbol_table): Use header byte order, not target byte order, for reading
symbol data.
John Gilmore [Fri, 9 Oct 1992 01:34:32 +0000 (01:34 +0000)]
* configure.in: Undo some brain damage in the host section.
* Makefile.in (make): Remove obsolete `make make'.
* aoutx.h (some_aout_object_p): Make defines line up.
Fred Fish [Thu, 8 Oct 1992 17:43:08 +0000 (17:43 +0000)]
Save i386bsd.c since it is now required to build bfd.
(Am I the *only* one that regularly builds sanitized trees and thus
gets to clean up these things?)
Now a bfd knows whether underscores are normally prepended
to symbols in its file format. Helps with error messages.
* aout-adobe.c, aout-target.h, bout.c, coff-a29k.c, coff-h8300.c,
coff-z8k.c: targets set so they have leading underscore
* coff-i386.c, coff-i960.c, coff-m68k.c, coff-mips.c, coff-m88k.c,
coff-rs6000.c, coff-we32k.c, elf.c, ieee.c, srec.c: targets set
without leading underscore flag
* targets.c: add symbol leading char to xvec description
* bfd-in.h (bfd_get_symbol_leading_char): new macro.
Ken Raeburn [Thu, 8 Oct 1992 02:09:28 +0000 (02:09 +0000)]
* Makefile.in (nindy.o): Define "STRIP" as pathname of strip program.
* nindy-share/nindy.c (coffstrip): Use that pathname, instead of searching for
a "bfd_strip" program. Also, fixed up arguments passed to that program.
* tm-nindy960.h (ADDITIONAL_OPTIONS): Use "-ser" rather than "-r", which is now
used for something else. Rewrite description of associated parameters to match
how gdb does it now.
(ADDITIONAL_OPTION_HELP): Fix message accordingly.
* m68k-pinsn.c (print_insn_arg): Handle new "`" operand type.
Sean Eric Fagan [Tue, 6 Oct 1992 23:03:51 +0000 (23:03 +0000)]
Added remote-ser.c, which is a version of remote.c that uses the routines
in the ser-*.c files. Needed for some systems, such as GO32, which don't
have stuff like <termios.h>. Makefile.in now uses $(REMOTE), which defaults
to remote.o, instead of remote.o.
Per Bothner [Tue, 6 Oct 1992 21:25:08 +0000 (21:25 +0000)]
* Makefile.in (*clean rules): Some cleaning up.
* Makefile.in (dist): Make diststuff in gprof for a dist.
* ar.c (do_show_version): New function.
* ar.c (main): Fix so "ar -V" works.
John Gilmore [Tue, 6 Oct 1992 09:33:15 +0000 (09:33 +0000)]
* language.c, language.h: Move saved_language out to global
expected_language. Set expected_language when user expectation
changes.
* language.c (language_info): Don't print type/range checking gub.
* main.c (main): Set expected language.
(execute_command): Check against expected language.
* symfile.c (set_initial_language): Set expected language.
John Gilmore [Tue, 6 Oct 1992 09:22:43 +0000 (09:22 +0000)]
A bunch of changes mostly to improve debugging of C++ programs.
Specifically, the calling of inferiors methods is improved.
* value.h: New macros METHOD_PTR_IS_VIRTUAL,
METHOD_PTR_FROM_VOFFSET, METHOD_PTR_TO_VOFFSET to partially
hide the implementation details of pointer-to-method objects.
How to tell if the pointer points to a virtual method is
still very dependent on the particular compiler, but this
should make it easier to find the places to change.
* eval.c (evaluate_subexp [case OP_FUNCALL]), valprint.c
(val_print [case TYPE_CODE_PTR]): Use the new METHOD_PTR_*
macros, instead of a hard-wired-in code that incorrectly
assumed a no-longerused representation of pointer-to-method
values. And otherwise fix the relevant bit-rotted code.
* valprint.c (type_print_base [case TYPE_CODE_STRUCT]):
If there are both fields and methods, put a space between.
* stabsread.c (read_struct_type): Fix bug in handling of
GNU C++ anonymous type (indicated by CPLUS_MARKER followed
by '_'). (It used to prematurely exit the loop reading in
the fields, so it would think it should start reading
methods while still in the fields. This could crash gdb
given a gcc that can emit nested type information.)
* valops.c (search_struct_method): Pass 'this' value by
reference instead of by value. This provides a more
consistent interface through a recursive search where the
"bottom" functions may need to adjust offsets (due to multiple
inheritance).
* valops.c, value.h, values.c: Pass extra parameters to
value_fn_field and value_virtual_fn_field so we can
correctly adjust offset for multiple inheritance.
* eval.c (evaluate_subexp [case OP_FUNCALL]): Simplify
virtual function calls by using value_virtual_fn_field().
* values.c: New function baseclass_offset, derived from
baseclass_addr (which perhaps can be made obsolete?).
It returns an offset rather than an address. This is a
cleaner interface since it doesn't mess around allocating
new values.
* valops.c (search_struct_method): Use baseclass_offset
rather than baseclass_addr.
Per Bothner [Tue, 6 Oct 1992 00:57:18 +0000 (00:57 +0000)]
* gen-c-prog.awk: New awk script, lightly changed from
previously deleted make-c-prog.awk. Converts a text file
to a c function that prints that text.
* flat_bl.m, fsf_callg_bl.m, bsd_callg_bl.m: New files.
Inputs to gen-c-prog.awk, containing text describing
gprof output.
* blurbs.c: Removed. Use *_bl.c instead.
* Makefile.in: Use gen-cprog.awk to generate *_bl.c files
from *_bl.m files. Also, improve *clean rules.
* printgprof.c (printgprof): Usw new function names from *_bl.c.
fix i960+non-bfd coff bit rot.
* obj-coff.c (c_dot_file_symbol, obj_coff_ln, obj_coff_line):
support for C source listings. (obj_coff_endef): look in the right
part of the symbol for the symbol name
Stu Grossman [Mon, 5 Oct 1992 23:19:59 +0000 (23:19 +0000)]
* Makefile.in: Re-install 29K/UDI stuff.
* remote-udi.c (udi_resume): Clean up.
* (udi_wait): Rewrite, leave out bugs.
* Add debugging code to print out all register fetches and stores.
* Straighten out target_ops.
* tm-29k.h (DUMMY_FRAME_RSIZE): Pad out to doubleword.
Per Bothner [Mon, 5 Oct 1992 21:36:56 +0000 (21:36 +0000)]
* archive.c (_bfd_write_archive_contents): If read fails,
set bfd_error to malformed_archive (since this probably
indicates a truncated archive), rather than system_call_error.
(Handles PRMS 1624.)
* remote-udi.c (udi_create_inferior): run with no arguments should
not pass the program name as an argument, since the UDI code
already handles that.
(udi_load): get the symbols from prog_name, not arg_string (the
load command should really use arg_string as the program name, not
prog_name, but at least the run command works now).
John Gilmore [Sat, 3 Oct 1992 05:28:42 +0000 (05:28 +0000)]
Changes to make 29k function calls work better at Adobe.
* am29k-tdep.c (_initialize_29k): Make it possible for the
user to set and query the address where function calls into the
inferior write a small scratch routine. `set call_scratch_address'
* inferior.h (PC_IN_CALL_DUMMY): Fix fencepost error.
* remote.c (remote_prepare_to_store): Only fetch regs if they are
not already cached validly.
* infptrace.c: remove #ifdef USG from around include ptrace.h.
machines without this header should not be compiling this file.
* nm-rs6000.h, rs6000-nat.c: new files for native support.
* rs6000-tdep.c: do not include sys/ptrace.h or sys/reg.h.
* rs6000-xdep.c: removed. all code now in rs6000-nat.c.
* xm-rs6000.h: do not include ptrace.h.
(ATTACH_DETACH, FETCH_INFERIOR_REGISTERS): moved to nm-rs6000.h.
* config/rs6000.mh (XDEPFILES): removed rs6000-xdep.o.
infptrace.o and inftarg.o move to NATDEPFIES.
(NAT_FILE, NATDEPFILES): new macro for native support.
* config/sun3os3.mh, config/sun3os4.mh (NAT_FILE, NATDEPFILES):
new macros for native support.
(XDEPFILES): moved infptrace.o and inftarg.o to NATDEPFILES,
removed sun3-xdep.o.
* xm-sun3.h (ATTACH_DETACH, FETCH_INFERIOR_REGISTERS): moved to
nm-sun3.h.
* sun3-xdep.c: removed. All code is now in sun3-nat.c.
* sun3-nat.c, nm-sun3.h: new files for native support.
Fred Fish [Thu, 1 Oct 1992 17:33:21 +0000 (17:33 +0000)]
* dwarfread.c (dbsize): New variable to hold size of dwarf info.
* dwarfread.c (dwarf_build_psymtabs): Rename dbsize parameter to
dbfsize and use it to initialize new local file scope dbsize.
* dwarfread.c (read_ofile_symtab): Initialize dbsize and use it.
* dwarfread.c (basicdieinfo): Use dbsize to check for oversize
DIEs as well as the current check for undersize DIEs. This helps
to gracefully detect and reject corrupted DIE information.
John Gilmore [Thu, 1 Oct 1992 09:57:36 +0000 (09:57 +0000)]
Add `command hooks' and a hook for inferior program stopping.
* command.h (struct cmd_list_element): Remove unused `aux'
field. Add new `hook', `hookee', and `cmd_pointer' fields.
* command.c (add_cmd): Initialize new fields, elim old.
(add_alias_cmd): Clone new fields.
(delete_cmd): Un-hook hookee if we're deleting hook.
(help_cmd): Tell user the command is hooked, if it is.
(lookup_cmd_1): Abbreviations return the original command
instead of themselves, so that hooks on the original cmd will be
run.
* defs.h (enum command_class): Add class_pseudo and comments.
* gdbcmd.h (execute_user_command): Add prototype.
* infrun.c (normal_stop): If the stop command is hooked,
run the hook whenever we stop.
(hook_stop_stub): Stub for catch_errors.
(_initialize_infrun): Set up pseudo "stop" command.
* main.c (execute_user_command): Code extracted from execute_command.
(execute_command): If hooked, run the hook before the command.
(define_command): If defining a new hook, check the command it
is hooking, and warn if none. Install the hook.
* source.c (_initialize_source): "l" is an abbrev for "list".
* doc/gdb.texinfo: Document command hooks.
* Makefile.in (VERSION): Roll to 4.6.7.
* config/sun4os4.mh: Remove dup inftarg.o from NATDEPFILES.
* infrun.c (breakpoints_inserted): Make it static again.
* tm-symmetry.h (FLOAT_INFO): #if 0 it for cross-ptrace abuse.
* nat-sparc.c -> sparc-nat.c
* nat-sun4os4.h -> nm-sun4os4.h
* nat-trash.h -> nm-trash.h
* configure.in: link to nm.h rather than nat.h.
* infptrace.c: include nm.h rather than nat.h.