[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>
This commit is contained in:

committed by
Elliott Hughes

parent
2c5153b043
commit
cf23905a4b
@@ -542,6 +542,7 @@ phdr_table_get_arm_exidx(const Elf32_Phdr* phdr_table,
|
||||
* 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 @@ phdr_table_get_dynamic_section(const Elf32_Phdr* phdr_table,
|
||||
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 @@ phdr_table_get_dynamic_section(const Elf32_Phdr* phdr_table,
|
||||
if (dynamic_count) {
|
||||
*dynamic_count = (unsigned)(phdr->p_memsz / 8);
|
||||
}
|
||||
if (dynamic_flags) {
|
||||
*dynamic_flags = phdr->p_flags;
|
||||
}
|
||||
return;
|
||||
}
|
||||
*dynamic = NULL;
|
||||
|
Reference in New Issue
Block a user