This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GNU C Library master sources branch, master, updated. glibc-2.15-211-gd510c12


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  d510c12326901bb3725a7e5a3b7602a3e266be56 (commit)
       via  0722d7c2ac52b343e895b0726fd08ec8e9677c04 (commit)
       via  3d2b3019e0efa9735370498122ac80298deff8c7 (commit)
       via  c80098a9a05b7d5f8ad1488135f2cee613998c50 (commit)
       via  3a2545a0f345a6c6348e9f7ce56e929aeab61f10 (commit)
       via  7a8b71c37c39264fc41ed69fe85911c7d0c03611 (commit)
      from  f1e86fca4a2ba7466c9373f19abfce8998820b86 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=d510c12326901bb3725a7e5a3b7602a3e266be56

commit d510c12326901bb3725a7e5a3b7602a3e266be56
Author: David S. Miller <davem@davemloft.net>
Date:   Mon Feb 20 17:47:27 2012 -0800

    Use PI_STATIC_AND_HIDDEN on sparc if we universally use GOTDATA relocs.
    
    	* sysdeps/sparc/elf/configure.in (PI_STATIC_AND_HIDDEN): Define if
    	both binutils and gcc support GOTDATA.

diff --git a/ChangeLog b/ChangeLog
index c125719..5bc4a82 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2012-02-20  David S. Miller  <davem@davemloft.net>
 
+	* sysdeps/sparc/elf/configure.in (PI_STATIC_AND_HIDDEN): Define if
+	both binutils and gcc support GOTDATA.
+
 	* sysdeps/unix/sparc/sysdep.h: Document why we don't use
 	"rd %pc" in the PIC register setup sequences.
 
diff --git a/sysdeps/sparc/elf/configure b/sysdeps/sparc/elf/configure
index 67a4039..a254540 100644
--- a/sysdeps/sparc/elf/configure
+++ b/sysdeps/sparc/elf/configure
@@ -209,3 +209,9 @@ if test $libc_cv_sparc_gcc_gotdata = yes; then
   $as_echo "#define HAVE_GCC_GOTDATA 1" >>confdefs.h
 
 fi
+
+if test $libc_cv_sparc_gcc_gotdata = yes \
+   && test $libc_cv_sparc_gotdata = yes; then
+  $as_echo "#define PI_STATIC_AND_HIDDEN 1" >>confdefs.h
+
+fi
diff --git a/sysdeps/sparc/elf/configure.in b/sysdeps/sparc/elf/configure.in
index ab8b189..1a2f61a 100644
--- a/sysdeps/sparc/elf/configure.in
+++ b/sysdeps/sparc/elf/configure.in
@@ -98,3 +98,8 @@ rm -f conftest*])
 if test $libc_cv_sparc_gcc_gotdata = yes; then
   AC_DEFINE(HAVE_GCC_GOTDATA)
 fi
+
+if test $libc_cv_sparc_gcc_gotdata = yes \
+   && test $libc_cv_sparc_gotdata = yes; then
+  AC_DEFINE(PI_STATIC_AND_HIDDEN)
+fi

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=0722d7c2ac52b343e895b0726fd08ec8e9677c04

commit 0722d7c2ac52b343e895b0726fd08ec8e9677c04
Author: David S. Miller <davem@davemloft.net>
Date:   Tue Feb 21 15:45:17 2012 -0800

    Explain why we don't make use of RDPC in the sparc PIC register setup.
    
    	* sysdeps/unix/sparc/sysdep.h: Document why we don't use
    	"rd %pc" in the PIC register setup sequences.

diff --git a/ChangeLog b/ChangeLog
index 5f966e8..c125719 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2012-02-20  David S. Miller  <davem@davemloft.net>
 
+	* sysdeps/unix/sparc/sysdep.h: Document why we don't use
+	"rd %pc" in the PIC register setup sequences.
+
 	* 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.
diff --git a/sysdeps/unix/sparc/sysdep.h b/sysdeps/unix/sparc/sysdep.h
index 10d561e..1a095cc 100644
--- a/sysdeps/unix/sparc/sysdep.h
+++ b/sysdeps/unix/sparc/sysdep.h
@@ -39,6 +39,9 @@ __sparc_get_pc_thunk.reg:		   				\
 	.previous;							\
 	.endif;
 
+/* Even when v9 we use a call sequence instead of using "rd %pc" because
+   RDPC is extremely expensive and incurs a full pipeline flush.  */
+
 #define SETUP_PIC_REG(reg)						\
 	SPARC_PIC_THUNK(reg)						\
 	sethi	%hi(_GLOBAL_OFFSET_TABLE_-4), %##reg;			\

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=3d2b3019e0efa9735370498122ac80298deff8c7

commit 3d2b3019e0efa9735370498122ac80298deff8c7
Author: David S. Miller <davem@davemloft.net>
Date:   Tue Feb 21 15:42:42 2012 -0800

    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.

diff --git a/ChangeLog b/ChangeLog
index 6eb14f6..5f966e8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,20 @@
 2012-02-20  David S. Miller  <davem@davemloft.net>
 
+	* 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.
+
 	* config.h.in (HAVE_BINUTILS_GOTDATA): New.
 	(HAVE_GCC_GOTDATA): New.
 	* sysdeps/sparc/elf/configure.in: Test for GOTDATA
