diff options
Diffstat (limited to 'ldso/ldso/i386/resolve.S')
-rw-r--r-- | ldso/ldso/i386/resolve.S | 36 |
1 files changed, 8 insertions, 28 deletions
diff --git a/ldso/ldso/i386/resolve.S b/ldso/ldso/i386/resolve.S index db22e7b82..8ae2efa70 100644 --- a/ldso/ldso/i386/resolve.S +++ b/ldso/ldso/i386/resolve.S @@ -1,34 +1,14 @@ -#if 0 -#include <sysdep.h> -#endif /* * These are various helper routines that are needed to run an ELF image. */ -#ifndef ALIGN -#define ALIGN 4 -#endif - -#ifndef NO_UNDERSCORE -#define RUN _linux_run -#define RESOLVE __dl_linux_resolve -#define EXIT __interpreter_exit -#define RESOLVER __dl_linux_resolver -#define INIT ___loader_bootstrap -#else -#define RUN linux_run -#define RESOLVE _dl_linux_resolve -#define RESOLVER _dl_linux_resolver -#define EXIT _interpreter_exit -#define INIT __loader_bootstrap -#endif .text -.align ALIGN - .align 16 +.align 4 + +.globl _dl_linux_resolve +.type _dl_linux_resolve,@function -.globl RESOLVE - .type RESOLVE,@function -RESOLVE: +_dl_linux_resolve: pusha /* preserve all regs */ lea 0x20(%esp),%eax /* eax = tpnt and reloc_entry params */ pushl 4(%eax) /* push copy of reloc_entry param */ @@ -40,10 +20,10 @@ RESOLVE: .L24: popl %ebx addl $_GLOBAL_OFFSET_TABLE_+[.-.L24],%ebx - movl RESOLVER@GOT(%ebx),%ebx /* eax = resolved func */ + movl _dl_linux_resolver@GOT(%ebx),%ebx /* eax = resolved func */ call *%ebx #else - call RESOLVER + call _dl_linux_resolver #endif movl %eax,0x2C(%esp) /* store func addr over original * tpnt param */ @@ -52,4 +32,4 @@ RESOLVE: ret $4 /* jump to func removing original * reloc_entry param from stack */ .LFE2: - .size RESOLVE,.LFE2-RESOLVE + .size _dl_linux_resolve,.LFE2-_dl_linux_resolve |