Set the dynamic field in the link map for the linker itself.

Otherwise gdb will print a spurious warning each time gdb is used:

warning: .dynamic section for "/system/bin/linker" is not at the expected
address (wrong library or version mismatch?)

BUG:6946614
Change-Id: Ib21b8db0615751189c1601140deb43bc089289b6
diff --git a/linker/linker.cpp b/linker/linker.cpp
index b2d813f..0e2d9dd 100644
--- a/linker/linker.cpp
+++ b/linker/linker.cpp
@@ -1860,6 +1860,17 @@
     strlcpy((char*) linker_soinfo.name, "/system/bin/linker", sizeof linker_soinfo.name);
     linker_soinfo.flags = 0;
     linker_soinfo.base = linker_base;
+    /*
+     * Set the dynamic field in the link map otherwise gdb will complain with
+     * the following:
+     *   warning: .dynamic section for "/system/bin/linker" is not at the
+     *   expected address (wrong library or version mismatch?)
+     */
+    Elf32_Ehdr *elf_hdr = (Elf32_Ehdr *) linker_base;
+    Elf32_Phdr *phdr =
+        (Elf32_Phdr *)((unsigned char *) linker_base + elf_hdr->e_phoff);
+    linker_soinfo.dynamic =
+        phdr_table_get_dynamic_section(phdr, elf_hdr->e_phnum, linker_base);
     insert_soinfo_into_debug_map(&linker_soinfo);
 
         /* extract information passed from the kernel */