diff --git a/sysdeps/sparc/crti.S b/sysdeps/sparc/crti.S
index 6ec4e9a..caed362 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
diff --git a/sysdeps/sparc/sparc32/dl-machine.h b/sysdeps/sparc/sparc32/dl-machine.h
index a0c18dc..7ea97fb 100644
--- a/sysdeps/sparc/sparc32/dl-machine.h
+++ b/sysdeps/sparc/sparc32/dl-machine.h
@@ -216,6 +216,18 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
    The C function `_dl_start' is the real entry point;
    its return value is the user program's entry point.  */
 
+#ifdef HAVE_BINUTILS_GOTDATA
+#define RTLD_GOT_ADDRESS(pic_reg, reg, symbol)	\
+	"sethi	%gdop_hix22(" #symbol "), " #reg "\n\t" \
+	"xor	" #reg ", %gdop_lox10(" #symbol "), " #reg "\n\t" \
+	"ld	[" #pic_reg " + " #reg "], " #reg ", %gdop(" #symbol ")"
+#else
+#define RTLD_GOT_ADDRESS(pic_reg, reg, symbol)	\
+	"sethi	%hi(" #symbol "), " #reg "\n\t" \
+	"or	" #reg ", %lo(" #symbol "), " #reg "\n\t" \
+	"ld	[" #pic_reg " + " #reg "], " #reg
+#endif
+
 #define RTLD_START __asm__ ("\
 	.text\n\
 	.globl	_start\n\
@@ -240,17 +252,13 @@ _dl_start_user:\n\
 	mov	%o0, %l0\n\
   /* See if we were run as a command with the executable file name as an\n\
      extra leading argument.  If so, adjust the contents of the stack.  */\n\
-	sethi	%hi(_dl_skip_args), %g2\n\
-	or	%g2, %lo(_dl_skip_args), %g2\n\
-	ld	[%l7+%g2], %i0\n\
-	ld	[%i0], %i0\n\
+	" RTLD_GOT_ADDRESS(%l7, %g2, _dl_skip_args) "\n\
+	ld	[%g2], %i0\n\
 	tst	%i0\n\
 	beq	3f\n\
 	 ld	[%sp+22*4], %i5		/* load argc */\n\
 	/* Find out how far to shift.  */\n\
-	sethi	%hi(_dl_argv), %l3\n\
-	or	%l3, %lo(_dl_argv), %l3\n\
-	ld	[%l7+%l3], %l3\n\
+	" RTLD_GOT_ADDRESS(%l7, %l3, _dl_argv) "\n\
 	sub	%i5, %i0, %i5\n\
 	ld	[%l3], %l4\n\
 	sll	%i0, 2, %i2\n\
@@ -283,20 +291,16 @@ _dl_start_user:\n\
 	bne	23b\n\
 	 add	%i1, 8, %i1\n\
   /* %o0 = _dl_loaded, %o1 = argc, %o2 = argv, %o3 = envp.  */\n\
-3:	sethi	%hi(_rtld_local), %o0\n\
+3:	" RTLD_GOT_ADDRESS(%l7, %o0, _rtld_local) "\n\
 	add	%sp, 23*4, %o2\n\
-	orcc	%o0, %lo(_rtld_local), %o0\n\
 	sll	%i5, 2, %o3\n\
-	ld	[%l7+%o0], %o0\n\
 	add	%o3, 4, %o3\n\
 	mov	%i5, %o1\n\
 	add	%o2, %o3, %o3\n\
 	call	_dl_init_internal\n\
 	 ld	[%o0], %o0\n\
   /* Pass our finalizer function to the user in %g1.  */\n\
-	sethi	%hi(_dl_fini), %g1\n\
-	or	%g1, %lo(_dl_fini), %g1\n\
-	ld	[%l7+%g1], %g1\n\
+	" RTLD_GOT_ADDRESS(%l7, %g1, _dl_fini) "\n\
   /* Jump to the user's entry point and deallocate the extra stack we got.  */\n\
 	jmp	%l0\n\
 	 add	%sp, 6*4, %sp\n\
diff --git a/sysdeps/sparc/sparc32/elf/start.S b/sysdeps/sparc/sparc32/elf/start.S
index 1139910..0426714 100644
--- a/sysdeps/sparc/sparc32/elf/start.S
+++ b/sysdeps/sparc/sparc32/elf/start.S
@@ -40,18 +40,11 @@
 
 	.section ".text"
 	.align 4
-#ifdef SHARED
-.LLGETPC0:
-	retl
-	 add	%o7, %l7, %l7
-#endif
 	.global _start
 	.type _start,#function
 _start:
 #ifdef SHARED
-	sethi	%hi(_GLOBAL_OFFSET_TABLE_-4), %l7
-	call	.LLGETPC0
-	 add	%l7, %lo(_GLOBAL_OFFSET_TABLE_+4), %l7
+	SETUP_PIC_REG(l7)
 #endif
 
   /* Terminate the stack frame, and reserve space for functions to
@@ -65,17 +58,36 @@ _start:
 	add	%sp, 23*4, %o2
 
   /* Load the addresses of the user entry points.  */
+#ifndef SHARED
+	sethi	%hi(main), %o0
+	sethi	%hi(__libc_csu_init), %o3
+	sethi	%hi(__libc_csu_fini), %o4
+	or	%o0, %lo(main), %o0
+	or	%o3, %lo(__libc_csu_init), %o3
+	or	%o4, %lo(__libc_csu_fini), %o4
+#else
+#ifdef HAVE_BINUTILS_GOTDATA
+	sethi	%gdop_hix22(main), %o0
+	sethi	%gdop_hix22(__libc_csu_init), %o3
+	sethi	%gdop_hix22(__libc_csu_fini), %o4
+	xor	%o0, %gdop_lox10(main), %o0
+	xor	%o3, %gdop_lox10(__libc_csu_init), %o3
+	xor	%o4, %gdop_lox10(__libc_csu_fini), %o4
+	ld	[%l7 + %o0], %o0, %gdop(main)
+	ld	[%l7 + %o3], %o3, %gdop(__libc_csu_init)
+	ld	[%l7 + %o4], %o4, %gdop(__libc_csu_fini)
+#else
 	sethi	%hi(main), %o0
 	sethi	%hi(__libc_csu_init), %o3
 	sethi	%hi(__libc_csu_fini), %o4
 	or	%o0, %lo(main), %o0
 	or	%o3, %lo(__libc_csu_init), %o3
 	or	%o4, %lo(__libc_csu_fini), %o4
-#ifdef SHARED
 	ld	[%l7 + %o0], %o0
 	ld	[%l7 + %o3], %o3
 	ld	[%l7 + %o4], %o4
 #endif
+#endif
 
   /* When starting a binary via the dynamic linker, %g1 contains the
      address of the shared library termination function, which will be
diff --git a/sysdeps/sparc/sparc64/dl-machine.h b/sysdeps/sparc/sparc64/dl-machine.h
index 5a00c93..6bab5ce 100644
--- a/sysdeps/sparc/sparc64/dl-machine.h
+++ b/sysdeps/sparc/sparc64/dl-machine.h
@@ -264,6 +264,18 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
    The C function `_dl_start' is the real entry point;
    its return value is the user program's entry point.  */
 
+#ifdef HAVE_BINUTILS_GOTDATA
+#define RTLD_GOT_ADDRESS(pic_reg, reg, symbol)	\
+	"sethi	%gdop_hix22(" #symbol "), " #reg "\n\t" \
+	"xor	" #reg ", %gdop_lox10(" #symbol "), " #reg "\n\t" \
+	"ldx	[" #pic_reg " + " #reg "], " #reg ", %gdop(" #symbol ")\n"
+#else
+#define RTLD_GOT_ADDRESS(pic_reg, reg, symbol)	\
+	"sethi	%hi(" #symbol "), " #reg "\n\t" \
+	"or	" #reg ", %lo(" #symbol "), " #reg "\n\t" \
+	"ldx	[" #pic_reg " + " #reg "], " #reg "\n"
+#endif
+
 #define __S1(x)	#x
 #define __S(x)	__S1(x)
 
@@ -288,24 +300,20 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
 "1:	call	11f\n"							\
 "	 sethi	%hi(_GLOBAL_OFFSET_TABLE_-(1b-.)), %l7\n"		\
 "11:	or	%l7, %lo(_GLOBAL_OFFSET_TABLE_-(1b-.)), %l7\n"		\
-"	sethi	%hi(_dl_skip_args), %g5\n"				\
 "	add	%l7, %o7, %l7\n"					\
-"	or	%g5, %lo(_dl_skip_args), %g5\n"				\
 "   /* Save the user entry point address in %l0.  */\n"			\
 "	mov	%o0, %l0\n"						\
 "   /* See if we were run as a command with the executable file name as an\n" \
 "      extra leading argument.  If so, we must shift things around since we\n" \
 "      must keep the stack doubleword aligned.  */\n"			\
-"	ldx	[%l7 + %g5], %i0\n"					\
-"	ld	[%i0], %i0\n"						\
+	RTLD_GOT_ADDRESS(%l7, %g5, _dl_skip_args)			\
+"	ld	[%g5], %i0\n"						\
 "	brz,pt	%i0, 2f\n"						\
 "	 ldx	[%sp + " __S(STACK_BIAS) " + 22*8], %i5\n"		\
 "	/* Find out how far to shift.  */\n"				\
-"	sethi	%hi(_dl_argv), %l4\n"					\
 "	sub	%i5, %i0, %i5\n"					\
-"	or	%l4, %lo(_dl_argv), %l4\n"				\
 "	sllx	%i0, 3, %l6\n"						\
-"	ldx	[%l7 + %l4], %l4\n"					\
+	RTLD_GOT_ADDRESS(%l7, %l4, _dl_argv)				\
 "	stx	%i5, [%sp + " __S(STACK_BIAS) " + 22*8]\n"		\
 "	add	%sp, " __S(STACK_BIAS) " + 23*8, %i1\n"			\
 "	add	%i1, %l6, %i2\n"					\
@@ -333,20 +341,16 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
 "	 add	%i1, 16, %i1\n"						\
 "	stx	%l5, [%l4]\n"						\
 "  /* %o0 = _dl_loaded, %o1 = argc, %o2 = argv, %o3 = envp.  */\n"	\
-"2:	sethi	%hi(_rtld_local), %o0\n"				\
-"	add	%sp, " __S(STACK_BIAS) " + 23*8, %o2\n"			\
-"	orcc	%o0, %lo(_rtld_local), %o0\n"				\
+"2:\t"	RTLD_GOT_ADDRESS(%l7, %o0, _rtld_local)				\
 "	sllx	%i5, 3, %o3\n"						\
