* libunwind-frame.c: Rename to ...
	* ia64-libunwind-tdep.c: ... here.
	* libunwind-frame.h: Rename to ...
	* ia64-libunwind-tdep.h: ... here.
	* Makefile.in (HFILES_NO_SRCDIR): Rename libunwind-frame.h to
	ia64-libunwind-tdep.h.
	(ALLDEPFILES): Rename libunwind-frame.c to ia64-libunwind-tdep.c.
	* README (--with-libunwind): Rename to ...
	(--with-libunwind-ia64): ... here, note it is ia64 specific now.
	* config.in: Regenerate.
	* configure: Regenerate.
	* configure.ac: New option --with-libunwind-ia64, make the
	AS_HELP_STRING ia64 specific.  Deprecate option --with-libunwind.
	Remove AC_DEFINE for HAVE_LIBUNWIND.
	* ia64-libunwind-tdep.c: Make the file top comment ia64 specific.
	Rename libunwind-frame.h #include to ia64-libunwind-tdep.h.
	Rename libunwind-frame in the general comment.
	* ia64-libunwind-tdep.h: Make the file top comment ia64 specific.
	Rename symbol LIBUNWIND_FRAME_H to IA64_TDEP_LIBUNWIND_FRAME_H.
	Move forward declarations inside #ifndef.  Rename libunwind-frame in
	the general comment.
	* ia64-tdep.c: Rename libunwind-frame.h #include to
	ia64-libunwind-tdep.h.
	(ia64_gdb2uw_regnum, ia64_uw2gdb_regnum, ia64_is_fpreg)
	(ia64_libunwind_descr): Rename libunwind-frame to
	ia64-libunwind-tdep in these function comments.
	* ia64-tdep.h: Rename libunwind-frame.h #include to
	ia64-libunwind-tdep.h.
	* ia64-vms-tdep.c (ia64_vms_libunwind_descr): Rename libunwind-frame to
	ia64-libunwind-tdep in that data comment.
This commit is contained in:
Jan Kratochvil
2012-03-08 19:08:11 +00:00
parent 3755cbfddc
commit 05e7c24434
11 changed files with 143 additions and 81 deletions

View File

@ -1,3 +1,36 @@
2012-03-08 Jan Kratochvil <jan.kratochvil@redhat.com>
* libunwind-frame.c: Rename to ...
* ia64-libunwind-tdep.c: ... here.
* libunwind-frame.h: Rename to ...
* ia64-libunwind-tdep.h: ... here.
* Makefile.in (HFILES_NO_SRCDIR): Rename libunwind-frame.h to
ia64-libunwind-tdep.h.
(ALLDEPFILES): Rename libunwind-frame.c to ia64-libunwind-tdep.c.
* README (--with-libunwind): Rename to ...
(--with-libunwind-ia64): ... here, note it is ia64 specific now.
* config.in: Regenerate.
* configure: Regenerate.
* configure.ac: New option --with-libunwind-ia64, make the
AS_HELP_STRING ia64 specific. Deprecate option --with-libunwind.
Remove AC_DEFINE for HAVE_LIBUNWIND.
* ia64-libunwind-tdep.c: Make the file top comment ia64 specific.
Rename libunwind-frame.h #include to ia64-libunwind-tdep.h.
Rename libunwind-frame in the general comment.
* ia64-libunwind-tdep.h: Make the file top comment ia64 specific.
Rename symbol LIBUNWIND_FRAME_H to IA64_TDEP_LIBUNWIND_FRAME_H.
Move forward declarations inside #ifndef. Rename libunwind-frame in
the general comment.
* ia64-tdep.c: Rename libunwind-frame.h #include to
ia64-libunwind-tdep.h.
(ia64_gdb2uw_regnum, ia64_uw2gdb_regnum, ia64_is_fpreg)
(ia64_libunwind_descr): Rename libunwind-frame to
ia64-libunwind-tdep in these function comments.
* ia64-tdep.h: Rename libunwind-frame.h #include to
ia64-libunwind-tdep.h.
* ia64-vms-tdep.c (ia64_vms_libunwind_descr): Rename libunwind-frame to
ia64-libunwind-tdep in that data comment.
2012-03-08 Jan Kratochvil <jan.kratochvil@redhat.com> 2012-03-08 Jan Kratochvil <jan.kratochvil@redhat.com>
* libunwind-frame.h (struct frame_unwind): New declaration. * libunwind-frame.h (struct frame_unwind): New declaration.

View File

@ -780,7 +780,7 @@ ser-unix.h inf-ptrace.h terminal.h ui-out.h frame-base.h \
f-lang.h dwarf2loc.h value.h sparc-tdep.h defs.h target-descriptions.h \ f-lang.h dwarf2loc.h value.h sparc-tdep.h defs.h target-descriptions.h \
objfiles.h vec.h disasm.h mips-tdep.h ser-base.h \ objfiles.h vec.h disasm.h mips-tdep.h ser-base.h \
gdb_curses.h bfd-target.h memattr.h inferior.h ax.h dummy-frame.h \ gdb_curses.h bfd-target.h memattr.h inferior.h ax.h dummy-frame.h \
inflow.h fbsd-nat.h libunwind-frame.h completer.h inf-ttrace.h \ inflow.h fbsd-nat.h ia64-libunwind-tdep.h completer.h inf-ttrace.h \
solib-target.h gdb_vfork.h alpha-tdep.h dwarf2expr.h \ solib-target.h gdb_vfork.h alpha-tdep.h dwarf2expr.h \
m2-lang.h stack.h charset.h addrmap.h command.h solist.h source.h \ m2-lang.h stack.h charset.h addrmap.h command.h solist.h source.h \
target.h prologue-value.h cp-abi.h tui/tui-hooks.h tui/tui.h \ target.h prologue-value.h cp-abi.h tui/tui-hooks.h tui/tui.h \
@ -1463,7 +1463,7 @@ ALLDEPFILES = \
ia64-linux-nat.c ia64-linux-tdep.c ia64-tdep.c ia64-vms-tdep.c \ ia64-linux-nat.c ia64-linux-tdep.c ia64-tdep.c ia64-vms-tdep.c \
inf-ptrace.c inf-ttrace.c \ inf-ptrace.c inf-ttrace.c \
irix5-nat.c \ irix5-nat.c \
libunwind-frame.c \ ia64-libunwind-tdep.c \
linux-fork.c \ linux-fork.c \
linux-tdep.c \ linux-tdep.c \
linux-record.c \ linux-record.c \

View File

@ -446,10 +446,10 @@ prefer; but you may abbreviate option names if you use `--'.
Build GDB with the gdbtk GUI interface. Requires TCL/Tk to be Build GDB with the gdbtk GUI interface. Requires TCL/Tk to be
installed. installed.
`--with-libunwind' `--with-libunwind-ia64'
Use the libunwind library for unwinding function call stack. See Use the libunwind library for unwinding function call stack on ia64
http://www.nongnu.org/libunwind/index.html fro details. target platforms.
Supported only on some platforms. See http://www.nongnu.org/libunwind/index.html for details.
`--with-curses' `--with-curses'
Use the curses library instead of the termcap library, for Use the curses library instead of the termcap library, for

View File

@ -239,9 +239,6 @@
/* Define if Python 2.7 is being used. */ /* Define if Python 2.7 is being used. */
#undef HAVE_LIBPYTHON2_7 #undef HAVE_LIBPYTHON2_7
/* Define if libunwind library is being used. */
#undef HAVE_LIBUNWIND
/* Define to 1 if you have the <libunwind-ia64.h> header file. */ /* Define to 1 if you have the <libunwind-ia64.h> header file. */
#undef HAVE_LIBUNWIND_IA64_H #undef HAVE_LIBUNWIND_IA64_H

72
gdb/configure vendored
View File

