2003-01-23 Alexander Larsson <alexl@redhat.com>
Jim Blandy <jimb@redhat.com>
Add support for executables whose debug info has been separated
out into a separate file, leaving only a link behind.
* objfiles.h (struct objfile): New fields: separate_debug_objfile
and separate_debug_objfile_backlink.
(put_objfile_before): New declaration.
* symfile.c: #include "filenames.h".
(symbol_file_add_with_addrs_or_offsets): If this objfile has its
debug info in a separate file, read that, too. Save the addrs
argument, so we can use it again to read the separated debug info;
syms_from_objfile modifies the table we pass it.
(reread_symbols): After re-reading an objfile, call
reread_separate_symbols to refresh its separate debug info
objfile, if it has one.
(reread_separate_symbols, find_separate_debug_file,
get_debug_link_info, separate_debug_file_exists): New functions.
(debug_file_directory): New global var.
(_initialize_symfile): Initialize debug_file_directory, and
provide the new `set debug-file-directory' command to let the user
change it.
* objfiles.c (free_objfile): If this objfile has its debug info in
a separate objfile, free that one too. If this is itself a
separate debug info objfile, clear our parent's backlink.
(put_objfile_before): New function.
* utils.c (gnu_debuglink_crc32): New function.
* defs.h (gnu_debuglink_crc32): New declaration.
* Makefile.in (symfile.o): Note dependency on "filenames.h".
* configure.in: Handle --with-separate-debug-dir config option.
* acinclude.m4 (AC_DEFINE_DIR): New macro.
* acconfig.h (DEBUGDIR): New macro.
* configure, aclocal.m4, config.in: Regenerated.
gdb/doc/ChangeLog:
2003-01-23 Jim Blandy <jimb@redhat.com>
* gdb.texinfo (Separate Debug Files): New section.
AC_CHECK_FUNCS and remove the old check for pread64.
* acinclude.m4 (AC_GNU_SOURCE): New macro.
* acconfig.h (_GNU_SOURCE): Add.
(HAVE_PREAD64): Remove.
* configure, aclocal.m4, config.in: Regenerated.
* Makefile.in: Add GDBTK_CFLAGS - this is now used to hold
-fwritable-strings when compiling with Tk8.1.
* configure.in: Add GDBTK_CFLAGS, set it to -fwritable-strings for
Tcl/Tk8.1 & greater.
* acinclude.m4: Move the rest of the defines to find Itcl, Itk &
Tix from aclocal.m4 to here.
* aclocal.m4: regenerate.
* configure: regenerate.
* gdbtk-hooks.c (x_event): Tcl_ObjGetVar2 was removed from
Tcl8.1. Use Tcl_GetVar2 instead.
* gdbtk-hooks.c (gdbtk_trace_find): Fix up call to
Tcl_GlobalEvalObj for Tcl/Tk 8.1.
* gdbtk-hooks.c (gdbtk_trace_start_stop): Call to Tcl_EvalObj was
inefficient, replace with call to Tcl_GlobalEval.
* gdbtk.c: Don't swap out the Tcl_Alloc calls in gdbtk.c. We took
care of that in Tcl itself for 8.1.
* gdbtk.c: Remove const from the script string since Tcl8.1 has
taken to scribbling sentinals into strings passed to it again...
* gdbtk-cmds.c (wrapped_call): Change declaration of 1st arg from
char * to PTR to eliminate warning.
* gdbtk-cmds.c (perror_with_name_wrapper): Ditto
* acinclude.m4: New file, containing the hand-written local macro
definitions that used to be in aclocal.m4. Don't sinclude
../bfd/aclocal.m4 any more; running aclocal in this directory will
get us the definitions we need. HOWEVER: Do sinclude
../bfd/acinclude.m4, because we need the definition of
BFD_NEED_DECLARATION.
* aclocal.m4: Regenerated by aclocal.
* configure: Regenerated by autoconf.