From 92e03da6a446faa5ad8946fc90794e918db90454 Mon Sep 17 00:00:00 2001 From: Eric Andersen Date: Fri, 8 Nov 2002 02:18:16 +0000 Subject: Another SuperH patch from Stefan Allius. This make it so the SuperH lib loader can be compiled by GCC 3.3 --- ldso/ldso/sh/resolve.S | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'ldso/ldso/sh/resolve.S') diff --git a/ldso/ldso/sh/resolve.S b/ldso/ldso/sh/resolve.S index f3eac9b32..1d3bc5cdc 100644 --- a/ldso/ldso/sh/resolve.S +++ b/ldso/ldso/sh/resolve.S @@ -49,10 +49,14 @@ _dl_linux_resolve: mov r2, r0 ! link map address in r2 (SH PIC ABI) 1: mov r0, r4 ! link map address in r0 (GNUs PLT) + mova .LG, r0 + mov.l .LG, r5 + add r5, r0 mov.l 3f, r5 - bsrf r5 - mov r1, r5 ! Reloc offset -.jmp_loc: + mov.l @(r0, r5),r5 + jsr @r5 + mov r1, r5 ! Reloc offset + lds.l @r15+, pr ! Get register content back #ifdef HAVE_FPU @@ -78,7 +82,10 @@ _dl_linux_resolve: mov.l @r15+, r3 .balign 4 + 3: - .long _dl_linux_resolver@PLT-(.jmp_loc-(.)) + .long _dl_linux_resolver@GOT +.LG: + .long _GLOBAL_OFFSET_TABLE_ .size _dl_linux_resolve, . - _dl_linux_resolve -- cgit v1.2.3