]> rtime.felk.cvut.cz Git - l4.git/blobdiff - l4/pkg/uclibc/lib/contrib/uclibc/ldso/ldso/mips/dl-sysdep.h
update
[l4.git] / l4 / pkg / uclibc / lib / contrib / uclibc / ldso / ldso / mips / dl-sysdep.h
index 80c089aede61ed56511e9505e06f36e233b365aa..6041245d05c05671cf28254f439781e8af8545c9 100644 (file)
@@ -113,6 +113,9 @@ else if ((dpnt->d_tag == DT_MIPS_RLD_MAP) && (dpnt->d_un.d_ptr)) \
      *(ElfW(Addr) *)(dpnt->d_un.d_ptr) =  (ElfW(Addr)) debug_addr; \
 } while (0)
 
+#define ARCH_SKIP_RELOC(type_class, sym) \
+     ((sym)->st_shndx == SHN_UNDEF && !((sym)->st_other & STO_MIPS_PLT))
+
 /* Initialization sequence for the application/library GOT.  */
 #define INIT_GOT(GOT_BASE,MODULE)                                              \
 do {                                                                           \
@@ -127,7 +130,7 @@ do {                                                                                \
        GOT_BASE[0] = (unsigned long) _dl_runtime_resolve;                      \
        GOT_BASE[1] = (unsigned long) MODULE;                                   \
                                                                                \
-       pltgot = MODULE->dynamic_info[DT_MIPS_PLTGOT_IDX];                      \
+       pltgot = (unsigned long *) MODULE->dynamic_info[DT_MIPS_PLTGOT_IDX];    \
        if (pltgot) {                                                           \
                pltgot[0] = (unsigned long) _dl_runtime_pltresolve;             \
                pltgot[1] = (unsigned long) MODULE;                             \
@@ -156,6 +159,9 @@ unsigned long __dl_runtime_resolve(unsigned long sym_index,
        unsigned long old_gpreg);
 
 struct elf_resolve;
+unsigned long __dl_runtime_pltresolve(struct elf_resolve *tpnt,
+       int reloc_entry);
+
 void _dl_perform_mips_global_got_relocations(struct elf_resolve *tpnt, int lazy);
 
 /* 4096 bytes alignment */