-"	ldx	[%l7 + %o0], %o0\n"					\
+"	add	%sp, " __S(STACK_BIAS) " + 23*8, %o2\n"			\
 "	add	%o3, 8, %o3\n"						\
 "	mov	%i5, %o1\n"						\
 "	add	%o2, %o3, %o3\n"					\
 "	call	_dl_init_internal\n"					\
 "	 ldx	[%o0], %o0\n"						\
 "   /* Pass our finalizer function to the user in %g1.  */\n"		\
-"	sethi	%hi(_dl_fini), %g1\n"					\
-"	or	%g1, %lo(_dl_fini), %g1\n"				\
-"	ldx	[%l7 + %g1], %g1\n"					\
+       RTLD_GOT_ADDRESS(%l7, %g1, _dl_fini)				\
 "  /* Jump to the user's entry point and deallocate the extra stack we got.  */\n" \
 "	jmp	%l0\n"							\
 "	 add	%sp, 6*8, %sp\n"					\
diff --git a/sysdeps/sparc/sparc64/elf/start.S b/sysdeps/sparc/sparc64/elf/start.S
index afae70b..50f2df2 100644
--- a/sysdeps/sparc/sparc64/elf/start.S
+++ b/sysdeps/sparc/sparc64/elf/start.S
@@ -40,18 +40,11 @@
 
 	.section ".text"
 	.align 4
-#ifdef SHARED
-.LLGETPC0:
-	retl
-	 add	%o7, %l7, %l7
-#endif
 	.global _start
 	.type _start,#function
 _start:
 #ifdef SHARED
-	sethi	%hi(_GLOBAL_OFFSET_TABLE_-4), %l7
-	call	.LLGETPC0
-	 add	%l7, %lo(_GLOBAL_OFFSET_TABLE_+4), %l7
+	SETUP_PIC_REG(l7)
 #endif
 
   /* Terminate the stack frame, and reserve space for functions to
@@ -66,17 +59,36 @@ _start:
 	add	%sp, STACK_BIAS+23*8, %o2
 
   /* Load the addresses of the user entry points.  */
-        sethi   %hi(main), %o0
-        sethi   %hi(__libc_csu_init), %o3
-        sethi   %hi(__libc_csu_fini), %o4
-        or      %o0, %lo(main), %o0
-        or      %o3, %lo(__libc_csu_init), %o3
-        or      %o4, %lo(__libc_csu_fini), %o4
-#ifdef SHARED
+#ifndef SHARED
+	sethi	%hi(main), %o0
+	sethi	%hi(__libc_csu_init), %o3
+	sethi	%hi(__libc_csu_fini), %o4
+	or	%o0, %lo(main), %o0
+	or	%o3, %lo(__libc_csu_init), %o3
+	or	%o4, %lo(__libc_csu_fini), %o4
+#else
+#ifdef HAVE_BINUTILS_GOTDATA
+	sethi	%gdop_hix22(main), %o0
+	sethi	%gdop_hix22(__libc_csu_init), %o3
+	sethi	%gdop_hix22(__libc_csu_fini), %o4
+	xor	%o0, %gdop_lox10(main), %o0
+	xor	%o3, %gdop_lox10(__libc_csu_init), %o3
+	xor	%o4, %gdop_lox10(__libc_csu_fini), %o4
+	ldx	[%l7 + %o0], %o0, %gdop(main)
+	ldx	[%l7 + %o3], %o3, %gdop(__libc_csu_init)
+	ldx	[%l7 + %o4], %o4, %gdop(__libc_csu_fini)
+#else
+	sethi	%hi(main), %o0
+	sethi	%hi(__libc_csu_init), %o3
+	sethi	%hi(__libc_csu_fini), %o4
+	or	%o0, %lo(main), %o0
+	or	%o3, %lo(__libc_csu_init), %o3
+	or	%o4, %lo(__libc_csu_fini), %o4
 	ldx	[%l7 + %o0], %o0
 	ldx	[%l7 + %o3], %o3
 	ldx	[%l7 + %o4], %o4
 #endif
+#endif
 
   /* When starting a binary via the dynamic linker, %g1 contains the
      address of the shared library termination function, which will be
diff --git a/sysdeps/sparc/sparc64/multiarch/memcpy.S b/sysdeps/sparc/sparc64/multiarch/memcpy.S
index 2fd5e9b..739687f 100644
--- a/sysdeps/sparc/sparc64/multiarch/memcpy.S
+++ b/sysdeps/sparc/sparc64/multiarch/memcpy.S
@@ -25,12 +25,7 @@
 ENTRY(memcpy)
 	.type	memcpy, @gnu_indirect_function
 # ifdef SHARED
-	mov	%o7, %o5
-	sethi	%hi(_GLOBAL_OFFSET_TABLE_-4), %o3
-	call	1f
-	 or	%o3, %lo(_GLOBAL_OFFSET_TABLE_+4), %o3
-1:	add	%o7, %o3, %o3
-	mov	%o5, %o7
+	SETUP_PIC_REG_LEAF(o3, o5)
 # endif
 	andcc	%o0, HWCAP_SPARC_N2, %g0
 	be	1f
diff --git a/sysdeps/sparc/sparc64/multiarch/memset.S b/sysdeps/sparc/sparc64/multiarch/memset.S
index bf2eb63..1353345 100644
--- a/sysdeps/sparc/sparc64/multiarch/memset.S
+++ b/sysdeps/sparc/sparc64/multiarch/memset.S
@@ -25,12 +25,7 @@
 ENTRY(memset)
 	.type	memset, @gnu_indirect_function
 # ifdef SHARED
-	mov	%o7, %o5
-	sethi	%hi(_GLOBAL_OFFSET_TABLE_-4), %o3
-	call	1f
-	 or	%o3, %lo(_GLOBAL_OFFSET_TABLE_+4), %o3
-1:	add	%o7, %o3, %o3
-	mov	%o5, %o7
+	SETUP_PIC_REG_LEAF(o3, o5)
 # endif
 	andcc	%o0, HWCAP_SPARC_BLKINIT, %g0
 	be	9f
@@ -61,12 +56,7 @@ END(memset)
 ENTRY(__bzero)
 	.type	bzero, @gnu_indirect_function
 # ifdef SHARED
-	mov	%o7, %o5
-	sethi	%hi(_GLOBAL_OFFSET_TABLE_-4), %o3
-	call	1f
-	 or	%o3, %lo(_GLOBAL_OFFSET_TABLE_+4), %o3
-1:	add	%o7, %o3, %o3
-	mov	%o5, %o7
+	SETUP_PIC_REG_LEAF(o3, o5)
 # endif
 	andcc	%o0, HWCAP_SPARC_BLKINIT, %g0
 	be	9f
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/____longjmp_chk.S b/sysdeps/unix/sysv/linux/sparc/sparc32/____longjmp_chk.S
index 8b5ac7f..dfbf761 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/____longjmp_chk.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/____longjmp_chk.S
@@ -63,17 +63,21 @@ ENTRY (____longjmp_chk)
 	 nop
 
 .Lfail:
-#ifdef PIC
-1:	call	2f
-	sethi	%hi(_GLOBAL_OFFSET_TABLE_-(1b-.)), %l7
-2:	or	%l7, %lo(_GLOBAL_OFFSET_TABLE_-(1b-.)), %l7
-	add	%l7, %o7, %l7
-#endif
+#ifndef PIC
+	sethi	%hi(longjmp_msg), %o0
+	or	%o0, %lo(longjmp_msg), %o0
+#else
+	SETUP_PIC_REG(l7)
+#ifdef HAVE_BINUTILS_GOTDATA
+	sethi	%gdop_hix22(longjmp_msg), %o0
+	xor	%o0, %gdop_lox10(longjmp_msg), %o0
+	ld	[%l7 + %o0], %o0, %gdop(longjmp_msg)
+#else
 	sethi	%hi(longjmp_msg), %o0
 	or	%o0, %lo(longjmp_msg), %o0
-#ifdef PIC
 	ld	[%l7 + %o0], %o0
 #endif
+#endif
 	call	HIDDEN_JUMPTARGET(__fortify_fail)
 	 nop
 
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h b/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h
index fd7ded5..3d6042e 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h
@@ -88,7 +88,17 @@ ENTRY(name);					\
 	 mov	%g1, %o7;
 #else
 # if RTLD_PRIVATE_ERRNO
-#  define SYSCALL_ERROR_HANDLER			\
+#  ifdef HAVE_BINUTILS_GOTDATA
+#   define SYSCALL_ERROR_HANDLER		\
+0:	SETUP_PIC_REG_LEAF(o2,g1)		\
+	sethi	%gdop_hix22(rtld_errno), %g1;	\
+	xor	%g1, %gdop_lox10(rtld_errno), %g1;\
+	ld	[%o2 + %g1], %g1, %gdop(rtld_errno); \
+	st	%o0, [%g1];			\
+	jmp	%o7 + 8;			\
+	 mov	-1, %o0;
+#  else
+#   define SYSCALL_ERROR_HANDLER		\
 0:	SETUP_PIC_REG_LEAF(o2,g1)		\
 	sethi	%hi(rtld_errno), %g1;		\
 	or	%g1, %lo(rtld_errno), %g1;	\
@@ -96,6 +106,7 @@ ENTRY(name);					\
 	st	%o0, [%g1];			\
 	jmp	%o7 + 8;			\
 	 mov	-1, %o0;
+#  endif
 # elif defined _LIBC_REENTRANT
 
 #  ifndef NOT_IN_libc
@@ -112,7 +123,17 @@ ENTRY(name);					\
 	jmp	%o7 + 8;					\
 	 mov	-1, %o0;
 # else
-#  define SYSCALL_ERROR_HANDLER		\
+#  ifdef HAVE_BINUTILS_GOTDATA
+#   define SYSCALL_ERROR_HANDLER	\
+0:	SETUP_PIC_REG_LEAF(o2,g1)	\
+	sethi	%gdop_hix22(errno), %g1;\
+	xor	%g1, %gdop_lox10(errno), %g1;\
+	ld	[%o2 + %g1], %g1, %gdop(errno);\
+	st	%o0, [%g1];		\
+	jmp	%o7 + 8;		\
+	 mov	-1, %o0;
+#  else
+#   define SYSCALL_ERROR_HANDLER	\
 0:	SETUP_PIC_REG_LEAF(o2,g1)	\
 	sethi	%hi(errno), %g1;	\
 	or	%g1, %lo(errno), %g1;	\
@@ -120,6 +141,7 @@ ENTRY(name);					\
 	st	%o0, [%g1];		\
 	jmp	%o7 + 8;		\
 	 mov	-1, %o0;
+#  endif
 # endif	/* _LIBC_REENTRANT */
 #endif	/* PIC */
 
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/____longjmp_chk.S b/sysdeps/unix/sysv/linux/sparc/sparc64/____longjmp_chk.S
index c6587d5..69cf5ac 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/____longjmp_chk.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/____longjmp_chk.S
@@ -62,17 +62,21 @@ ENTRY (____longjmp_chk)
 	 nop
 
 .Lfail:
