mirror of
https://github.com/fluencelabs/musl
synced 2025-04-24 23:02:14 +00:00
ldso: fix GDB dynamic linker info on MIPS
GDB is looking for a pointer to the ldso debug info in the data of the ..rld_map section. Signed-off-by: Felix Fietkau <nbd@openwrt.org>
This commit is contained in:
parent
831e9d9efa
commit
c18d05f0e8
@ -24,7 +24,7 @@
|
|||||||
#define REL_TPOFF R_MIPS_TLS_TPREL32
|
#define REL_TPOFF R_MIPS_TLS_TPREL32
|
||||||
|
|
||||||
#define NEED_MIPS_GOT_RELOCS 1
|
#define NEED_MIPS_GOT_RELOCS 1
|
||||||
#define DYNAMIC_IS_RO 1
|
#define DT_DEBUG_INDIRECT DT_MIPS_RLD_MAP
|
||||||
#define ARCH_SYM_REJECT_UND(s) (!((s)->st_other & STO_MIPS_PLT))
|
#define ARCH_SYM_REJECT_UND(s) (!((s)->st_other & STO_MIPS_PLT))
|
||||||
|
|
||||||
#define CRTJMP(pc,sp) __asm__ __volatile__( \
|
#define CRTJMP(pc,sp) __asm__ __volatile__( \
|
||||||
|
@ -1582,11 +1582,14 @@ _Noreturn void __dls3(size_t *sp)
|
|||||||
load_deps(&app);
|
load_deps(&app);
|
||||||
make_global(&app);
|
make_global(&app);
|
||||||
|
|
||||||
#ifndef DYNAMIC_IS_RO
|
for (i=0; app.dynv[i]; i+=2) {
|
||||||
for (i=0; app.dynv[i]; i+=2)
|
if (!DT_DEBUG_INDIRECT && app.dynv[i]==DT_DEBUG)
|
||||||
if (app.dynv[i]==DT_DEBUG)
|
|
||||||
app.dynv[i+1] = (size_t)&debug;
|
app.dynv[i+1] = (size_t)&debug;
|
||||||
#endif
|
if (DT_DEBUG_INDIRECT && app.dynv[i]==DT_DEBUG_INDIRECT) {
|
||||||
|
size_t *ptr = (size_t *) app.dynv[i+1];
|
||||||
|
*ptr = (size_t)&debug;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* The main program must be relocated LAST since it may contin
|
/* The main program must be relocated LAST since it may contin
|
||||||
* copy relocations which depend on libraries' relocations. */
|
* copy relocations which depend on libraries' relocations. */
|
||||||
|
@ -83,6 +83,10 @@ struct fdpic_dummy_loadmap {
|
|||||||
#define NEED_MIPS_GOT_RELOCS 0
|
#define NEED_MIPS_GOT_RELOCS 0
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef DT_DEBUG_INDIRECT
|
||||||
|
#define DT_DEBUG_INDIRECT 0
|
||||||
|
#endif
|
||||||
|
|
||||||
#define AUX_CNT 32
|
#define AUX_CNT 32
|
||||||
#define DYN_CNT 32
|
#define DYN_CNT 32
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user