diff options
Diffstat (limited to 'toolchain/musl/patches/020-ldso-fix-GDB-dynamic-linker-info-on-MIPS.patch')
-rw-r--r-- | toolchain/musl/patches/020-ldso-fix-GDB-dynamic-linker-info-on-MIPS.patch | 55 |
1 files changed, 0 insertions, 55 deletions
diff --git a/toolchain/musl/patches/020-ldso-fix-GDB-dynamic-linker-info-on-MIPS.patch b/toolchain/musl/patches/020-ldso-fix-GDB-dynamic-linker-info-on-MIPS.patch deleted file mode 100644 index 12d8503..0000000 --- a/toolchain/musl/patches/020-ldso-fix-GDB-dynamic-linker-info-on-MIPS.patch +++ /dev/null @@ -1,55 +0,0 @@ -From: Felix Fietkau <nbd@openwrt.org> -Date: Sat, 30 Jan 2016 19:19:08 +0100 -Subject: [PATCH] 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> ---- - ---- a/arch/mips/reloc.h -+++ b/arch/mips/reloc.h -@@ -24,7 +24,7 @@ - #define REL_TPOFF R_MIPS_TLS_TPREL32 - - #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 CRTJMP(pc,sp) __asm__ __volatile__( \ ---- a/ldso/dynlink.c -+++ b/ldso/dynlink.c -@@ -1582,11 +1582,14 @@ _Noreturn void __dls3(size_t *sp) - load_deps(&app); - make_global(&app); - --#ifndef DYNAMIC_IS_RO -- for (i=0; app.dynv[i]; i+=2) -- if (app.dynv[i]==DT_DEBUG) -+ for (i=0; app.dynv[i]; i+=2) { -+ if (!DT_DEBUG_INDIRECT && app.dynv[i]==DT_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 - * copy relocations which depend on libraries' relocations. */ ---- a/src/internal/dynlink.h -+++ b/src/internal/dynlink.h -@@ -83,6 +83,10 @@ struct fdpic_dummy_loadmap { - #define NEED_MIPS_GOT_RELOCS 0 - #endif - -+#ifndef DT_DEBUG_INDIRECT -+#define DT_DEBUG_INDIRECT 0 -+#endif -+ - #define AUX_CNT 32 - #define DYN_CNT 32 - |