-#ifdef PIC
-1:	call	2f
-	sethi	%hi(_GLOBAL_OFFSET_TABLE_-(1b-.)), %l7
-2:	or	%l7, %lo(_GLOBAL_OFFSET_TABLE_-(1b-.)), %l7
-	add	%l7, %o7, %l7
-#endif
+#ifndef PIC
+	sethi	%hi(longjmp_msg), %o0
+	or	%o0, %lo(longjmp_msg), %o0
+#else
+	SETUP_PIC_REG(l7)
+#ifdef HAVE_BINUTILS_GOTDATA
+	sethi	%gdop_hix22(longjmp_msg), %o0
+	xor	%o0, %gdop_lox10(longjmp_msg), %o0
+	ldx	[%l7 + %o0], %o0, %gdop(longjmp_msg)
+#else
 	sethi	%hi(longjmp_msg), %o0
 	or	%o0, %lo(longjmp_msg), %o0
-#ifdef PIC
 	ldx	[%l7 + %o0], %o0
 #endif
+#endif
 	call	HIDDEN_JUMPTARGET(__fortify_fail)
 	 nop
 
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/brk.S b/sysdeps/unix/sysv/linux/sparc/sparc64/brk.S
index 74500eb..a89d877 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/brk.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/brk.S
@@ -42,10 +42,7 @@ ENTRY (__brk)
 	cfi_window_save
 	cfi_register(%o7, %i7)
 #ifdef PIC
-1:	call	2f
-	sethi	%hi(_GLOBAL_OFFSET_TABLE_-(1b-.)), %l7
-2:	or	%l7, %lo(_GLOBAL_OFFSET_TABLE_-(1b-.)), %l7
-	add	%l7, %o7, %l7
+	SETUP_PIC_REG(l7)
 #endif
 
 	LOADSYSCALL(brk)
@@ -62,10 +59,20 @@ ENTRY (__brk)
 	 nop
 
 	/* Update __curbrk and return cleanly.  */
-.Lok:	sethi	%hi(__curbrk), %g1
+.Lok:
+#ifndef PIC
+	sethi	%hi(__curbrk), %g1
 	or	%g1, %lo(__curbrk), %g1
-#ifdef PIC
-	ldx	[%l7+%g1], %g1
+#else
+#ifdef HAVE_BINUTILS_GOTDATA
+	sethi	%gdop_hix22(__curbrk), %g1
+	xor	%g1, %gdop_lox10(__curbrk), %g1
+	ldx	[%l7 + %g1], %g1, %gdop(__curbrk)
+#else
+	sethi	%hi(__curbrk), %g1
+	or	%g1, %lo(__curbrk), %g1
+	ldx	[%l7 + %g1], %g1
+#endif
 #endif
 	stx	%o0, [%g1]
 	mov	%g0, %i0
@@ -78,10 +85,19 @@ ENTRY (__brk)
 .Lerr0:	set	ENOMEM, %o0
 .Lerr1:
 #ifndef _LIBC_REENTRANT
+#ifndef PIC
 	sethi	%hi(errno), %g1
 	or	%g1, %lo(errno), %g1
-#ifdef PIC
-	ldx	[%l7+%g1], %g1
+#else
+#ifdef HAVE_BINUTILS_GOTDATA
+	sethi	%gdop_hix22(errno), %g1
+	xor	%g1, %gdop_lox10(errno), %g1
+	ldx	[%l7 + %g1], %g1, %gdop(errno)
+#else
+	sethi	%hi(errno), %g1
+	or	%g1, %lo(errno), %g1
+	ldx	[%l7 + %g1], %g1
+#endif
 #endif
 	st	%o0, [%g1]
 #else
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h b/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h
index 67ead22..33e1a41 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h
@@ -95,7 +95,17 @@ ENTRY(name);					\
 	 mov	%g1, %o7;
 #else
 # if RTLD_PRIVATE_ERRNO
-#  define SYSCALL_ERROR_HANDLER			\
+#  ifdef HAVE_BINUTILS_GOTDATA
+#   define SYSCALL_ERROR_HANDLER		\
+0:	SETUP_PIC_REG_LEAF(o2,g1)		\
+	sethi	%gdop_hix22(rtld_errno), %g1;	\
+	xor	%g1, %gdop_lox10(rtld_errno), %g1;\
+	ldx	[%o2 + %g1], %g1, %gdop(rtld_errno); \
+	st	%o0, [%g1];			\
+	jmp	%o7 + 8;			\
+	 mov	-1, %o0;
+#  else
+#   define SYSCALL_ERROR_HANDLER		\
 0:	SETUP_PIC_REG_LEAF(o2,g1)		\
 	sethi	%hi(rtld_errno), %g1;		\
 	or	%g1, %lo(rtld_errno), %g1;	\
@@ -103,6 +113,7 @@ ENTRY(name);					\
 	st	%o0, [%g1];			\
 	jmp	%o7 + 8;			\
 	 mov	-1, %o0;
