[MIPS] Set DT_DEBUG dyntab entry if it is writable
This is primarily for MIPS exutables that do not have a
DT_MIPS_RLD_MAP entry.
Change-Id: I4c221d92debcfed961eeee2515123f3fb21ec8e6
Signed-off-by: Chris Dearman <chris@mips.com>
diff --git a/linker/linker_phdr.cpp b/linker/linker_phdr.cpp
index 1990366..94260fa 100644
--- a/linker/linker_phdr.cpp
+++ b/linker/linker_phdr.cpp
@@ -542,6 +542,7 @@
* Output:
* dynamic -> address of table in memory (NULL on failure).
* dynamic_count -> number of items in table (0 on failure).
+ * dynamic_flags -> protection flags for section (unset on failure)
* Return:
* void
*/
@@ -550,7 +551,8 @@
int phdr_count,
Elf32_Addr load_bias,
Elf32_Addr** dynamic,
- size_t* dynamic_count)
+ size_t* dynamic_count,
+ Elf32_Word* dynamic_flags)
{
const Elf32_Phdr* phdr = phdr_table;
const Elf32_Phdr* phdr_limit = phdr + phdr_count;
@@ -564,6 +566,9 @@
if (dynamic_count) {
*dynamic_count = (unsigned)(phdr->p_memsz / 8);
}
+ if (dynamic_flags) {
+ *dynamic_flags = phdr->p_flags;
+ }
return;
}
*dynamic = NULL;