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.)
Mon Oct 5 09:46:44 1992 Ian Lance Taylor (ian@cygnus.com)
* 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.
* Makefile.in (TSOBS): removed corelow.o.
* infptrace.c: included nat.h.
* nat-trash.h: temporary header file. This should be removed once
all hosts have the native/host/target split.
* configure.in: add a symlink from nat-trash.h to nat.h if no
other nat file exists for this configuration.
* sparc-tdep.c: no longer include sys/ptrace.h.
* sparc-xdep.c: removed. contents have been moved to nat-sparc.c.
* xm-sparc.h (ATTACH_DETACH, FETCH_INFERIOR_REGISTERS): moved to
nat-sun4os4.h.
* nat-sparc.c, nat-sun4os4.h: new files for sun4 native support.
* config/sun4os4.mh (XDEPFILES): moved infptrace.o and inftarg.o
to NATDEPFILES. removed sparc-xdep.o.
(NATDEPFILES, NAT_FILE): new macros for native support.
* Makefile.in (TSOBS): removed corelow.o.
* infptrace.c: included nat.h.
* nat-trash.h: temporary header file. This should be removed once
all hosts have the native/host/target split.
* configure.in: add a symlink from nat-trash.h to nat.h if no
other nat file exists for this configuration.
* sparc-tdep.c: no longer include sys/ptrace.h.
* sparc-xdep.c: removed. contents have been moved to nat-sparc.c.
* xm-sparc.h (ATTACH_DETACH, FETCH_INFERIOR_REGISTERS): moved to
nat-sun4os4.h.
* nat-sparc.c, nat-sun4os4.h: new files for sun4 native support.
* config/sun4os4.mh (XDEPFILES): moved infptrace.o and inftarg.o
to NATDEPFILES. removed sparc-xdep.o.
(NATDEPFILES, NAT_FILE): new macros for native support.
Break the direct connection from core_file_command to any
particular type of core file support.
* target.h (find_core_target): new prototype.
* target.c (find_core_target): new function. Walks the target
list looking for the core target.
* core.c (core_file_command): replace calls to core_detach and
core_open with find_core_target and direct calls.
Ian Lance Taylor [Tue, 29 Sep 1992 21:13:29 +0000 (21:13 +0000)]
Tue Sep 29 14:11:18 1992 Ian Lance Taylor (ian@cygnus.com)
* Makefile.in: added -nostdinc to XTRAFLAGS if we are using gcc
from the same source tree and not building a cross-compiler. This
matters for the libg++ configuration if reconfiguring a tree that
has already been installed.
Ian Lance Taylor [Tue, 29 Sep 1992 18:38:20 +0000 (18:38 +0000)]
Tue Sep 29 10:51:55 1992 Ian Lance Taylor (ian@cygnus.com)
* tc-i960.h, tc-i960.c: avoid the ANSI preprocessor addition
#elif, since it is not supported by old compilers.
ho-rs6000.h, tc-m68k.c: the native RS/6000 compiler miscompiles a
couple of expressions in tc-m68k.c.
Ian Lance Taylor [Tue, 29 Sep 1992 15:47:03 +0000 (15:47 +0000)]
Tue Sep 29 08:30:21 1992 Ian Lance Taylor (ian@cygnus.com)
* Portability fixes from p3:
coffcode.h (coff_write_relocs): removed sanity check until it
works on all targets (per advice from sac).
config/hp9000.mh: new file to define USG.
hppa.c: #undef hppa before the JUMP_TABLE.
hosts/hppahpux.h: #define NATIVE_HPPAHPUX_COMPILER if not
__STDC__.
targets.c (bfd_target_list): if NATIVE_HPPAHPUX_COMPILER, make
local variable target volatile to avoid mysterious bug in
HP9000/700 cc.
Stu Grossman [Tue, 29 Sep 1992 05:07:30 +0000 (05:07 +0000)]
* breakpoint.c, exec.c, language.c, main.c, printcmd.c, symfile.c,
target.c, valprint.c: Use unfiltered forms of f/printf, et. al.
until we can figure out a better way to do paging.
John Gilmore [Sat, 26 Sep 1992 10:29:01 +0000 (10:29 +0000)]
* config/hppabsd.mh, config/hppahpux.mh: Use standard coredep.o.
Rename all HPPA files to fit into unique DOS filenames:
* *hppabsd* => *hppab*
* *hppahpux* => *hppah*
John Gilmore [Sat, 26 Sep 1992 10:24:26 +0000 (10:24 +0000)]
* findvar.c (supply_register): Add CLEAN_UP_REGISTER_VALUE hook.
* tm-hppa.h (CLEAN_UP_REGISTER_VALUE): Use it.
* hppa-coredep.c: Remove, now that we use the hook.
* config/hppab.mh, config/hppah.mh: Use standard coredep.o.
* hppab-xdep.c, hppah-xdep.c: Remove custom code, use hook.
* dbxread.c, partial-stab.h: Replace all #ifdef hp9000s800's with
GDB_TARGET_IS_HPPA's. This is a SERIOUS KLUDGE. The code needs to all
be ripped out and reimplemented right (see elfread.c).
* tm-hppa.h (GDB_TARGET_IS_HPPA): Define.
John Gilmore [Sat, 26 Sep 1992 09:06:30 +0000 (09:06 +0000)]
Make the /proc support a target-struct in its own right.
* inferior.h (proc_wait, inferior_proc_init, proc_set_exec_trap):
No longer global functions.
(fork_inferior): New global function from fork-child.c.
* inftarg.c (child_wait): Remove USE_PROC_FS conditional.
(ptrace_me, ptrace_him): New stub functions for fork_inferior().
(child_create_inferior): Moved to fork-child.c as fork_inferior.
(child_create_inferior): New tiny function that calls fork_inferior.
* fork-child.c: New file, containing fork_inferior, which is
built from slight mods to inftarg.c's child_create_inferior.
* procfs.c (procfs_ops): Add target vector.
(attach): Rename as static do_attach.
(procfs_create_inferior): New tiny function that calls fork_inferior.
(child_xfer_memory): Rename to static procfs_xfer_memory.
(store_inferior_registers): Rename to static procfs_store_registers.
(inferior_proc_init): Rename to static procfs_init_inferior.
(procfs_attach, procfs_detach, procfs_prepare_to_store,
procfs_files_info, procfs_open, procfs_mourn_inferior,
procfs_can_run): Slightly mangled copies of the corresponding
child_XXX routines from inftarg.c.
(proc_wait): Renamed to static procfs_wait.
(child_resume): Rename to static procfs_resume.
(fetch_inferior_registers): Rename to static procfs_fetch_registers.
(initialize_proc_fs): Rename to initialize_procfs. Set up
procfs_ops, too.
* xm-irix4.h, xm-sysv4.h (CREATE_INFERIOR_HOOK): No longer needed.
John Gilmore [Sat, 26 Sep 1992 09:04:24 +0000 (09:04 +0000)]
* putenv.c: index -> strchr.
* regex.c: Always rename bcopy to memcpy, etc.
FIXME: Eventually do the renames rather than use #define's.
* sparc-tdep.c (deferred_stores): Moved from sparc-xdep.c.
Fix bcopy->memcpy.
* sparc-xdep.c: Move deferred_stores to target dependent.
John Gilmore [Sat, 26 Sep 1992 08:06:45 +0000 (08:06 +0000)]
* Makefile.in: Remove inftarg.[co], since it is now included via
config/*.mh files.
* config/*.mh: Add inftarg.o and fork-child.o to all *.mh that
reference infptrace.o. Add fork-child.o to all *.mh that
reference procfs.o.
John Gilmore [Sat, 26 Sep 1992 05:20:24 +0000 (05:20 +0000)]
Split non-target-dependent code out of target_attach routines.
* target.h: Comments on target_attach args and results.
* infcmd.c (attach_command): Check for existing execution, call
target_attach, set up terminal status and wait_for_inferior, wait
for the attach status, and do normal_stop.
* inftarg.c (child_attach): Remove target independent stuff.
* remote-adapt.c (adapt_attach): Ditto.
* remote-mm.c (mm_attach): Ditto.
* remote-udi.c (udi_attach): Ditto.
* remote-vx.c (vx_attach): Ditto.
Cleanup.
* remote-hms.c (hms_attach): Remove completely, it was useless.
* remote-mm.c, remote-hms.c, remote-udi.c, remote-adapt.c: Remove
commented-out start_remote calls.
* remote-hms.c, remote-adapt.c, remote-mm.c, remote-udi.c: Remove
DENTER and DEXIT macros and their calls. Use a real debugger --
like gdb -- to see what functions are being called when.
John Gilmore [Sat, 26 Sep 1992 02:20:05 +0000 (02:20 +0000)]
Add Adobe a.out support.
* aout-adobe.c: New file. So far, only reads a.out.adobe. FIXME.
* config/adobe.mt: Add.
* configure.in (*-adobe-* target): Add.
* targets.c (a_out_adobe_vec): Add.
* Makefile.in: add aout-adobe.c.
* configure.in: Put two dashes in all entries to be matched.
Add comments to remind people to do this.
Reorder all entries that match manufacturer names, to occur
last, so they will only be matched if no more specific match
occurs. Remove manufacturers `aout', `bout', `coff', and `elf'.
Ian Lance Taylor [Sat, 26 Sep 1992 01:20:04 +0000 (01:20 +0000)]
Fri Sep 25 18:18:52 1992 Ian Lance Taylor (ian@cygnus.com)
* tc-m68k.h: if M68KCOFF, define DOT_LABEL_PREFIX (to require
local labels to start with a .) and set REGISTER_PREFIX to %.
tc-m68k.c (m68k_reg_parse): accept REGISTER_PREFIX if defined.
Stu Grossman [Fri, 25 Sep 1992 22:59:27 +0000 (22:59 +0000)]
* tm-sparc.h, dbxread.c (read_ofile_symtab): Install Jim Wilson's
fix to differentiate between gcc1 & gcc2 compiled files so that we
can debug calls that pass structs as args correctly.
* symmisc.c (dump_symtab): If block was compiled with gcc, say
so, and what version.
Stu Grossman [Fri, 25 Sep 1992 22:23:54 +0000 (22:23 +0000)]
* remote.c (remote_wait): Make regs be char to avoid picayune
ANSI compiler warnings.
* energize.h: Move all external struct decls to inside of
__STDC__, add prototype for energize_shell_wait().
* energize.c (getpty): Clean up, make us really get a controlling
terminal.
* (energize_initialize): Disable SIGIO prior to setting up for
I/O interrupts. Move setsid(), et. al. to getpty().
* (energize_shell_wait): New routine to wait for things started
via the shell command, uses wait() instead of /dev/proc.
* Also, add prototype for execute_command_1().
* elf.c (section_from_elf_index): Return bfd_abs_section, not 0,
since we should never have a NULL section.
(elf_slurp_symbol_table): If st_shndx doesn't match any of our
tests, set the section to bfd_abs_section.
* ld.h (strip_symbols_type): Add value STRIP_SOME.
* ldgram.y (OPTION_RETAIN_SYMBOLS_FILE): New terminal token.
(lang_add_keepsyms_file): New function.
* ldlex.l: Handle "-retain-symbols-file".
* ldsym.c (keepsyms_file, kept_syms): New vars.
(process_keepsyms): New functihon; reads file, marks symbols for saving.
(write_file_locals): File symbols should always be kept.
(ldsym_write): Warn about "-retain-symbols-file" overriding "-S" and "-s".
Process retain-symbols file before setting symtab.
* ldsym.h (SYM_KEEP): New flag for ldsym_type flags.
(keepsyms_file, kept_syms): Declare them.
* ldmain.c (main): Non-fatal errors should still cause non-zero exit status
even with -r.
Stu Grossman [Fri, 25 Sep 1992 19:48:50 +0000 (19:48 +0000)]
* readline.c (clear_to_eol, rl_generic_bind): Make static.
(rl_digit_loop): Add arg to call to rl_message().
* vi_mode.c (rl_vi_first_print): Add arg to call to
rl_back_to_indent().
* inftarg.c (child_create_inferior, child_attach,
child_mourn_inferior): collect unix child process stratum
functions which live below the target vector into this file to
facilitate host/target/native split. Also, make them static.
* inflow.c (child_mourn_inferior): removed.
* infrun.c (child_create_inferior, child_attach): removed.
(resume): becomes global so that functions below the
target vector can find it.
* inferior.h (resume): add prototype.
(child_mourn_inferior, child_create_inferior, child_attach):
remove prototypes.
Fri Sep 25 11:11:57 1992 Steve Chamberlain (sac@thepub.cygnus.com)
* coff-z8k.c: getting closer
* coffcode.h (coff_get_relocated_section_contents): allow
EXTRA_CASES hooks for different arches to provide different reloc
types.
* seclet.h: #ifndef around it to allow multiple inclusion
* srec.c: minor doc fix