+#  endif
 # elif defined _LIBC_REENTRANT
 
 #  ifndef NOT_IN_libc
@@ -119,7 +130,17 @@ ENTRY(name);					\
 	jmp	%o7 + 8;					\
 	 mov	-1, %o0;
 # else
-#  define SYSCALL_ERROR_HANDLER		\
+#  ifdef HAVE_BINUTILS_GOTDATA
+#   define SYSCALL_ERROR_HANDLER	\
+0:	SETUP_PIC_REG_LEAF(o2,g1)	\
+	sethi	%gdop_hix22(errno), %g1;\
+	xor	%g1, %gdop_lox10(errno), %g1;\
+	ldx	[%o2 + %g1], %g1, %gdop(errno);\
+	st	%o0, [%g1];		\
+	jmp	%o7 + 8;		\
+	 mov	-1, %o0;
+#  else
+#   define SYSCALL_ERROR_HANDLER	\
 0:	SETUP_PIC_REG_LEAF(o2,g1)	\
 	sethi	%hi(errno), %g1;	\
 	or	%g1, %lo(errno), %g1;	\
@@ -127,6 +148,7 @@ ENTRY(name);					\
 	st	%o0, [%g1];		\
 	jmp	%o7 + 8;		\
 	 mov	-1, %o0;
+#  endif
 # endif	/* _LIBC_REENTRANT */
 #endif	/* PIC */
 

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=c80098a9a05b7d5f8ad1488135f2cee613998c50

commit c80098a9a05b7d5f8ad1488135f2cee613998c50
Author: David S. Miller <davem@davemloft.net>
Date:   Tue Feb 21 12:06:07 2012 -0800

    Add sparc configure checks for GOTDATA support.
    
    	* config.h.in (HAVE_BINUTILS_GOTDATA): New.
    	(HAVE_GCC_GOTDATA): New.
    	* sysdeps/sparc/elf/configure.in: Test for GOTDATA
    	relocation support in both binutils and gcc.
    	* sysdeps/sparc/elf/configure: Regenerate.

diff --git a/ChangeLog b/ChangeLog
index af25b40..6eb14f6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
 2012-02-20  David S. Miller  <davem@davemloft.net>
 
+	* config.h.in (HAVE_BINUTILS_GOTDATA): New.
+	(HAVE_GCC_GOTDATA): New.
+	* sysdeps/sparc/elf/configure.in: Test for GOTDATA
+	relocation support in both binutils and gcc.
+	* sysdeps/sparc/elf/configure: Regenerate.
+
 	* sysdeps/sparc/sparc32/elf/configure.in: Delete.
 	* sysdeps/sparc/sparc32/elf/configure: Delete.
 	* sysdeps/sparc/sparc64/elf/configure.in: Delete.
diff --git a/config.h.in b/config.h.in
index 53c6823..b503454 100644
--- a/config.h.in
+++ b/config.h.in
@@ -87,6 +87,12 @@
    certain registers (CR0, MQ, CTR, LR) in asm statements.  */
 #undef	BROKEN_PPC_ASM_CR0
 
+/* Defined on SPARC if as and ld both support GOTDATA relocations.  */
+#undef  HAVE_BINUTILS_GOTDATA
+
+/* Defined on SPARC if GCC emits GOTDATA relocations.  */
+#undef  HAVE_GCC_GOTDATA
+
 /* Define if the linker supports the -z combreloc option.  */
 #undef	HAVE_Z_COMBRELOC
 
diff --git a/sysdeps/sparc/elf/configure b/sysdeps/sparc/elf/configure
index 78dc977..67a4039 100644
--- a/sysdeps/sparc/elf/configure
+++ b/sysdeps/sparc/elf/configure
@@ -136,3 +136,76 @@ $as_echo "$libc_cv_sparc_tls" >&6; }
 if test $libc_cv_sparc_tls = no; then
   as_fn_error $? "the assembler must support TLS" "$LINENO" 5
 fi
+
+# Check for GOTDATA relocation support in assembler and linker.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sparc binutils GOTDATA reloc support" >&5
+$as_echo_n "checking for sparc binutils GOTDATA reloc support... " >&6; }
+if ${libc_cv_sparc_gotdata+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat > conftest.S <<\EOF
+	.data
+	.globl	data
+data:	.word	0
+	.text
+	.globl	foo
+foo:	sethi	%gdop_hix22(data), %g1
+	xor	%g1, %gdop_lox10(data), %g1
+#ifdef __arch64__
+	ldx	[%l7 + %g1], %g1, %gdop(data)
+#else
+	ld	[%l7 + %g1], %g1, %gdop(data)
+#endif
+EOF
+if { ac_try='${CC-cc} -c $CFLAGS conftest.S 1>&5'
+  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }; then
+  libc_cv_sparc_gotdata=yes
+else
+  libc_cv_sparc_gotdata=no
+fi
+rm -f conftest*
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_sparc_gotdata" >&5
+$as_echo "$libc_cv_sparc_gotdata" >&6; }
+if test $libc_cv_sparc_gotdata = yes; then
+  $as_echo "#define HAVE_BINUTILS_GOTDATA 1" >>confdefs.h
+
+fi
+
+# Check for a GCC emitting GOTDATA relocations.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sparc gcc GOTDATA reloc support" >&5
+$as_echo_n "checking for sparc gcc GOTDATA reloc support... " >&6; }
+if ${libc_cv_sparc_gcc_gotdata+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat > conftest.c <<\EOF
+int data;
+int foo(void)
+{
+	return data;
+}
+EOF
+libc_cv_sparc_gcc_gotdata=no
+if { ac_try='${CC-cc} -S $CFLAGS -O2 -fPIC conftest.c 1>&5'
+  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }; then
+  if grep -q 'gdop_hix22' conftest.s \
+     && grep -q 'gdop_lox10' conftest.s; then
+    libc_cv_sparc_gcc_gotdata=yes
+  fi
+fi
+rm -f conftest*
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_sparc_gcc_gotdata" >&5
+$as_echo "$libc_cv_sparc_gcc_gotdata" >&6; }
+if test $libc_cv_sparc_gcc_gotdata = yes; then
+  $as_echo "#define HAVE_GCC_GOTDATA 1" >>confdefs.h
+
+fi
diff --git a/sysdeps/sparc/elf/configure.in b/sysdeps/sparc/elf/configure.in
index c22a7c5..ab8b189 100644
--- a/sysdeps/sparc/elf/configure.in
+++ b/sysdeps/sparc/elf/configure.in
@@ -45,3 +45,56 @@ rm -f conftest*])
 if test $libc_cv_sparc_tls = no; then
   AC_MSG_ERROR([the assembler must support TLS])
 fi
+
+# Check for GOTDATA relocation support in assembler and linker.
+AC_CACHE_CHECK(for sparc binutils GOTDATA reloc support, libc_cv_sparc_gotdata, [dnl
+changequote(,)dnl
+cat > conftest.S <<\EOF
+	.data
+	.globl	data
+data:	.word	0
+	.text
+	.globl	foo
+foo:	sethi	%gdop_hix22(data), %g1
+	xor	%g1, %gdop_lox10(data), %g1
+#ifdef __arch64__
+	ldx	[%l7 + %g1], %g1, %gdop(data)
+#else
+	ld	[%l7 + %g1], %g1, %gdop(data)
+#endif
+EOF
+changequote([,])dnl
+dnl
+if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.S 1>&AS_MESSAGE_LOG_FD); then
+  libc_cv_sparc_gotdata=yes
+else
+  libc_cv_sparc_gotdata=no
+fi
+rm -f conftest*])
+if test $libc_cv_sparc_gotdata = yes; then
+  AC_DEFINE(HAVE_BINUTILS_GOTDATA)
+fi
+
+# Check for a GCC emitting GOTDATA relocations.
+AC_CACHE_CHECK(for sparc gcc GOTDATA reloc support, libc_cv_sparc_gcc_gotdata, [dnl
+changequote(,)dnl
+cat > conftest.c <<\EOF
+int data;
+int foo(void)
+{
+	return data;
+}
+EOF
+changequote([,])dnl
+dnl
+libc_cv_sparc_gcc_gotdata=no
+if AC_TRY_COMMAND(${CC-cc} -S $CFLAGS -O2 -fPIC conftest.c 1>&AS_MESSAGE_LOG_FD); then
+  if grep -q 'gdop_hix22' conftest.s \
+     && grep -q 'gdop_lox10' conftest.s; then
+    libc_cv_sparc_gcc_gotdata=yes
+  fi
+fi
+rm -f conftest*])
+if test $libc_cv_sparc_gcc_gotdata = yes; then
+  AC_DEFINE(HAVE_GCC_GOTDATA)
+fi

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=3a2545a0f345a6c6348e9f7ce56e929aeab61f10

