2012-02-21 Tristan Gingold <gingold@adacore.com>
authorPedro Alves <palves@redhat.com>
Tue, 21 Feb 2012 19:39:32 +0000 (19:39 +0000)
committerPedro Alves <palves@redhat.com>
Tue, 21 Feb 2012 19:39:32 +0000 (19:39 +0000)
    Pedro Alves  <palves@redhat.com>

* ia64-tdep.c: Do not include libunwind-ia64.h.
* libunwind-frame.h: Remove #ifdef HAVE_LIBUNWIND_H guard.
Include libunwind-ia64.h instead of libunwind.h.
* configure.ac (--with-libunwind, $enable_libunwind): Don't check
for libunwind.h existence.
* configure, config.in: Regenerate.

gdb/ChangeLog
gdb/config.in
gdb/configure
gdb/configure.ac
gdb/ia64-tdep.c
gdb/libunwind-frame.c
gdb/libunwind-frame.h

index 0b29febbfcc84cff25dfb366e4401340c564e379..0018193a5604ba0bc108285d7640e3ee4ccf6e83 100644 (file)
@@ -1,3 +1,13 @@
+2012-02-21  Tristan Gingold  <gingold@adacore.com>
+           Pedro Alves  <palves@redhat.com>
+
+       * ia64-tdep.c: Do not include libunwind-ia64.h.
+       * libunwind-frame.h: Remove #ifdef HAVE_LIBUNWIND_H guard.
+       Include libunwind-ia64.h instead of libunwind.h.
+       * configure.ac (--with-libunwind, $enable_libunwind): Don't check
+       for libunwind.h existence.
+       * configure, config.in: Regenerate.
+
 2012-02-21  Anton Gorenkov  <xgsa@yandex.ru>
 
        * c-valprint.c (c_value_print): Use value_rtti_indirect_type
index bae17635a3341df63032d8a9c1d1524d8d73332c..194cc7d26ea2bf7ce8ce194935be401136a15bd0 100644 (file)
 /* Define if libunwind library is being used. */
 #undef HAVE_LIBUNWIND
 
-/* Define to 1 if you have the <libunwind.h> header file. */
-#undef HAVE_LIBUNWIND_H
-
 /* Define to 1 if you have the <libunwind-ia64.h> header file. */
 #undef HAVE_LIBUNWIND_IA64_H
 
index 2566410c10caa8545835aaaeaa1fc878f867cbbe..9cb3742e8c7a149243c4e068509f1ea384fb5039 100755 (executable)
@@ -8252,21 +8252,19 @@ if test "${with_libunwind+set}" = set; then :
 esac
 else
 
-  for ac_header in libunwind.h libunwind-ia64.h
+  for ac_header in libunwind-ia64.h
 do :
-  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-eval as_val=\$$as_ac_Header
-   if test "x$as_val" = x""yes; then :
+  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 `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define HAVE_LIBUNWIND_IA64_H 1
 _ACEOF
 
 fi
 
 done
 
-  if test x"$ac_cv_header_libunwind_h" = xyes -a x"$ac_cv_header_libunwind_ia64_h" = xyes; then
+  if test x"$ac_cv_header_libunwind_ia64_h" = xyes; then
     enable_libunwind=yes;
   fi
 
@@ -8274,14 +8272,12 @@ fi
 
 
 if test x"$enable_libunwind" = xyes; then
-  for ac_header in libunwind.h libunwind-ia64.h
+  for ac_header in libunwind-ia64.h
 do :
-  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-eval as_val=\$$as_ac_Header
-   if test "x$as_val" = x""yes; then :
+  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 `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define HAVE_LIBUNWIND_IA64_H 1
 _ACEOF
 
 fi
index 1b11adb066be858fabf09ab5e7826289982d000e..c4c84a08079b94b8e7a25cf0494cfedb88882c4b 100644 (file)
@@ -348,14 +348,14 @@ AS_HELP_STRING([--with-libunwind], [use libunwind frame unwinding support]),
   no)   enable_libunwind=no ;;
   *)    AC_MSG_ERROR(bad value ${withval} for GDB with-libunwind option) ;;
 esac],[
-  AC_CHECK_HEADERS(libunwind.h libunwind-ia64.h)
-  if test x"$ac_cv_header_libunwind_h" = xyes -a x"$ac_cv_header_libunwind_ia64_h" = xyes; then
+  AC_CHECK_HEADERS(libunwind-ia64.h)
+  if test x"$ac_cv_header_libunwind_ia64_h" = xyes; then
     enable_libunwind=yes;
   fi
 ])
    
 if test x"$enable_libunwind" = xyes; then
-  AC_CHECK_HEADERS(libunwind.h libunwind-ia64.h)
+  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"
index a297eccf39df11ff7710b729ab3aa388c18732bf..a36dc223af922ce9cb409254bc14fde0603adc6b 100644 (file)
@@ -43,7 +43,6 @@
 #ifdef HAVE_LIBUNWIND_IA64_H
 #include "elf/ia64.h"           /* for PT_IA_64_UNWIND value */
 #include "libunwind-frame.h"
-#include "libunwind-ia64.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
index 893fe1ee0277deda2c1c8365f8382137bc1278fa..f8f5289fe931d40f5a6bca6b53b70af0ba19dfae 100644 (file)
 
 #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.
+   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
+   to do some abstracting in order to make it possible to select which
+   libunwind we're talking to at runtime (and have one per arch).  */
+
 /* The following two macros are normally defined in <endian.h>.
    But systems such as ia64-hpux do not provide such header, so
    we just define them here if not already defined.  */
index 0251819058b41c2f9e3760db53c32611e9a47a36..ef98177008e1fb3221158161f5c114c0b2725c9c 100644 (file)
@@ -19,8 +19,6 @@
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
-#ifdef HAVE_LIBUNWIND_H
-
 struct frame_info;
 struct frame_id;
 struct regcache;
@@ -29,7 +27,13 @@ struct gdbarch;
 #ifndef LIBUNWIND_FRAME_H
 #define LIBUNWIND_FRAME_H 1
 
-#include "libunwind.h"
+/* 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.  */
+#include "libunwind-ia64.h"
 
 struct libunwind_descr
 {
@@ -72,5 +76,3 @@ int libunwind_get_reg_special (struct gdbarch *gdbarch,
                               int regnum, void *buf);
 
 #endif /* libunwind-frame.h */
-
-#endif /* HAVE_LIBUNWIND_H  */