Permalink
Browse files

Add initial ARM and MIPS support. To support this, also enable the

reading of .debug_frame sections (used in lieu of .eh_frame sections
when they're not available).
  • Loading branch information...
Daniel Jacobowitz David Mosberger-Tang
Daniel Jacobowitz authored and David Mosberger-Tang committed Feb 5, 2008
1 parent 5ed2da2 commit 3842dac7333e42aa44531eda34ba55200b99ccf8
Showing with 6,260 additions and 910 deletions.
  1. +8 −0 Makefile.am
  2. +16 −8 Makefile.in
  3. +356 −144 aclocal.m4
  4. +669 −363 configure
  5. +7 −2 configure.in
  6. +5 −0 doc/Makefile.in
  7. +18 −0 include/dwarf.h
  8. +44 −28 include/dwarf_i.h
  9. +298 −0 include/libunwind-arm.h
  10. +155 −0 include/libunwind-mips.h
  11. +4 −4 include/remote.h
  12. +51 −0 include/tdep-arm/dwarf-config.h
  13. +32 −0 include/tdep-arm/jmpbuf.h
  14. +254 −0 include/tdep-arm/libunwind_i.h
  15. +1 −0 include/tdep-hppa/libunwind_i.h
  16. +54 −0 include/tdep-mips/dwarf-config.h
  17. +32 −0 include/tdep-mips/jmpbuf.h
  18. +315 −0 include/tdep-mips/libunwind_i.h
  19. +1 −0 include/tdep-ppc32/libunwind_i.h
  20. +1 −0 include/tdep-ppc64/libunwind_i.h
  21. +1 −0 include/tdep-x86/libunwind_i.h
  22. +1 −0 include/tdep-x86_64/libunwind_i.h
  23. +109 −9 src/Makefile.am
  24. +633 −189 src/Makefile.in
  25. +59 −0 src/arm/Gcreate_addr_space.c
  26. +41 −0 src/arm/Gget_proc_info.c
  27. +81 −0 src/arm/Gget_save_loc.c
  28. +66 −0 src/arm/Gglobal.c
  29. +207 −0 src/arm/Ginit.c
  30. +53 −0 src/arm/Ginit_local.c
  31. +45 −0 src/arm/Ginit_remote.c
  32. +35 −0 src/arm/Gis_signal_frame.c
  33. +81 −0 src/arm/Gregs.c
  34. +45 −0 src/arm/Gresume.c
  35. +48 −0 src/arm/Gstep.c
  36. +5 −0 src/arm/Lcreate_addr_space.c
  37. +5 −0 src/arm/Lget_proc_info.c
  38. +5 −0 src/arm/Lget_save_loc.c
  39. +5 −0 src/arm/Lglobal.c
  40. +5 −0 src/arm/Linit.c
  41. +5 −0 src/arm/Linit_local.c
  42. +5 −0 src/arm/Linit_remote.c
  43. +5 −0 src/arm/Lis_signal_frame.c
  44. +5 −0 src/arm/Lregs.c
  45. +5 −0 src/arm/Lresume.c
  46. +5 −0 src/arm/Lstep.c
  47. +54 −0 src/arm/gen-offsets.c
  48. +52 −0 src/arm/getcontext.S
  49. +71 −0 src/arm/init.h
  50. +39 −0 src/arm/is_fpreg.c
  51. +36 −0 src/arm/offsets.h
  52. +90 −0 src/arm/regname.c
  53. +8 −0 src/arm/siglongjmp.S
  54. +39 −0 src/arm/unwind_i.h
  55. +46 −14 src/dwarf/Gexpr.c
  56. +52 −34 src/dwarf/Gfde.c
  57. +626 −106 src/dwarf/Gfind_proc_info-lsb.c
  58. +2 −0 src/dwarf/Gpe.c
  59. +1 −1 src/mi/Gfind_dynamic_proc_info.c
  60. +1 −1 src/mi/backtrace.c
  61. +1 −1 src/mi/dyn-info-list.c
  62. +14 −0 src/mi/flush_cache.c
  63. +65 −0 src/mips/Gcreate_addr_space.c
  64. +41 −0 src/mips/Gget_proc_info.c
  65. +99 −0 src/mips/Gget_save_loc.c
  66. +66 −0 src/mips/Gglobal.c
  67. +208 −0 src/mips/Ginit.c
  68. +53 −0 src/mips/Ginit_local.c
  69. +45 −0 src/mips/Ginit_remote.c
  70. +35 −0 src/mips/Gis_signal_frame.c
  71. +99 −0 src/mips/Gregs.c
  72. +45 −0 src/mips/Gresume.c
  73. +48 −0 src/mips/Gstep.c
  74. +5 −0 src/mips/Lcreate_addr_space.c
  75. +5 −0 src/mips/Lget_proc_info.c
  76. +5 −0 src/mips/Lget_save_loc.c
  77. +5 −0 src/mips/Lglobal.c
  78. +5 −0 src/mips/Linit.c
  79. +5 −0 src/mips/Linit_local.c
  80. +5 −0 src/mips/Linit_remote.c
  81. +5 −0 src/mips/Lis_signal_frame.c
  82. +5 −0 src/mips/Lregs.c
  83. +5 −0 src/mips/Lresume.c
  84. +5 −0 src/mips/Lstep.c
  85. +27 −0 src/mips/elfxx.c
  86. +30 −0 src/mips/gen-offsets.c
  87. +85 −0 src/mips/getcontext.S
  88. +56 −0 src/mips/init.h
  89. +35 −0 src/mips/is_fpreg.c
  90. +39 −0 src/mips/offsets.h
  91. +46 −0 src/mips/regname.c
  92. +8 −0 src/mips/siglongjmp.S
  93. +48 −0 src/mips/unwind_i.h
  94. +2 −0 src/ptrace/_UPT_reg_offset.c
  95. +1 −1 src/setjmp/longjmp.c
  96. +1 −1 src/setjmp/siglongjmp.c
  97. +3 −2 src/unwind/FindEnclosingFunction.c
  98. +1 −1 src/unwind/RaiseException.c
  99. +1 −1 src/unwind/unwind-internal.h
  100. +5 −0 tests/Makefile.in
View
@@ -1,9 +1,15 @@
+if ARCH_ARM
+include_HEADERS_tdep = include/libunwind-arm.h
+else
if ARCH_IA64
include_HEADERS_tdep = include/libunwind-ia64.h
else
if ARCH_HPPA
include_HEADERS_tdep = include/libunwind-hppa.h
else
+if ARCH_MIPS
+include_HEADERS_tdep = include/libunwind-mips.h
+else
if ARCH_X86
include_HEADERS_tdep = include/libunwind-x86.h
else
@@ -19,8 +25,10 @@ endif # ARCH_PPC64
endif # ARCH_PPC32
endif # ARCH_X86_64
endif # ARCH_X86
+endif # ARCH_MIPS
endif # ARCH_HPPA
endif # ARCH_IA64
+endif # ARCH_ARM
include_HEADERS_common = $(include_HEADERS_tdep) \
include/libunwind-dynamic.h include/libunwind-ptrace.h
View
@@ -66,8 +66,9 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
uninstall-recursive
am__include_HEADERS_DIST = include/libunwind-ppc64.h \
include/libunwind-ppc32.h include/libunwind-x86_64.h \
- include/libunwind-x86.h include/libunwind-hppa.h \
- include/libunwind-ia64.h include/libunwind-dynamic.h \
+ include/libunwind-x86.h include/libunwind-mips.h \
+ include/libunwind-hppa.h include/libunwind-ia64.h \
+ include/libunwind-arm.h include/libunwind-dynamic.h \
include/libunwind-ptrace.h include/libunwind.h \
include/unwind.h
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
@@ -100,10 +101,14 @@ AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
AR = @AR@
ARCH = @ARCH@
+ARCH_ARM_FALSE = @ARCH_ARM_FALSE@
+ARCH_ARM_TRUE = @ARCH_ARM_TRUE@
ARCH_HPPA_FALSE = @ARCH_HPPA_FALSE@
ARCH_HPPA_TRUE = @ARCH_HPPA_TRUE@
ARCH_IA64_FALSE = @ARCH_IA64_FALSE@
ARCH_IA64_TRUE = @ARCH_IA64_TRUE@
+ARCH_MIPS_FALSE = @ARCH_MIPS_FALSE@
+ARCH_MIPS_TRUE = @ARCH_MIPS_TRUE@
ARCH_PPC32_FALSE = @ARCH_PPC32_FALSE@
ARCH_PPC32_TRUE = @ARCH_PPC32_TRUE@
ARCH_PPC64_FALSE = @ARCH_PPC64_FALSE@
@@ -174,6 +179,7 @@ PKG_MINOR = @PKG_MINOR@
RANLIB = @RANLIB@
REMOTE_ONLY_FALSE = @REMOTE_ONLY_FALSE@
REMOTE_ONLY_TRUE = @REMOTE_ONLY_TRUE@
+SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
@@ -233,12 +239,14 @@ target_alias = @target_alias@
target_cpu = @target_cpu@
target_os = @target_os@
target_vendor = @target_vendor@
-@ARCH_HPPA_FALSE@@ARCH_IA64_FALSE@@ARCH_PPC32_FALSE@@ARCH_PPC64_TRUE@@ARCH_X86_64_FALSE@@ARCH_X86_FALSE@include_HEADERS_tdep = include/libunwind-ppc64.h
-@ARCH_HPPA_FALSE@@ARCH_IA64_FALSE@@ARCH_PPC32_TRUE@@ARCH_X86_64_FALSE@@ARCH_X86_FALSE@include_HEADERS_tdep = include/libunwind-ppc32.h
-@ARCH_HPPA_FALSE@@ARCH_IA64_FALSE@@ARCH_X86_64_TRUE@@ARCH_X86_FALSE@include_HEADERS_tdep = include/libunwind-x86_64.h
-@ARCH_HPPA_FALSE@@ARCH_IA64_FALSE@@ARCH_X86_TRUE@include_HEADERS_tdep = include/libunwind-x86.h
-@ARCH_HPPA_TRUE@@ARCH_IA64_FALSE@include_HEADERS_tdep = include/libunwind-hppa.h
-@ARCH_IA64_TRUE@include_HEADERS_tdep = include/libunwind-ia64.h
+@ARCH_ARM_FALSE@@ARCH_HPPA_FALSE@@ARCH_IA64_FALSE@@ARCH_MIPS_FALSE@@ARCH_PPC32_FALSE@@ARCH_PPC64_TRUE@@ARCH_X86_64_FALSE@@ARCH_X86_FALSE@include_HEADERS_tdep = include/libunwind-ppc64.h
+@ARCH_ARM_FALSE@@ARCH_HPPA_FALSE@@ARCH_IA64_FALSE@@ARCH_MIPS_FALSE@@ARCH_PPC32_TRUE@@ARCH_X86_64_FALSE@@ARCH_X86_FALSE@include_HEADERS_tdep = include/libunwind-ppc32.h
+@ARCH_ARM_FALSE@@ARCH_HPPA_FALSE@@ARCH_IA64_FALSE@@ARCH_MIPS_FALSE@@ARCH_X86_64_TRUE@@ARCH_X86_FALSE@include_HEADERS_tdep = include/libunwind-x86_64.h
+@ARCH_ARM_FALSE@@ARCH_HPPA_FALSE@@ARCH_IA64_FALSE@@ARCH_MIPS_FALSE@@ARCH_X86_TRUE@include_HEADERS_tdep = include/libunwind-x86.h
+@ARCH_ARM_FALSE@@ARCH_HPPA_FALSE@@ARCH_IA64_FALSE@@ARCH_MIPS_TRUE@include_HEADERS_tdep = include/libunwind-mips.h
+@ARCH_ARM_FALSE@@ARCH_HPPA_TRUE@@ARCH_IA64_FALSE@include_HEADERS_tdep = include/libunwind-hppa.h
+@ARCH_ARM_FALSE@@ARCH_IA64_TRUE@include_HEADERS_tdep = include/libunwind-ia64.h
+@ARCH_ARM_TRUE@include_HEADERS_tdep = include/libunwind-arm.h
include_HEADERS_common = $(include_HEADERS_tdep) \
include/libunwind-dynamic.h include/libunwind-ptrace.h
Oops, something went wrong.

0 comments on commit 3842dac

Please sign in to comment.