commit 3a2545a0f345a6c6348e9f7ce56e929aeab61f10
Author: David S. Miller <davem@davemloft.net>
Date:   Tue Feb 21 11:49:48 2012 -0800

    Consolidate Sparc ELF configure fragments to one spot.
    
    	* sysdeps/sparc/sparc32/elf/configure.in: Delete.
    	* sysdeps/sparc/sparc32/elf/configure: Delete.
    	* sysdeps/sparc/sparc64/elf/configure.in: Delete.
    	* sysdeps/sparc/sparc64/elf/configure: Delete.
    	* sysdeps/sparc/elf/configure.in: New file.
    	* sysdeps/sparc/elf/configure: Generate.

diff --git a/ChangeLog b/ChangeLog
index 61894f1..af25b40 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
 2012-02-20  David S. Miller  <davem@davemloft.net>
 
+	* sysdeps/sparc/sparc32/elf/configure.in: Delete.
+	* sysdeps/sparc/sparc32/elf/configure: Delete.
+	* sysdeps/sparc/sparc64/elf/configure.in: Delete.
+	* sysdeps/sparc/sparc64/elf/configure: Delete.
+	* sysdeps/sparc/elf/configure.in: New file.
+	* sysdeps/sparc/elf/configure: Generate.
+
 	* sysdeps/sparc/sparc32/elf/configure.in: Delete WDISP22 check.
 	* sysdeps/sparc/sparc32/elf/configure: Regenerate.
 	* sysdeps/sparc/sparc64/elf/configure.in: Likewise.
diff --git a/sysdeps/sparc/sparc32/elf/configure b/sysdeps/sparc/elf/configure
similarity index 84%
rename from sysdeps/sparc/sparc32/elf/configure
rename to sysdeps/sparc/elf/configure
index c6372c4..78dc977 100644
--- a/sysdeps/sparc/sparc32/elf/configure
+++ b/sysdeps/sparc/elf/configure
@@ -81,15 +81,15 @@ $as_echo X/"$0" |
 }
 
 # This file is generated from configure.in by Autoconf.  DO NOT EDIT!
- # Local configure fragment for sysdeps/sparc/sparc32/elf.
+ # Local configure fragment for sysdeps/sparc/elf.
 
 # Check for support of thread-local storage handling in assembler and linker.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sparc32 TLS support" >&5
