a more than adequate job of explaining everything required to get this
working. */
+#include "ldso.h"
+
extern int _dl_linux_resolve(void);
unsigned long _dl_linux_resolver(struct elf_resolve *tpnt, int reloc_entry)
symtab_index = ELF32_R_SYM(rpnt->r_info);
+#if defined (__SUPPORT_LD_DEBUG__)
debug_sym(symtab,strtab,symtab_index);
debug_reloc(symtab,strtab,rpnt);
+#endif
res = reloc_fnc (tpnt, scope, rpnt, symtab, strtab);
symtab_index = ELF32_R_SYM(rpnt->r_info);
+#if defined (__SUPPORT_LD_DEBUG__)
debug_sym(symtab, strtab, symtab_index);
debug_reloc(symtab, strtab, rpnt);
+#endif
/* Pass over to actual relocation function. */
res = reloc_fnc(tpnt, scope, rpnt, symtab, strtab);
_dl_dprintf(_dl_debug_file, "\n");
}
-#else
-
-#define debug_sym(symtab, strtab, symtab_index)
-#define debug_reloc(symtab, strtab, rpnt)
-
#endif /* __SUPPORT_LD_DEBUG__ */
the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
USA. */
-#include <sys/cdefs.h> /* __attribute_used__ */
+#include <features.h>
/* Program to load an ELF binary on a linux system, and run it.
References to symbols in sharable libraries can be resolved by either
a more than adequate job of explaining everything required to get this
working. */
-struct funcdesc_value volatile *__attribute__((__visibility__("hidden")))
+struct funcdesc_value volatile attribute_hidden *
_dl_linux_resolver (struct elf_resolve *tpnt, int reloc_entry)
{
int reloc_type;
int res;
symtab_index = ELF32_R_SYM(rpnt->r_info);
+
+#if defined (__SUPPORT_LD_DEBUG__)
debug_sym(symtab,strtab,symtab_index);
debug_reloc(symtab,strtab,rpnt);
+#endif
res = reloc_fnc (tpnt, scope, rpnt, symtab, strtab);
symtab_index = ELF32_R_SYM(rpnt->r_info);
+#if defined (__SUPPORT_LD_DEBUG__)
debug_sym(symtab, strtab, symtab_index);
debug_reloc(symtab, strtab, rpnt);
+#endif
res = reloc_fnc(tpnt, scope, rpnt, symtab, strtab);
a more than adequate job of explaining everything required to get this
working. */
+#include "ldso.h"
+
extern int _dl_linux_resolve(void);
unsigned int
* SUCH DAMAGE.
*/
+#include "ldso.h"
+
extern int _dl_runtime_resolve(void);
#define OFFSET_GP_GOT 0x7ff0
symtab_index = ELF32_R_SYM(rpnt->r_info);
symbol_addr = 0;
+#if defined (__SUPPORT_LD_DEBUG__)
debug_sym(symtab,strtab,symtab_index);
debug_reloc(symtab,strtab,rpnt);
-#if defined (__SUPPORT_LD_DEBUG__)
if (reloc_addr)
old_val = *reloc_addr;
#endif
* SUCH DAMAGE.
*/
+#include "ldso.h"
+
extern int _dl_linux_resolve(void);
void _dl_init_got(unsigned long *plt,struct elf_resolve *tpnt)
strtab = (char *)tpnt->dynamic_info[DT_STRTAB];
symname = strtab + symtab[symtab_index].st_name;
+#if defined (__SUPPORT_LD_DEBUG__)
debug_sym(symtab,strtab,symtab_index);
debug_reloc(symtab,strtab,this_reloc);
-#if defined (__SUPPORT_LD_DEBUG__)
if (unlikely(ELF32_R_TYPE(this_reloc->r_info) != R_PPC_JMP_SLOT)) {
_dl_dprintf(2, "%s: Incorrect relocation type in jump relocation\n", _dl_progname);
_dl_exit(1);
symtab_index = ELF32_R_SYM(rpnt->r_info);
+#if defined (__SUPPORT_LD_DEBUG__)
debug_sym(symtab,strtab,symtab_index);
debug_reloc(symtab,strtab,rpnt);
+#endif
res = reloc_fnc (tpnt, scope, rpnt, symtab, strtab);
a more than adequate job of explaining everything required to get this
working. */
+#include "ldso.h"
+
extern int _dl_linux_resolve(void);
unsigned long _dl_linux_resolver(struct elf_resolve *tpnt, int reloc_entry)
int res;
symtab_index = ELF32_R_SYM(rpnt->r_info);
+
+#if defined (__SUPPORT_LD_DEBUG__)
debug_sym(symtab,strtab,symtab_index);
debug_reloc(symtab,strtab,rpnt);
+#endif
res = reloc_fnc(tpnt, scope, rpnt, symtab, strtab);
a more than adequate job of explaining everything required to get this
working. */
+#include "ldso.h"
+
extern int _dl_linux_resolve(void);
unsigned long _dl_linux_resolver(struct elf_resolve *tpnt, int reloc_entry)
int res;
symtab_index = ELF32_R_SYM(rpnt->r_info);
+
+#ifdef __SUPPORT_LD_DEBUG__
debug_sym(symtab,strtab,symtab_index);
debug_reloc(symtab,strtab,rpnt);
+#endif
res = reloc_fnc (tpnt, scope, rpnt, symtab, strtab);
if (res == 0)
symtab_index = ELF_R_SYM(rpnt->r_info);
+#if defined (__SUPPORT_LD_DEBUG__)
debug_sym(symtab, strtab, symtab_index);
debug_reloc(symtab, strtab, rpnt);
+#endif
res = reloc_fnc(tpnt, scope, rpnt, symtab, strtab);