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:
parent
65e6985617
commit
688157295f
@ -121,6 +121,7 @@
|
|||||||
#define DT_MIPS_GOTSYM 0x70000013 /* first dynamic sym in got */
|
#define DT_MIPS_GOTSYM 0x70000013 /* first dynamic sym in got */
|
||||||
#define DT_MIPS_HIPAGENO 0x70000014
|
#define DT_MIPS_HIPAGENO 0x70000014
|
||||||
#define DT_MIPS_RLD_MAP 0x70000016 /* address of loader map */
|
#define DT_MIPS_RLD_MAP 0x70000016 /* address of loader map */
|
||||||
|
#define DT_MIPS_RLD_MAP2 0x70000035 /* offset of loader map, used for PIE */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ELF Flags
|
* ELF Flags
|
||||||
|
@ -2402,6 +2402,13 @@ bool soinfo::prelink_image() {
|
|||||||
*dp = &_r_debug;
|
*dp = &_r_debug;
|
||||||
}
|
}
|
||||||
break;
|
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_RLD_VERSION:
|
||||||
case DT_MIPS_FLAGS:
|
case DT_MIPS_FLAGS:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user