@ -957,7 +957,7 @@ enable_gdbcli
enable_gdbmi enable_gdbmi
enable_tui enable_tui
enable_gdbtk enable_gdbtk
with_libunwind with_libunwind_ia64
with_curses with_curses
enable_profiling enable_profiling
with_pkgversion with_pkgversion
@ -1659,7 +1659,7 @@ Optional Packages:
[DATADIR/gdb] [DATADIR/gdb]
--with-relocated-sources=PATH --with-relocated-sources=PATH
automatically relocate this path for source files automatically relocate this path for source files
--with-libunwind use libunwind frame unwinding support --with-libunwind-ia64 use libunwind frame unwinding for ia64 targets
--with-curses use the curses library instead of the termcap --with-curses use the curses library instead of the termcap
library library
--with-pkgversion=PKG Use PKG in the version string in place of "GDB" --with-pkgversion=PKG Use PKG in the version string in place of "GDB"
@ -8196,37 +8196,51 @@ $as_echo "$as_me: WARNING: gdbtk isn't supported on $host; disabling" >&2;}
enable_gdbtk=no ;; enable_gdbtk=no ;;
esac esac
# Libunwind support. # Libunwind support for ia64.
# Check whether --with-libunwind was given.
if test "${with_libunwind+set}" = set; then : # Check whether --with-libunwind-ia64 was given.
withval=$with_libunwind; case "${withval}" in if test "${with_libunwind_ia64+set}" = set; then :
yes) enable_libunwind=yes ;; withval=$with_libunwind_ia64;
no) enable_libunwind=no ;;
*) as_fn_error "bad value ${withval} for GDB with-libunwind option" "$LINENO" 5 ;;
esac
else else
with_libunwind_ia64=auto
for ac_header in libunwind-ia64.h
do :
ac_fn_c_check_header_mongrel "$LINENO" "libunwind-ia64.h" "ac_cv_header_libunwind_ia64_h" "$ac_includes_default"
if test "x$ac_cv_header_libunwind_ia64_h" = x""yes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_LIBUNWIND_IA64_H 1
_ACEOF
fi fi
done
if test x"$ac_cv_header_libunwind_ia64_h" = xyes; then # Backward compatibility option.
enable_libunwind=yes; if test "${with_libunwind+set}" = set; then
if test x"$with_libunwind_ia64" != xauto; then
as_fn_error "option --with-libunwind is deprecated, use --with-libunwind-ia64" "$LINENO" 5
fi fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: option --with-libunwind is deprecated, use --with-libunwind-ia64" >&5
$as_echo "$as_me: WARNING: option --with-libunwind is deprecated, use --with-libunwind-ia64" >&2;}
with_libunwind_ia64="$with_libunwind"
fi
case "$with_libunwind_ia64" in
yes | no)
;;
auto)
for ac_header in libunwind-ia64.h
do :
ac_fn_c_check_header_mongrel "$LINENO" "libunwind-ia64.h" "ac_cv_header_libunwind_ia64_h" "$ac_includes_default"
if test "x$ac_cv_header_libunwind_ia64_h" = x""yes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_LIBUNWIND_IA64_H 1
_ACEOF
fi fi
done
if test x"$enable_libunwind" = xyes; then with_libunwind_ia64=$ac_cv_header_libunwind_ia64_h
;;
*)
as_fn_error "bad value $with_libunwind_ia64 for GDB --with-libunwind-ia64 option" "$LINENO" 5
;;
esac
if test x"$with_libunwind_ia64" = xyes; then
for ac_header in libunwind-ia64.h for ac_header in libunwind-ia64.h
do : do :
ac_fn_c_check_header_mongrel "$LINENO" "libunwind-ia64.h" "ac_cv_header_libunwind_ia64_h" "$ac_includes_default" ac_fn_c_check_header_mongrel "$LINENO" "libunwind-ia64.h" "ac_cv_header_libunwind_ia64_h" "$ac_includes_default"
@ -8239,12 +8253,12 @@ fi
done done
if test x"$ac_cv_header_libunwind_ia64_h" != xyes; then
$as_echo "#define HAVE_LIBUNWIND 1" >>confdefs.h as_fn_error "GDB option --with-libunwind-ia64 requires libunwind-ia64.h" "$LINENO" 5
fi
CONFIG_OBS="$CONFIG_OBS libunwind-frame.o" CONFIG_OBS="$CONFIG_OBS ia64-libunwind-tdep.o"
CONFIG_DEPS="$CONFIG_DEPS libunwind-frame.o" CONFIG_DEPS="$CONFIG_DEPS ia64-libunwind-tdep.o"
CONFIG_SRCS="$CONFIG_SRCS libunwind-frame.c" CONFIG_SRCS="$CONFIG_SRCS ia64-libunwind-tdep.c"
fi fi
opt_curses=no opt_curses=no

View File

