Add support for DT_MIPS_RLD_MAP2 tag.

Position Independent Executables cannot communicate with GDB using DT_MIPS_RLD_TAG.
Hence a new tag DT_MIPS_RLD_MAP2 got introduced to fix the issue.

Change-Id: I77ce3faf1ef2e121003b804ecd291abb25cfbb56
Signed-off-by: Nikola Veljkovic<Nikola.Veljkovic@imgtec.com>
This commit is contained in:
Raghu Gandham
2014-12-18 19:12:19 -08:00
parent 65e6985617
commit 688157295f
2 changed files with 8 additions and 0 deletions

View File

@@ -2402,6 +2402,13 @@ bool soinfo::prelink_image() {
*dp = &_r_debug;
}
break;
case DT_MIPS_RLD_MAP2:
// Set the DT_MIPS_RLD_MAP2 entry to the address of _r_debug for GDB.
{
r_debug** dp = reinterpret_cast<r_debug**>(reinterpret_cast<ElfW(Addr)>(d) + d->d_un.d_val);
*dp = &_r_debug;
}
break;
case DT_MIPS_RLD_VERSION:
case DT_MIPS_FLAGS: