Merge "bionic: linker: Need update the map->l_addr for execution."
diff --git a/linker/linker.cpp b/linker/linker.cpp
index 46d1335..998e608 100644
--- a/linker/linker.cpp
+++ b/linker/linker.cpp
@@ -1916,6 +1916,12 @@
soinfo_call_constructors(preloads[i]);
}
+ /*After the link_image, the si->base is initialized.
+ *For so lib, the map->l_addr will be updated in notify_gdb_of_load.
+ *We need to update this value for so exe here. So Unwind_Backtrace
+ *for some arch like x86 could work correctly within so exe.
+ */
+ map->l_addr = si->base;
soinfo_call_constructors(si);
#if ALLOW_SYMBOLS_FROM_MAIN