@ -328,26 +328,44 @@ case $host_os in
enable_gdbtk=no ;; enable_gdbtk=no ;;
esac esac
# Libunwind support. # Libunwind support for ia64.
AC_ARG_WITH(libunwind,
AS_HELP_STRING([--with-libunwind], [use libunwind frame unwinding support]), AC_ARG_WITH(libunwind-ia64,
[case "${withval}" in AS_HELP_STRING([--with-libunwind-ia64],
yes) enable_libunwind=yes ;; [use libunwind frame unwinding for ia64 targets]),,
no) enable_libunwind=no ;; [with_libunwind_ia64=auto])
*) AC_MSG_ERROR(bad value ${withval} for GDB with-libunwind option) ;;
esac],[ # Backward compatibility option.
AC_CHECK_HEADERS(libunwind-ia64.h) if test "${with_libunwind+set}" = set; then
if test x"$ac_cv_header_libunwind_ia64_h" = xyes; then if test x"$with_libunwind_ia64" != xauto; then
enable_libunwind=yes; AC_MSG_ERROR(
[option --with-libunwind is deprecated, use --with-libunwind-ia64])
fi fi
]) AC_MSG_WARN([option --with-libunwind is deprecated, use --with-libunwind-ia64])
with_libunwind_ia64="$with_libunwind"
if test x"$enable_libunwind" = xyes; then fi
case "$with_libunwind_ia64" in
yes | no)
;;
auto)
AC_CHECK_HEADERS(libunwind-ia64.h)
with_libunwind_ia64=$ac_cv_header_libunwind_ia64_h
;;
*)
AC_MSG_ERROR(
[bad value $with_libunwind_ia64 for GDB --with-libunwind-ia64 option])
;;
esac
if test x"$with_libunwind_ia64" = xyes; then
AC_CHECK_HEADERS(libunwind-ia64.h) AC_CHECK_HEADERS(libunwind-ia64.h)
AC_DEFINE(HAVE_LIBUNWIND, 1, [Define if libunwind library is being used.]) if test x"$ac_cv_header_libunwind_ia64_h" != xyes; then
CONFIG_OBS="$CONFIG_OBS libunwind-frame.o" AC_MSG_ERROR([GDB option --with-libunwind-ia64 requires libunwind-ia64.h])
CONFIG_DEPS="$CONFIG_DEPS libunwind-frame.o" fi
CONFIG_SRCS="$CONFIG_SRCS libunwind-frame.c" CONFIG_OBS="$CONFIG_OBS ia64-libunwind-tdep.o"
CONFIG_DEPS="$CONFIG_DEPS ia64-libunwind-tdep.o"
CONFIG_SRCS="$CONFIG_SRCS ia64-libunwind-tdep.c"
fi fi
opt_curses=no opt_curses=no

View File

@ -1,4 +1,4 @@
/* Frame unwinder for frames using the libunwind library. /* Frame unwinder for ia64 frames using the libunwind library.
Copyright (C) 2003-2004, 2006-2012 Free Software Foundation, Inc. Copyright (C) 2003-2004, 2006-2012 Free Software Foundation, Inc.
@ -36,12 +36,12 @@
#include "gdb_assert.h" #include "gdb_assert.h"
#include "gdb_string.h" #include "gdb_string.h"
#include "libunwind-frame.h" #include "ia64-libunwind-tdep.h"
#include "complaints.h" #include "complaints.h"
/* IA-64 is the only target that currently uses libunwind-frame. Note /* IA-64 is the only target that currently uses ia64-libunwind-tdep.
how UNW_TARGET, UNW_OBJ, etc. are compile time constants below. Note how UNW_TARGET, UNW_OBJ, etc. are compile time constants below.
Those come from libunwind's headers, and are target dependent. Those come from libunwind's headers, and are target dependent.
Also, some of libunwind's typedefs are target dependent, as e.g., Also, some of libunwind's typedefs are target dependent, as e.g.,
unw_word_t. If some other target wants to use this, we will need unw_word_t. If some other target wants to use this, we will need

View File

@ -1,4 +1,4 @@
/* Frame unwinder for frames with libunwind frame information. /* Frame unwinder for ia64 frames with libunwind frame information.
Copyright (C) 2003, 2006-2012 Free Software Foundation, Inc. Copyright (C) 2003, 2006-2012 Free Software Foundation, Inc.
@ -19,21 +19,21 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */ along with this program. If not, see <http://www.gnu.org/licenses/>. */
#ifndef IA64_LIBUNWIND_TDEP_H
#define IA64_LIBUNWIND_TDEP_H 1
struct frame_info; struct frame_info;
struct frame_id; struct frame_id;
struct regcache; struct regcache;
struct gdbarch; struct gdbarch;
struct frame_unwind; struct frame_unwind;
#ifndef LIBUNWIND_FRAME_H
#define LIBUNWIND_FRAME_H 1
/* IA-64 is the only target that currently uses libunwind. If some /* IA-64 is the only target that currently uses libunwind. If some
other target wants to use it, we will need to do some abstracting other target wants to use it, we will need to do some abstracting
in order to make it possible to have more than one libunwind-frame in order to make it possible to have more than one
instance. Including "libunwind.h" is wrong as that ends up ia64-libunwind-tdep instance. Including "libunwind.h" is wrong as
including the libunwind-$(arch).h for the host gdb is running that ends up including the libunwind-$(arch).h for the host gdb is
on. */ running on. */
#include "libunwind-ia64.h" #include "libunwind-ia64.h"
struct libunwind_descr struct libunwind_descr
@ -74,4 +74,4 @@ int libunwind_get_reg_special (struct gdbarch *gdbarch,
struct regcache *regcache, struct regcache *regcache,
int regnum, void *buf); int regnum, void *buf);
#endif /* libunwind-frame.h */ #endif /* IA64_LIBUNWIND_TDEP_H */

