diff --git a/linker/linker.cpp b/linker/linker.cpp
index acbb1b0..1befaa6 100644
--- a/linker/linker.cpp
+++ b/linker/linker.cpp
@@ -666,6 +666,8 @@
   DISALLOW_IMPLICIT_CONSTRUCTORS(LoadTask);
 };
 
+LoadTask::deleter_t LoadTask::deleter;
+
 template <typename T>
 using linked_list_t = LinkedList<T, TypeBasedAllocator<LinkedListEntry<T>>>;
 
@@ -1868,7 +1870,9 @@
 }
 
 bool soinfo::PrelinkImage() {
-    phdr_table_get_dynamic_section(phdr, phnum, load_bias, &dynamic);
+  /* Extract dynamic section */
+  ElfW(Word) dynamic_flags = 0;
+  phdr_table_get_dynamic_section(phdr, phnum, load_bias, &dynamic, &dynamic_flags);
 
     /* We can't log anything until the linker is relocated */
     bool relocating_linker = (flags & FLAG_LINKER) != 0;
@@ -1877,8 +1881,6 @@
         DEBUG("si->base = %p si->flags = 0x%08x", reinterpret_cast<void*>(base), flags);
     }
 
-    /* Extract dynamic section */
-    ElfW(Word) dynamic_flags = phdr->p_flags;
     if (dynamic == nullptr) {
         if (!relocating_linker) {
             DL_ERR("missing PT_DYNAMIC in \"%s\"", name);
@@ -2240,7 +2242,7 @@
   ElfW(Ehdr)* elf_hdr = reinterpret_cast<ElfW(Ehdr)*>(linker_base);
   ElfW(Phdr)* phdr = reinterpret_cast<ElfW(Phdr)*>(linker_base + elf_hdr->e_phoff);
   phdr_table_get_dynamic_section(phdr, elf_hdr->e_phnum, linker_base,
-                                 &linker_soinfo_for_gdb.dynamic);
+                                 &linker_soinfo_for_gdb.dynamic, nullptr);
   insert_soinfo_into_debug_map(&linker_soinfo_for_gdb);
 }
 
diff --git a/linker/linker_phdr.cpp b/linker/linker_phdr.cpp
index 4365172..44c8e9e 100644
--- a/linker/linker_phdr.cpp
+++ b/linker/linker_phdr.cpp
@@ -702,15 +702,20 @@
  *   load_bias   -> load bias
  * Output:
  *   dynamic       -> address of table in memory (null on failure).
+ *   dynamic_flags -> protection flags for section (unset on failure)
  * Return:
  *   void
  */
 void phdr_table_get_dynamic_section(const ElfW(Phdr)* phdr_table, size_t phdr_count,
-                                    ElfW(Addr) load_bias, ElfW(Dyn)** dynamic) {
+                                    ElfW(Addr) load_bias, ElfW(Dyn)** dynamic,
+                                    ElfW(Word)* dynamic_flags) {
   *dynamic = nullptr;
   for (const ElfW(Phdr)* phdr = phdr_table, *phdr_limit = phdr + phdr_count; phdr < phdr_limit; phdr++) {
     if (phdr->p_type == PT_DYNAMIC) {
       *dynamic = reinterpret_cast<ElfW(Dyn)*>(load_bias + phdr->p_vaddr);
+      if (dynamic_flags) {
+        *dynamic_flags = phdr->p_flags;
+      }
       return;
     }
   }
diff --git a/linker/linker_phdr.h b/linker/linker_phdr.h
index d4c3ce8..593fb5a 100644
--- a/linker/linker_phdr.h
+++ b/linker/linker_phdr.h
@@ -101,6 +101,7 @@
 #endif
 
 void phdr_table_get_dynamic_section(const ElfW(Phdr)* phdr_table, size_t phdr_count,
-                                    ElfW(Addr) load_bias, ElfW(Dyn)** dynamic);
+                                    ElfW(Addr) load_bias, ElfW(Dyn)** dynamic,
+                                    ElfW(Word)* dynamic_flags);
 
 #endif /* LINKER_PHDR_H */
