am 3fd3e2f8: am 152ef50c: Merge "Use common_clang_cflags"

* commit '3fd3e2f8d32b89cc4c75bf51e1b81373fc555cc1':
diff --git a/Android.build.mk b/Android.build.mk
index 05fe986..a4a3b93 100644
--- a/Android.build.mk
+++ b/Android.build.mk
@@ -19,12 +19,6 @@
 LOCAL_MODULE := $(module)
 LOCAL_MODULE_TAGS := $(module_tag)
 ifeq ($(build_type),host)
-# Flags for host clang builds
-LOCAL_CFLAGS := -Wno-header-guard \
-    -Wno-absolute-value \
-    -Wno-unknown-warning-option \
-    -Wno-extern-c-compat
-
 # Always make host multilib
 LOCAL_MULTILIB := both
 else
diff --git a/Android.mk b/Android.mk
index c3b63a4..321d99b 100644
--- a/Android.mk
+++ b/Android.mk
@@ -38,7 +38,10 @@
 	-Wno-maybe-uninitialized \
 
 # src/mi/backtrace.c is misdetected as a bogus header guard by clang 3.5
-common_clang_cflags += -Wno-header-guard
+# src/x86_64/Gstash_frame.c has unnecessary calls to labs.
+common_clang_cflags += \
+    -Wno-header-guard \
+    -Wno-absolute-value \
 
 ifneq ($(debug),true)
 common_cflags += \
diff --git a/include/libunwind-aarch64.h b/include/libunwind-aarch64.h
index 3d5fb68..700ed17 100644
--- a/include/libunwind-aarch64.h
+++ b/include/libunwind-aarch64.h
@@ -56,6 +56,9 @@
 typedef struct
   {
     /* no aarch64-specific auxiliary proc-info */
+    /* ANDROID support update. */
+    char __reserved;
+    /* End of ANDROID update. */
   }
 unw_tdep_proc_info_t;
 
@@ -165,6 +168,9 @@
 typedef struct unw_tdep_save_loc
   {
     /* Additional target-dependent info on a save location.  */
+    /* ANDROID support update. */
+    char __reserved;
+    /* End of ANDROID update. */
   }
 unw_tdep_save_loc_t;
 
diff --git a/include/libunwind-arm.h b/include/libunwind-arm.h
index cba380f..495948e 100644
--- a/include/libunwind-arm.h
+++ b/include/libunwind-arm.h
@@ -247,6 +247,9 @@
 typedef struct unw_tdep_save_loc
   {
     /* Additional target-dependent info on a save location.  */
+    /* ANDROID support update. */
+    char __reserved;
+    /* End of ANDROID update. */
   }
 unw_tdep_save_loc_t;
 
@@ -287,6 +290,9 @@
 typedef struct
   {
     /* no arm-specific auxiliary proc-info */
+    /* ANDROID support update. */
+    char __reserved;
+    /* End of ANDROID update. */
   }
 unw_tdep_proc_info_t;
 
diff --git a/include/libunwind-hppa.h b/include/libunwind-hppa.h
index 74ea70d..b5fba56 100644
--- a/include/libunwind-hppa.h
+++ b/include/libunwind-hppa.h
@@ -97,6 +97,9 @@
 typedef struct unw_tdep_save_loc
   {
     /* Additional target-dependent info on a save location.  */
+    /* ANDROID support update. */
+    char __reserved;
+    /* End of ANDROID update. */
   }
 unw_tdep_save_loc_t;
 
@@ -110,6 +113,9 @@
 typedef struct
   {
     /* no PA-RISC-specific auxiliary proc-info */
+    /* ANDROID support update. */
+    char __reserved;
+    /* End of ANDROID update. */
   }
 unw_tdep_proc_info_t;
 
diff --git a/include/libunwind-ia64.h b/include/libunwind-ia64.h
index fb2fbfe..4dcc4f9 100644
--- a/include/libunwind-ia64.h
+++ b/include/libunwind-ia64.h
@@ -83,6 +83,9 @@
 typedef struct
   {
     /* no ia64-specific auxiliary proc-info */
+    /* ANDROID support update. */
+    char __reserved;
+    /* End of ANDROID update. */
   }
 unw_tdep_proc_info_t;
 
diff --git a/include/libunwind-mips.h b/include/libunwind-mips.h
index cf22fc9..83e44de 100644
--- a/include/libunwind-mips.h
+++ b/include/libunwind-mips.h
@@ -124,6 +124,9 @@
 typedef struct unw_tdep_save_loc
   {
     /* Additional target-dependent info on a save location.  */
+    /* ANDROID support update. */
+    char __reserved;
+    /* End of ANDROID update. */
   }
 unw_tdep_save_loc_t;
 
@@ -136,6 +139,9 @@
 typedef struct
   {
     /* no mips-specific auxiliary proc-info */
+    /* ANDROID support update. */
+    char __reserved;
+    /* End of ANDROID update. */
   }
 unw_tdep_proc_info_t;
 
