bionic: linker: Need update the map->l_addr for execution.

Currently, linker doesn't update the map->l_addr for execution.
Which could break the Unwind_Backtrace with PT_GNU_EH_FRAME enabled
in new toolchain.

Change-Id: Ifbd853134da64a962f7e4c4105e56a3f20def1b2
Author: Fengwei Yin <fengwei.yin@intel.com>
Signed-off-by: Jack Ren <jack.ren@intel.com>
Author-tracking-BZ: 57077
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