-$as_echo_n "checking for sparc32 TLS support... " >&6; }
-if ${libc_cv_sparc32_tls+:} false; then :
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sparc TLS support" >&5
+$as_echo_n "checking for sparc TLS support... " >&6; }
+if ${libc_cv_sparc_tls+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat > conftest.s <<\EOF
+  cat > conftest.S <<\EOF
 	.section ".tdata", "awT", @progbits
 	.globl foo
 foo:	.word	1
@@ -110,25 +110,29 @@ baz:	sethi	%tgd_hi22(foo), %l1
 	add	%o0, %l1, %l1, %tldo_add(bar)
 	sethi	%tie_hi22(foo), %l1
 	add	%l1, %tie_lo10(foo), %l1
+#ifdef __arch64__
+	ldx	[%l7 + %l1], %l1, %tie_ldx(foo)
+#else
 	ld	[%l7 + %l1], %l1, %tie_ld(foo)
+#endif
 	add	%g7, %l1, %l1, %tie_add(foo)
 	sethi	%tle_hix22(foo), %l1
 	xor	%l1, %tle_lox10(foo), %l1
 EOF
-if { ac_try='${CC-cc} -c $CFLAGS conftest.s 1>&5'
+if { ac_try='${CC-cc} -c $CFLAGS conftest.S 1>&5'
   { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
   (eval $ac_try) 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; }; then
-  libc_cv_sparc32_tls=yes
+  libc_cv_sparc_tls=yes
 else
-  libc_cv_sparc32_tls=no
+  libc_cv_sparc_tls=no
 fi
 rm -f conftest*
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_sparc32_tls" >&5
-$as_echo "$libc_cv_sparc32_tls" >&6; }
-if test $libc_cv_sparc32_tls = no; then
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_sparc_tls" >&5
+$as_echo "$libc_cv_sparc_tls" >&6; }
+if test $libc_cv_sparc_tls = no; then
   as_fn_error $? "the assembler must support TLS" "$LINENO" 5
 fi
diff --git a/sysdeps/sparc/sparc32/elf/configure.in b/sysdeps/sparc/elf/configure.in
similarity index 73%
rename from sysdeps/sparc/sparc32/elf/configure.in
rename to sysdeps/sparc/elf/configure.in
index 152d4e5..c22a7c5 100644
--- a/sysdeps/sparc/sparc32/elf/configure.in
+++ b/sysdeps/sparc/elf/configure.in
@@ -1,10 +1,10 @@
 GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
-# Local configure fragment for sysdeps/sparc/sparc32/elf.
+# Local configure fragment for sysdeps/sparc/elf.
 
 # Check for support of thread-local storage handling in assembler and linker.
-AC_CACHE_CHECK(for sparc32 TLS support, libc_cv_sparc32_tls, [dnl
+AC_CACHE_CHECK(for sparc TLS support, libc_cv_sparc_tls, [dnl
 changequote(,)dnl
-cat > conftest.s <<\EOF
+cat > conftest.S <<\EOF
 	.section ".tdata", "awT", @progbits
 	.globl foo
 foo:	.word	1
@@ -25,19 +25,23 @@ baz:	sethi	%tgd_hi22(foo), %l1
 	add	%o0, %l1, %l1, %tldo_add(bar)
 	sethi	%tie_hi22(foo), %l1
 	add	%l1, %tie_lo10(foo), %l1
+#ifdef __arch64__
+	ldx	[%l7 + %l1], %l1, %tie_ldx(foo)
+#else
 	ld	[%l7 + %l1], %l1, %tie_ld(foo)
+#endif
 	add	%g7, %l1, %l1, %tie_add(foo)
 	sethi	%tle_hix22(foo), %l1
 	xor	%l1, %tle_lox10(foo), %l1
 EOF
 changequote([,])dnl
 dnl
-if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then
-  libc_cv_sparc32_tls=yes
+if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.S 1>&AS_MESSAGE_LOG_FD); then
+  libc_cv_sparc_tls=yes
 else
-  libc_cv_sparc32_tls=no
+  libc_cv_sparc_tls=no
 fi
 rm -f conftest*])
-if test $libc_cv_sparc32_tls = no; then
+if test $libc_cv_sparc_tls = no; then
   AC_MSG_ERROR([the assembler must support TLS])
 fi
diff --git a/sysdeps/sparc/sparc64/elf/configure b/sysdeps/sparc/sparc64/elf/configure
deleted file mode 100644
index 04a2d1f..0000000
--- a/sysdeps/sparc/sparc64/elf/configure
+++ /dev/null
@@ -1,135 +0,0 @@
-
-# as_fn_set_status STATUS
-# -----------------------
-# Set $? to STATUS, without forking.
-as_fn_set_status ()
-{
-  return $1
-} # as_fn_set_status
-
-# as_fn_exit STATUS
-# -----------------
-# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
-as_fn_exit ()
-{
-  set +e
-  as_fn_set_status $1
-  exit $1
-} # as_fn_exit
-if expr a : '\(a\)' >/dev/null 2>&1 &&
-   test "X`expr 00001 : '.*\(...\)'`" = X001; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
-  as_basename=basename
-else
-  as_basename=false
-fi
-
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
-	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\/\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\/\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-
-
-  as_lineno_1=$LINENO as_lineno_1a=$LINENO
-  as_lineno_2=$LINENO as_lineno_2a=$LINENO
-  eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
-  test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
-  # Blame Lee E. McMahon (1931-1989) for sed's syntax.  :-)
-  sed -n '
-    p
-    /[$]LINENO/=
-  ' <$as_myself |
-    sed '
-      s/[$]LINENO.*/&-/
-      t lineno
-      b
-      :lineno
-      N
-      :loop
-      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
-      t loop
-      s/-\n.*//
-    ' >$as_me.lineno &&
-  chmod +x "$as_me.lineno" ||
-    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
-
-  # Don't try to exec as it changes $[0], causing all sort of problems
-  # (the dirname of $[0] is not the place where we might find the
-  # original and so on.  Autoconf is especially sensitive to this).
-  . "./$as_me.lineno"
-  # Exit status is that of the last command.
-  exit
-}
-
-# This file is generated from configure.in by Autoconf.  DO NOT EDIT!
- # Local configure fragment for sysdeps/sparc/sparc64/elf.
-
-# Check for support of thread-local storage handling in assembler and linker.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sparc64 TLS support" >&5
-$as_echo_n "checking for sparc64 TLS support... " >&6; }
-if ${libc_cv_sparc64_tls+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat > conftest.s <<\EOF
-	.section ".tdata", "awT", @progbits
-	.globl foo
-foo:	.word	1
-	.section ".tbss", "awT", @nobits
-	.globl bar
-bar:	.skip	4
-	.text
-	.globl _start
-_start:	sethi	%tgd_hi22(foo), %l1
-	add	%l1, %tgd_lo10(foo), %l1
-	add	%l7, %l1, %o0, %tgd_add(foo)
-	call	__tls_get_addr, %tgd_call(foo)
-	sethi	%tldm_hi22(bar), %l1
-	add	%l1, %tldm_lo10(bar), %l1
-	add	%l7, %l1, %o0, %tldm_add(bar)
-	call	__tls_get_addr, %tldm_call(bar)
-	sethi	%tldo_hix22(bar), %l1
-	xor	%l1, %tldo_lox10(bar), %l1
-	add	%o0, %l1, %l1, %tldo_add(bar)
-	sethi	%tie_hi22(foo), %l1
-	add	%l1, %tie_lo10(foo), %l1
-	ldx	[%l7 + %l1], %l1, %tie_ldx(foo)
-	add	%g7, %l1, %l1, %tie_add(foo)
-	sethi	%tle_hix22(foo), %l1
-	xor	%l1, %tle_lox10(foo), %l1
-EOF
-if { ac_try='${CC-cc} -o conftest.bin $CFLAGS $LDFLAGS conftest.s -nostdlib -nostartfiles 1>&5'
-  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; }; then
-  libc_cv_sparc64_tls=yes
-else
-  libc_cv_sparc64_tls=no
-fi
-rm -f conftest*
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_sparc64_tls" >&5
-$as_echo "$libc_cv_sparc64_tls" >&6; }
-if test $libc_cv_sparc64_tls = no; then
-  as_fn_error $? "the assembler must support TLS" "$LINENO" 5
-fi
diff --git a/sysdeps/sparc/sparc64/elf/configure.in b/sysdeps/sparc/sparc64/elf/configure.in
deleted file mode 100644
index 959c628..0000000
--- a/sysdeps/sparc/sparc64/elf/configure.in
+++ /dev/null
@@ -1,44 +0,0 @@
-GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
-# Local configure fragment for sysdeps/sparc/sparc64/elf.
-
-# Check for support of thread-local storage handling in assembler and linker.
-AC_CACHE_CHECK(for sparc64 TLS support, libc_cv_sparc64_tls, [dnl
-changequote(,)dnl
-cat > conftest.s <<\EOF
-	.section ".tdata", "awT", @progbits
-	.globl foo
-foo:	.word	1
-	.section ".tbss", "awT", @nobits
-	.globl bar
-bar:	.skip	4
-	.text
-	.globl _start
-_start:	sethi	%tgd_hi22(foo), %l1
-	add	%l1, %tgd_lo10(foo), %l1
-	add	%l7, %l1, %o0, %tgd_add(foo)
-	call	__tls_get_addr, %tgd_call(foo)
-	sethi	%tldm_hi22(bar), %l1
-	add	%l1, %tldm_lo10(bar), %l1
-	add	%l7, %l1, %o0, %tldm_add(bar)
-	call	__tls_get_addr, %tldm_call(bar)
-	sethi	%tldo_hix22(bar), %l1
-	xor	%l1, %tldo_lox10(bar), %l1
-	add	%o0, %l1, %l1, %tldo_add(bar)
-	sethi	%tie_hi22(foo), %l1
-	add	%l1, %tie_lo10(foo), %l1
-	ldx	[%l7 + %l1], %l1, %tie_ldx(foo)
-	add	%g7, %l1, %l1, %tie_add(foo)
-	sethi	%tle_hix22(foo), %l1
-	xor	%l1, %tle_lox10(foo), %l1
-EOF
-changequote([,])dnl
-dnl
-if AC_TRY_COMMAND(${CC-cc} -o conftest.bin $CFLAGS $LDFLAGS conftest.s -nostdlib -nostartfiles 1>&AS_MESSAGE_LOG_FD); then
-  libc_cv_sparc64_tls=yes
-else
-  libc_cv_sparc64_tls=no
-fi
-rm -f conftest*])
-if test $libc_cv_sparc64_tls = no; then
-  AC_MSG_ERROR([the assembler must support TLS])
-fi

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=7a8b71c37c39264fc41ed69fe85911c7d0c03611

commit 7a8b71c37c39264fc41ed69fe85911c7d0c03611
Author: David S. Miller <davem@davemloft.net>
Date:   Tue Feb 21 11:32:08 2012 -0800

    Remove sparc WDISP22 configure checks, no longer used.
    
    	* sysdeps/sparc/sparc32/elf/configure.in: Delete WDISP22 check.
    	* sysdeps/sparc/sparc32/elf/configure: Regenerate.
    	* sysdeps/sparc/sparc64/elf/configure.in: Likewise.
    	* sysdeps/sparc/sparc64/elf/configure: Regenerate.
    	* config.h.in (BROKEN_SPARC_WDISP22): Remove.

diff --git a/ChangeLog b/ChangeLog
index 366d891..61894f1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2012-02-20  David S. Miller  <davem@davemloft.net>
+
+	* sysdeps/sparc/sparc32/elf/configure.in: Delete WDISP22 check.
+	* sysdeps/sparc/sparc32/elf/configure: Regenerate.
+	* sysdeps/sparc/sparc64/elf/configure.in: Likewise.
+	* sysdeps/sparc/sparc64/elf/configure: Regenerate.
+	* config.h.in (BROKEN_SPARC_WDISP22): Remove.
+
 2012-02-21  Joseph Myers  <joseph@codesourcery.com>
 
 	* manual/install.texi: Do not mention specific glibc version
diff --git a/config.h.in b/config.h.in
index 632f89f..53c6823 100644
--- a/config.h.in
+++ b/config.h.in
@@ -87,10 +87,6 @@
    certain registers (CR0, MQ, CTR, LR) in asm statements.  */
 #undef	BROKEN_PPC_ASM_CR0
 
-/* Defined on SPARC if ld does not handle R_SPARC_WDISP22 against .hidden
-   symbol.  sysdeps/sparc/sparc32/elf/configure.  */
-#undef	BROKEN_SPARC_WDISP22
-
 /* Define if the linker supports the -z combreloc option.  */
 #undef	HAVE_Z_COMBRELOC
 