diff --git a/include/libunwind-ppc32.h b/include/libunwind-ppc32.h
index d5342b1..51852e8 100644
--- a/include/libunwind-ppc32.h
+++ b/include/libunwind-ppc32.h
@@ -175,6 +175,9 @@
 typedef struct unw_tdep_save_loc
   {
     /* Additional target-dependent info on a save location.  */
+    /* ANDROID support update. */
+    char __reserved;
+    /* End of ANDROID update. */
   }
 unw_tdep_save_loc_t;
 
@@ -192,6 +195,9 @@
 typedef struct
   {
     /* no ppc32-specific auxiliary proc-info */
+    /* ANDROID support update. */
+    char __reserved;
+    /* End of ANDROID update. */
   }
 unw_tdep_proc_info_t;
 
diff --git a/include/libunwind-ppc64.h b/include/libunwind-ppc64.h
index 66420b3..e0dbaaa 100644
--- a/include/libunwind-ppc64.h
+++ b/include/libunwind-ppc64.h
@@ -232,6 +232,9 @@
 typedef struct unw_tdep_save_loc
   {
     /* Additional target-dependent info on a save location.  */
+    /* ANDROID support update. */
+    char __reserved;
+    /* End of ANDROID update. */
   }
 unw_tdep_save_loc_t;
 
@@ -249,6 +252,9 @@
 typedef struct
   {
     /* no ppc64-specific auxiliary proc-info */
+    /* ANDROID support update. */
+    char __reserved;
+    /* End of ANDROID update. */
   }
 unw_tdep_proc_info_t;
 
diff --git a/include/libunwind-sh.h b/include/libunwind-sh.h
index a3edc86..8f36a25 100644
--- a/include/libunwind-sh.h
+++ b/include/libunwind-sh.h
@@ -91,6 +91,9 @@
 typedef struct unw_tdep_save_loc
   {
     /* Additional target-dependent info on a save location.  */
+    /* ANDROID support update. */
+    char __reserved;
+    /* End of ANDROID update. */
   }
 unw_tdep_save_loc_t;
 
@@ -99,6 +102,9 @@
 typedef struct
   {
     /* no sh-specific auxiliary proc-info */
+    /* ANDROID support update. */
+    char __reserved;
+    /* End of ANDROID update. */
   }
 unw_tdep_proc_info_t;
 
diff --git a/include/libunwind-x86.h b/include/libunwind-x86.h
index 32533df..e46632d 100644
--- a/include/libunwind-x86.h
+++ b/include/libunwind-x86.h
@@ -158,6 +158,9 @@
 typedef struct unw_tdep_save_loc
   {
     /* Additional target-dependent info on a save location.  */
+    /* ANDROID support update. */
+    char __reserved;
+    /* End of ANDROID update. */
   }
 unw_tdep_save_loc_t;
 
@@ -169,6 +172,9 @@
 typedef struct
   {
     /* no x86-specific auxiliary proc-info */
+    /* ANDROID support update. */
+    char __reserved;
+    /* End of ANDROID update. */
   }
 unw_tdep_proc_info_t;
 
diff --git a/include/libunwind-x86_64.h b/include/libunwind-x86_64.h
index 526b1ea..ed8cb11 100644
--- a/include/libunwind-x86_64.h
+++ b/include/libunwind-x86_64.h
@@ -111,6 +111,9 @@
 typedef struct unw_tdep_save_loc
   {
     /* Additional target-dependent info on a save location.  */
+    /* ANDROID support update. */
+    char __reserved;
+    /* End of ANDROID update. */
   }
 unw_tdep_save_loc_t;
 
@@ -120,6 +123,9 @@
 typedef struct
   {
     /* no x86-64-specific auxiliary proc-info */
+    /* ANDROID support update. */
+    char __reserved;
+    /* End of ANDROID update. */
   }
 unw_tdep_proc_info_t;
 
diff --git a/src/arm/Gex_tables.c b/src/arm/Gex_tables.c
index 6086987..7b3e151 100644
--- a/src/arm/Gex_tables.c
+++ b/src/arm/Gex_tables.c
@@ -510,28 +510,7 @@
 
   if (UNW_TRY_METHOD(UNW_ARM_METHOD_DWARF))
     {
-      struct dwarf_callback_data cb_data;
-
-      memset (&cb_data, 0, sizeof (cb_data));
-      cb_data.ip = ip;
-      cb_data.pi = pi;
-      cb_data.need_unwind_info = need_unwind_info;
-      cb_data.di.format = -1;
-      cb_data.di_debug.format = -1;
-
-      SIGPROCMASK (SIG_SETMASK, &unwi_full_mask, &saved_mask);
-      ret = dl_iterate_phdr (dwarf_callback, &cb_data);
-      SIGPROCMASK (SIG_SETMASK, &saved_mask, NULL);
-
-      if (cb_data.single_fde)
-	/* already got the result in *pi */
-	return 0;
-
-      if (cb_data.di_debug.format != -1)
-	ret = tdep_search_unwind_table (as, ip, &cb_data.di_debug, pi,
-					need_unwind_info, arg);
-      else
-	ret = -UNW_ENOINFO;
+      ret = dwarf_find_proc_info (as, ip, pi, need_unwind_info, arg);
     }
 
   if (ret < 0 && UNW_TRY_METHOD (UNW_ARM_METHOD_EXIDX))