* 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>
* 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 \
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 \
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 \
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 \
@ -1463,7 +1463,7 @@ ALLDEPFILES = \
ia64-linux-nat.c ia64-linux-tdep.c ia64-tdep.c ia64-vms-tdep.c \
inf-ptrace.c inf-ttrace.c \
irix5-nat.c \
libunwind-frame.c \
ia64-libunwind-tdep.c \
linux-fork.c \
linux-tdep.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
installed.
`--with-libunwind'
Use the libunwind library for unwinding function call stack. See
http://www.nongnu.org/libunwind/index.html fro details.
Supported only on some platforms.
`--with-libunwind-ia64'
Use the libunwind library for unwinding function call stack on ia64
target platforms.
See http://www.nongnu.org/libunwind/index.html for details.
`--with-curses'
Use the curses library instead of the termcap library, for

View File

@ -239,9 +239,6 @@
/* Define if Python 2.7 is being used. */
#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. */
#undef HAVE_LIBUNWIND_IA64_H

72
gdb/configure vendored
View File

@ -957,7 +957,7 @@ enable_gdbcli
enable_gdbmi
enable_tui
enable_gdbtk
with_libunwind
with_libunwind_ia64
with_curses
enable_profiling
with_pkgversion
@ -1659,7 +1659,7 @@ Optional Packages:
[DATADIR/gdb]
--with-relocated-sources=PATH
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
library
--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 ;;
esac
# Libunwind support.
# Libunwind support for ia64.
# Check whether --with-libunwind was given.
if test "${with_libunwind+set}" = set; then :
withval=$with_libunwind; case "${withval}" in
yes) enable_libunwind=yes ;;
no) enable_libunwind=no ;;
*) as_fn_error "bad value ${withval} for GDB with-libunwind option" "$LINENO" 5 ;;
esac
# Check whether --with-libunwind-ia64 was given.
if test "${with_libunwind_ia64+set}" = set; then :
withval=$with_libunwind_ia64;
else
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
with_libunwind_ia64=auto
fi
done
if test x"$ac_cv_header_libunwind_ia64_h" = xyes; then
enable_libunwind=yes;
# Backward compatibility option.
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
{ $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
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
do :
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
$as_echo "#define HAVE_LIBUNWIND 1" >>confdefs.h
CONFIG_OBS="$CONFIG_OBS libunwind-frame.o"
CONFIG_DEPS="$CONFIG_DEPS libunwind-frame.o"
CONFIG_SRCS="$CONFIG_SRCS libunwind-frame.c"
if test x"$ac_cv_header_libunwind_ia64_h" != xyes; then
as_fn_error "GDB option --with-libunwind-ia64 requires libunwind-ia64.h" "$LINENO" 5
fi
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
opt_curses=no

View File

@ -328,26 +328,44 @@ case $host_os in
enable_gdbtk=no ;;
esac
# Libunwind support.
AC_ARG_WITH(libunwind,
AS_HELP_STRING([--with-libunwind], [use libunwind frame unwinding support]),
[case "${withval}" in
yes) enable_libunwind=yes ;;
no) enable_libunwind=no ;;
*) AC_MSG_ERROR(bad value ${withval} for GDB with-libunwind option) ;;
esac],[
AC_CHECK_HEADERS(libunwind-ia64.h)
if test x"$ac_cv_header_libunwind_ia64_h" = xyes; then
enable_libunwind=yes;
# Libunwind support for ia64.
AC_ARG_WITH(libunwind-ia64,
AS_HELP_STRING([--with-libunwind-ia64],
[use libunwind frame unwinding for ia64 targets]),,
[with_libunwind_ia64=auto])
# Backward compatibility option.
if test "${with_libunwind+set}" = set; then
if test x"$with_libunwind_ia64" != xauto; then
AC_MSG_ERROR(
[option --with-libunwind is deprecated, use --with-libunwind-ia64])
fi
])
if test x"$enable_libunwind" = xyes; then
AC_MSG_WARN([option --with-libunwind is deprecated, use --with-libunwind-ia64])
with_libunwind_ia64="$with_libunwind"
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_DEFINE(HAVE_LIBUNWIND, 1, [Define if libunwind library is being used.])
CONFIG_OBS="$CONFIG_OBS libunwind-frame.o"
CONFIG_DEPS="$CONFIG_DEPS libunwind-frame.o"
CONFIG_SRCS="$CONFIG_SRCS libunwind-frame.c"
if test x"$ac_cv_header_libunwind_ia64_h" != xyes; then
AC_MSG_ERROR([GDB option --with-libunwind-ia64 requires libunwind-ia64.h])
fi
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
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.
@ -36,12 +36,12 @@
#include "gdb_assert.h"
#include "gdb_string.h"
#include "libunwind-frame.h"
#include "ia64-libunwind-tdep.h"
#include "complaints.h"
/* IA-64 is the only target that currently uses libunwind-frame. Note
how UNW_TARGET, UNW_OBJ, etc. are compile time constants below.
/* IA-64 is the only target that currently uses ia64-libunwind-tdep.
Note how UNW_TARGET, UNW_OBJ, etc. are compile time constants below.
Those come from libunwind's headers, and are target dependent.
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

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.
@ -19,21 +19,21 @@
You should have received a copy of the GNU General Public License
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_id;
struct regcache;
struct gdbarch;
struct frame_unwind;
#ifndef LIBUNWIND_FRAME_H
#define LIBUNWIND_FRAME_H 1
/* 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
in order to make it possible to have more than one libunwind-frame
instance. Including "libunwind.h" is wrong as that ends up
including the libunwind-$(arch).h for the host gdb is running
on. */
in order to make it possible to have more than one
ia64-libunwind-tdep instance. Including "libunwind.h" is wrong as
that ends up including the libunwind-$(arch).h for the host gdb is
running on. */
#include "libunwind-ia64.h"
struct libunwind_descr
@ -74,4 +74,4 @@ int libunwind_get_reg_special (struct gdbarch *gdbarch,
struct regcache *regcache,
int regnum, void *buf);
#endif /* libunwind-frame.h */
#endif /* IA64_LIBUNWIND_TDEP_H */

View File

@ -42,7 +42,7 @@
#ifdef HAVE_LIBUNWIND_IA64_H
#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
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);
}
/* Gdb libunwind-frame callback function to convert from an ia64 gdb register
number to a libunwind register number. */
/* Gdb ia64-libunwind-tdep callback function to convert from an ia64 gdb
register number to a libunwind register number. */
static int
ia64_gdb2uw_regnum (int regnum)
{
@ -2450,8 +2450,8 @@ ia64_gdb2uw_regnum (int regnum)
return -1;
}
/* Gdb libunwind-frame callback function to convert from a libunwind register
number to a ia64 gdb register number. */
/* Gdb ia64-libunwind-tdep callback function to convert from a libunwind
register number to a ia64 gdb register number. */
static int
ia64_uw2gdb_regnum (int uw_regnum)
{
@ -2481,8 +2481,8 @@ ia64_uw2gdb_regnum (int uw_regnum)
return -1;
}
/* Gdb libunwind-frame callback function to reveal if register is a float
register or not. */
/* Gdb ia64-libunwind-tdep callback function to reveal if register is
a float register or not. */
static int
ia64_is_fpreg (int uw_regnum)
{
@ -3176,8 +3176,8 @@ unw_accessors_t ia64_unw_rse_accessors =
/* get_proc_name */
};
/* Set of ia64 gdb libunwind-frame callbacks and data for generic
libunwind-frame code to use. */
/* Set of ia64-libunwind-tdep gdb callbacks and data for generic
ia64-libunwind-tdep code to use. */
struct libunwind_descr ia64_libunwind_descr =
{
ia64_gdb2uw_regnum,

View File

@ -22,7 +22,7 @@
#ifdef HAVE_LIBUNWIND_IA64_H
#include "libunwind-ia64.h"
#include "libunwind-frame.h"
#include "ia64-libunwind-tdep.h"
#endif
/* 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_rse_accessors;
/* Set of ia64 gdb libunwind-frame callbacks and data for generic
libunwind-frame code to use. */
/* Set of ia64-libunwind-tdep gdb callbacks and data for generic
ia64-libunwind-tdep code to use. */
static struct libunwind_descr ia64_vms_libunwind_descr;
#endif /* HAVE_LIBUNWIND_IA64_H */