diff --git a/sysdeps/sparc/sparc32/elf/configure b/sysdeps/sparc/sparc32/elf/configure
index e684b2d..c6372c4 100644
--- a/sysdeps/sparc/sparc32/elf/configure
+++ b/sysdeps/sparc/sparc32/elf/configure
@@ -132,33 +132,3 @@ $as_echo "$libc_cv_sparc32_tls" >&6; }
 if test $libc_cv_sparc32_tls = no; then
   as_fn_error $? "the assembler must support TLS" "$LINENO" 5
 fi
-
-# Check for broken WDISP22 in the linker.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sparc32 ld WDISP22 handling" >&5
-$as_echo_n "checking for sparc32 ld WDISP22 handling... " >&6; }
-if ${libc_cv_sparc32_wdisp22+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  echo 'bne foo; nop' > conftest1.s
-echo '.globl foo; .hidden foo; foo: nop' > conftest2.s
-libc_cv_sparc32_wdisp22=unknown
-if { ac_try='${CC-cc} -nostdlib -shared $CFLAGS conftest1.s conftest2.s -o conftest.so 1>&5'
-  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; }; then
-  if readelf -r conftest.so | grep -q R_SPARC_WDISP22; then
-    libc_cv_sparc32_wdisp22=broken
-  else
-    libc_cv_sparc32_wdisp22=ok
-  fi
-fi
-rm -f conftest*
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_sparc32_wdisp22" >&5
-$as_echo "$libc_cv_sparc32_wdisp22" >&6; }
-if test $libc_cv_sparc32_wdisp22 != ok; then
-  $as_echo "#define BROKEN_SPARC_WDISP22 1" >>confdefs.h
-
-fi
diff --git a/sysdeps/sparc/sparc32/elf/configure.in b/sysdeps/sparc/sparc32/elf/configure.in
index d1593a6..152d4e5 100644
--- a/sysdeps/sparc/sparc32/elf/configure.in
+++ b/sysdeps/sparc/sparc32/elf/configure.in
@@ -41,20 +41,3 @@ rm -f conftest*])
 if test $libc_cv_sparc32_tls = no; then
   AC_MSG_ERROR([the assembler must support TLS])
 fi
-
-# Check for broken WDISP22 in the linker.
-AC_CACHE_CHECK(for sparc32 ld WDISP22 handling, libc_cv_sparc32_wdisp22, [dnl
-echo 'bne foo; nop' > conftest1.s
-echo '.globl foo; .hidden foo; foo: nop' > conftest2.s
-libc_cv_sparc32_wdisp22=unknown
-if AC_TRY_COMMAND(${CC-cc} -nostdlib -shared $CFLAGS conftest1.s conftest2.s -o conftest.so 1>&AS_MESSAGE_LOG_FD); then
-  if readelf -r conftest.so | grep -q R_SPARC_WDISP22; then
-    libc_cv_sparc32_wdisp22=broken
-  else
-    libc_cv_sparc32_wdisp22=ok
-  fi
-fi
-rm -f conftest*])
-if test $libc_cv_sparc32_wdisp22 != ok; then
-  AC_DEFINE(BROKEN_SPARC_WDISP22)
-fi
diff --git a/sysdeps/sparc/sparc64/elf/configure b/sysdeps/sparc/sparc64/elf/configure
index 354afae..04a2d1f 100644
--- a/sysdeps/sparc/sparc64/elf/configure
+++ b/sysdeps/sparc/sparc64/elf/configure
@@ -133,33 +133,3 @@ $as_echo "$libc_cv_sparc64_tls" >&6; }
 if test $libc_cv_sparc64_tls = no; then
   as_fn_error $? "the assembler must support TLS" "$LINENO" 5
 fi
-
-# Check for broken WDISP22 in the linker.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sparc64 ld WDISP22 handling" >&5
-$as_echo_n "checking for sparc64 ld WDISP22 handling... " >&6; }
-if ${libc_cv_sparc64_wdisp22+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  echo 'bne foo; nop' > conftest1.s
-echo '.globl foo; .hidden foo; foo: nop' > conftest2.s
-libc_cv_sparc64_wdisp22=unknown
-if { ac_try='${CC-cc} -nostdlib -shared $CFLAGS conftest1.s conftest2.s -o conftest.so 1>&5'
-  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; }; then
-  if readelf -r conftest.so | grep -q R_SPARC_WDISP22; then
-    libc_cv_sparc64_wdisp22=broken
-  else
-    libc_cv_sparc64_wdisp22=ok
-  fi
-fi
-rm -f conftest*
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_sparc64_wdisp22" >&5
-$as_echo "$libc_cv_sparc64_wdisp22" >&6; }
-if test $libc_cv_sparc64_wdisp22 != ok; then
-  $as_echo "#define BROKEN_SPARC_WDISP22 1" >>confdefs.h
-
-fi
diff --git a/sysdeps/sparc/sparc64/elf/configure.in b/sysdeps/sparc/sparc64/elf/configure.in
index b56b275..959c628 100644
--- a/sysdeps/sparc/sparc64/elf/configure.in
+++ b/sysdeps/sparc/sparc64/elf/configure.in
@@ -42,20 +42,3 @@ rm -f conftest*])
 if test $libc_cv_sparc64_tls = no; then
   AC_MSG_ERROR([the assembler must support TLS])
 fi
-
-# Check for broken WDISP22 in the linker.
-AC_CACHE_CHECK(for sparc64 ld WDISP22 handling, libc_cv_sparc64_wdisp22, [dnl
-echo 'bne foo; nop' > conftest1.s
-echo '.globl foo; .hidden foo; foo: nop' > conftest2.s
-libc_cv_sparc64_wdisp22=unknown
-if AC_TRY_COMMAND(${CC-cc} -nostdlib -shared $CFLAGS conftest1.s conftest2.s -o conftest.so 1>&AS_MESSAGE_LOG_FD); then
-  if readelf -r conftest.so | grep -q R_SPARC_WDISP22; then
-    libc_cv_sparc64_wdisp22=broken
-  else
-    libc_cv_sparc64_wdisp22=ok
-  fi
-fi
-rm -f conftest*])
-if test $libc_cv_sparc64_wdisp22 != ok; then
-  AC_DEFINE(BROKEN_SPARC_WDISP22)
-fi

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                                          |   42 +++++
 config.h.in                                        |    8 +-
 sysdeps/sparc/crti.S                               |    6 +
 sysdeps/sparc/{sparc32 => }/elf/configure          |  107 ++++++++++----
 sysdeps/sparc/elf/configure.in                     |  105 +++++++++++++
 sysdeps/sparc/sparc32/dl-machine.h                 |   30 ++--
 sysdeps/sparc/sparc32/elf/configure.in             |   60 -------
 sysdeps/sparc/sparc32/elf/start.S                  |   30 +++-
 sysdeps/sparc/sparc64/dl-machine.h                 |   32 ++--
 sysdeps/sparc/sparc64/elf/configure                |  165 --------------------
 sysdeps/sparc/sparc64/elf/configure.in             |   61 -------
 sysdeps/sparc/sparc64/elf/start.S                  |   42 ++++--
 sysdeps/sparc/sparc64/multiarch/memcpy.S           |    7 +-
 sysdeps/sparc/sparc64/multiarch/memset.S           |   14 +--
 sysdeps/unix/sparc/sysdep.h                        |    3 +
 .../sysv/linux/sparc/sparc32/____longjmp_chk.S     |   18 ++-
 sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h     |   26 +++-
 .../sysv/linux/sparc/sparc64/____longjmp_chk.S     |   18 ++-
 sysdeps/unix/sysv/linux/sparc/sparc64/brk.S        |   34 +++-
 sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h     |   26 +++-
 20 files changed, 422 insertions(+), 412 deletions(-)
 rename sysdeps/sparc/{sparc32 => }/elf/configure (56%)
 create mode 100644 sysdeps/sparc/elf/configure.in
 delete mode 100644 sysdeps/sparc/sparc32/elf/configure.in
 delete mode 100644 sysdeps/sparc/sparc64/elf/configure
 delete mode 100644 sysdeps/sparc/sparc64/elf/configure.in


hooks/post-receive
-- 
GNU C Library master sources


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]