View File

@ -42,7 +42,7 @@
#ifdef HAVE_LIBUNWIND_IA64_H #ifdef HAVE_LIBUNWIND_IA64_H
#include "elf/ia64.h" /* for PT_IA_64_UNWIND value */ #include "elf/ia64.h" /* for PT_IA_64_UNWIND value */
#include "libunwind-frame.h" #include "ia64-libunwind-tdep.h"
/* Note: KERNEL_START is supposed to be an address which is not going /* Note: KERNEL_START is supposed to be an address which is not going
to ever contain any valid unwind info. For ia64 linux, the choice to ever contain any valid unwind info. For ia64 linux, the choice
@ -2417,8 +2417,8 @@ ia64_rse_skip_regs (uint64_t addr, long num_regs)
return addr + ((num_regs + delta/0x3f) << 3); return addr + ((num_regs + delta/0x3f) << 3);
} }
/* Gdb libunwind-frame callback function to convert from an ia64 gdb register /* Gdb ia64-libunwind-tdep callback function to convert from an ia64 gdb
number to a libunwind register number. */ register number to a libunwind register number. */
static int static int
ia64_gdb2uw_regnum (int regnum) ia64_gdb2uw_regnum (int regnum)
{ {
@ -2450,8 +2450,8 @@ ia64_gdb2uw_regnum (int regnum)
return -1; return -1;
} }
/* Gdb libunwind-frame callback function to convert from a libunwind register /* Gdb ia64-libunwind-tdep callback function to convert from a libunwind
number to a ia64 gdb register number. */ register number to a ia64 gdb register number. */
static int static int
ia64_uw2gdb_regnum (int uw_regnum) ia64_uw2gdb_regnum (int uw_regnum)
{ {
@ -2481,8 +2481,8 @@ ia64_uw2gdb_regnum (int uw_regnum)
return -1; return -1;
} }
/* Gdb libunwind-frame callback function to reveal if register is a float /* Gdb ia64-libunwind-tdep callback function to reveal if register is
register or not. */ a float register or not. */
static int static int
ia64_is_fpreg (int uw_regnum) ia64_is_fpreg (int uw_regnum)
{ {
@ -3176,8 +3176,8 @@ unw_accessors_t ia64_unw_rse_accessors =
/* get_proc_name */ /* get_proc_name */
}; };
/* Set of ia64 gdb libunwind-frame callbacks and data for generic /* Set of ia64-libunwind-tdep gdb callbacks and data for generic
libunwind-frame code to use. */ ia64-libunwind-tdep code to use. */
struct libunwind_descr ia64_libunwind_descr = struct libunwind_descr ia64_libunwind_descr =
{ {
ia64_gdb2uw_regnum, ia64_gdb2uw_regnum,

View File

@ -22,7 +22,7 @@
#ifdef HAVE_LIBUNWIND_IA64_H #ifdef HAVE_LIBUNWIND_IA64_H
#include "libunwind-ia64.h" #include "libunwind-ia64.h"
#include "libunwind-frame.h" #include "ia64-libunwind-tdep.h"
#endif #endif
/* Register numbers of various important registers. */ /* Register numbers of various important registers. */

View File

@ -123,8 +123,8 @@ ia64_vms_get_dyn_info_list (unw_addr_space_t as,
static unw_accessors_t ia64_vms_unw_accessors; static unw_accessors_t ia64_vms_unw_accessors;
static unw_accessors_t ia64_vms_unw_rse_accessors; static unw_accessors_t ia64_vms_unw_rse_accessors;
/* Set of ia64 gdb libunwind-frame callbacks and data for generic /* Set of ia64-libunwind-tdep gdb callbacks and data for generic
libunwind-frame code to use. */ ia64-libunwind-tdep code to use. */
static struct libunwind_descr ia64_vms_libunwind_descr; static struct libunwind_descr ia64_vms_libunwind_descr;
#endif /* HAVE_LIBUNWIND_IA64_H */ #endif /* HAVE_LIBUNWIND_IA64_H */