From 3d2b3019e0efa9735370498122ac80298deff8c7 Mon Sep 17 00:00:00 2001 From: "David S. Miller" Date: Tue, 21 Feb 2012 15:42:42 -0800 Subject: Use sparc GOTDATA relocations whenever possible. * sysdeps/sparc/crti.S: Try to use GOTDATA relocs. * sysdeps/sparc/sparc32/dl-machine.h (RTLD_START): Likewise. * sysdeps/sparc/sparc32/elf/start.S: Likewise. * sysdeps/sparc/sparc64/dl-machine.h (RTLD_START): Likewise. * sysdeps/sparc/sparc64/elf/start.S: Likewise. * sysdeps/sparc/sparc64/multiarch/memcpy.S: Likewise. * sysdeps/sparc/sparc64/multiarch/memset.S: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/____longjmp_chk.S: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h (SYSCALL_ERROR_HANDLER): Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/____longjmp_chk.S: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/brk.S: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h (SYSCALL_ERROR_HANDLER): Likewise. --- sysdeps/sparc/crti.S | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'sysdeps/sparc/crti.S') diff --git a/sysdeps/sparc/crti.S b/sysdeps/sparc/crti.S index 6ec4e9a5b3..caed362293 100644 --- a/sysdeps/sparc/crti.S +++ b/sysdeps/sparc/crti.S @@ -71,9 +71,15 @@ _init: save %sp, -STACKFRAME_SIZE, %sp #if PREINIT_FUNCTION_WEAK SETUP_PIC_REG(l7) +#ifdef HAVE_BINUTILS_GOTDATA + sethi %gdop_hix22(PREINIT_FUNCTION), %g1 + xor %g1, %gdop_lox10(PREINIT_FUNCTION), %g1 + GOT_LOAD [%l7 + %g1], %g1, %gdop(PREINIT_FUNCTION) +#else sethi %hi(PREINIT_FUNCTION), %g1 or %g1, %lo(PREINIT_FUNCTION), %g1 GOT_LOAD [%l7 + %g1], %g1 +#endif cmp %g1, 0 be 1f nop -- cgit v1.2.3