On Mon, Oct 31, 2011 at 10:11 PM, Arun Sharma <[email protected]> wrote:

> There are probably other minor bugs lurking as well. Hopefully we can
> flush them out quickly.
>

Here's what I came up with. Please test this for any cross-unwinding
platforms you care about.

 -Arun
commit d20df8b3183d1f179ffc30a5ceabb9d1375ac0ff
Author: Arun Sharma <[email protected]>
Date:   Mon Oct 31 22:21:34 2011 -0700

    Fix up the breakage when host != target

diff --git a/configure.in b/configure.in
index 40d13bf..d13bc2e 100644
--- a/configure.in
+++ b/configure.in
@@ -296,5 +296,6 @@ AC_SUBST(DLLIB)
 AC_SUBST(BACKTRACELIB)
 
 AC_CONFIG_FILES(Makefile src/Makefile tests/Makefile tests/check-namespace.sh
-		doc/Makefile doc/common.tex include/libunwind-common.h)
+		doc/Makefile doc/common.tex include/libunwind-common.h
+                include/libunwind.h include/tdep/libunwind_i.h)
 AC_OUTPUT
diff --git a/include/libunwind.h b/include/libunwind.h
deleted file mode 100644
index c86216a..0000000
--- a/include/libunwind.h
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Provide a real file - not a symlink - as it would cause multiarch conflicts
-   when multiple different arch releases are installed simultaneously.  */
-
-#if defined __arm__
-# include "libunwind-arm.h"
-#elif defined __hppa__
-# include "libunwind-hppa.h"
-#elif defined __ia64__
-# include "libunwind-ia64.h"
-#elif defined __mips__
-# include "libunwind-mips.h"
-#elif defined __powerpc__ && !defined __powerpc64__
-# include "libunwind-ppc32.h"
-#elif defined __powerpc64__
-# include "libunwind-ppc64.h"
-#elif defined __i386__
-# include "libunwind-x86.h"
-#elif defined __x86_64__
-# include "libunwind-x86_64.h"
-#else
-# error "Unsupported arch"
-#endif
diff --git a/include/libunwind.h.in b/include/libunwind.h.in
new file mode 100644
index 0000000..6ed4725
--- /dev/null
+++ b/include/libunwind.h.in
@@ -0,0 +1,30 @@
+/* Provide a real file - not a symlink - as it would cause multiarch conflicts
+   when multiple different arch releases are installed simultaneously.  */
+
+#ifndef UNW_REMOTE_ONLY
+
+#if defined __arm__
+# include "libunwind-arm.h"
+#elif defined __hppa__
+# include "libunwind-hppa.h"
+#elif defined __ia64__
+# include "libunwind-ia64.h"
+#elif defined __mips__
+# include "libunwind-mips.h"
+#elif defined __powerpc__ && !defined __powerpc64__
+# include "libunwind-ppc32.h"
+#elif defined __powerpc64__
+# include "libunwind-ppc64.h"
+#elif defined __i386__
+# include "libunwind-x86.h"
+#elif defined __x86_64__
+# include "libunwind-x86_64.h"
+#else
+# error "Unsupported arch"
+#endif
+
+#else /* UNW_REMOTE_ONLY */
+
+# include "libunwind-@[email protected]"
+
+#endif /* UNW_REMOTE_ONLY */
diff --git a/include/tdep/jmpbuf.h b/include/tdep/jmpbuf.h
index e3cda31..7d04a42 100644
--- a/include/tdep/jmpbuf.h
+++ b/include/tdep/jmpbuf.h
@@ -1,6 +1,8 @@
 /* Provide a real file - not a symlink - as it would cause multiarch conflicts
    when multiple different arch releases are installed simultaneously.  */
 
+#ifndef UNW_REMOTE_ONLY
+
 #if defined __arm__
 # include "tdep-arm/jmpbuf.h"
 #elif defined __hppa__
@@ -20,3 +22,5 @@
 #else
 # error "Unsupported arch"
 #endif
+
+#endif /* !UNW_REMOTE_ONLY */
diff --git a/include/tdep/libunwind_i.h b/include/tdep/libunwind_i.h
deleted file mode 100644
index cd8c2bf..0000000
--- a/include/tdep/libunwind_i.h
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Provide a real file - not a symlink - as it would cause multiarch conflicts
-   when multiple different arch releases are installed simultaneously.  */
-
-#if defined __arm__
-# include "tdep-arm/libunwind_i.h"
-#elif defined __hppa__
-# include "tdep-hppa/libunwind_i.h"
-#elif defined __ia64__
-# include "tdep-ia64/libunwind_i.h"
-#elif defined __mips__
-# include "tdep-mips/libunwind_i.h"
-#elif defined __powerpc__ && !defined __powerpc64__
-# include "tdep-ppc32/libunwind_i.h"
-#elif defined __powerpc64__
-# include "tdep-ppc64/libunwind_i.h"
-#elif defined __i386__
-# include "tdep-x86/libunwind_i.h"
-#elif defined __x86_64__
-# include "tdep-x86_64/libunwind_i.h"
-#else
-# error "Unsupported arch"
-#endif
diff --git a/include/tdep/libunwind_i.h.in b/include/tdep/libunwind_i.h.in
new file mode 100644
index 0000000..96f49fb
--- /dev/null
+++ b/include/tdep/libunwind_i.h.in
@@ -0,0 +1,31 @@
+/* Provide a real file - not a symlink - as it would cause multiarch conflicts
+   when multiple different arch releases are installed simultaneously.  */
+
+#ifndef UNW_REMOTE_ONLY
+
+#if defined __arm__
+# include "tdep-arm/libunwind_i.h"
+#elif defined __hppa__
+# include "tdep-hppa/libunwind_i.h"
+#elif defined __ia64__
+# include "tdep-ia64/libunwind_i.h"
+#elif defined __mips__
+# include "tdep-mips/libunwind_i.h"
+#elif defined __powerpc__ && !defined __powerpc64__
+# include "tdep-ppc32/libunwind_i.h"
+#elif defined __powerpc64__
+# include "tdep-ppc64/libunwind_i.h"
+#elif defined __i386__
+# include "tdep-x86/libunwind_i.h"
+#elif defined __x86_64__
+# include "tdep-x86_64/libunwind_i.h"
+#else
+# error "Unsupported arch"
+#endif
+
+
+#else /* UNW_REMOTE_ONLY */
+
+# include "tdep-@arch@/libunwind_i.h"
+
+#endif /* UNW_REMOTE_ONLY */
diff --git a/src/dwarf/Gfind_proc_info-lsb.c b/src/dwarf/Gfind_proc_info-lsb.c
index ee3872e..495d251 100644
--- a/src/dwarf/Gfind_proc_info-lsb.c
+++ b/src/dwarf/Gfind_proc_info-lsb.c
@@ -241,7 +241,7 @@ file_error:
 static int
 find_binary_for_address (unw_word_t ip, char *name, size_t name_size)
 {
-#ifdef __linux
+#if defined(__linux) && (!UNW_REMOTE_ONLY)
   struct map_iterator mi;
   int found = 0;
   int pid = getpid ();
_______________________________________________
Libunwind-devel mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/libunwind-devel

Reply via email to