[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

r1517 - in glibc-package/branches/glibc-2.4/debian: . patches/sparc



Author: schizo
Date: 2006-05-23 04:13:10 +0000 (Tue, 23 May 2006)
New Revision: 1517

Added:
   glibc-package/branches/glibc-2.4/debian/patches/sparc/local-linuxthreads.diff
Modified:
   glibc-package/branches/glibc-2.4/debian/changelog
Log:
    - debian/patches/sparc/local-linuxthreads.diff: fill in missing
      preprocessor macros.


Modified: glibc-package/branches/glibc-2.4/debian/changelog
===================================================================
--- glibc-package/branches/glibc-2.4/debian/changelog	2006-05-23 01:52:58 UTC (rev 1516)
+++ glibc-package/branches/glibc-2.4/debian/changelog	2006-05-23 04:13:10 UTC (rev 1517)
@@ -27,6 +27,8 @@
     - debian/sysdeps/mips.mk: build with linuxthreads instead of NPTL
     - debian/sysdeps/i386.mk: disable sanity checks on linuxthreads build
     - Build with gcc 4.1 on all architectures.
+    - debian/patches/sparc/local-linuxthreads.diff: fill in missing
+      preprocessor macros.
 
   [ Denis Barbier ]
     - Remove complex-collate.diff (merged upstream).

Added: glibc-package/branches/glibc-2.4/debian/patches/sparc/local-linuxthreads.diff
===================================================================
--- glibc-package/branches/glibc-2.4/debian/patches/sparc/local-linuxthreads.diff	2006-05-23 01:52:58 UTC (rev 1516)
+++ glibc-package/branches/glibc-2.4/debian/patches/sparc/local-linuxthreads.diff	2006-05-23 04:13:10 UTC (rev 1517)
@@ -0,0 +1,101 @@
+Index: glibc-2.4/linuxthreads/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h
+===================================================================
+--- glibc-2.4.orig/linuxthreads/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h	2006-05-22 22:55:28.000000000 -0400
++++ glibc-2.4/linuxthreads/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h	2006-05-22 22:55:32.000000000 -0400
+@@ -54,6 +54,96 @@
+ 	SYSCALL_ERROR_HANDLER						      \
+ 	SYSCALL_ERROR_HANDLER2
+ 
++#ifdef LINKER_HANDLES_R_SPARC_WDISP22
++/* Unfortunately, we cannot do this yet.  Linker doesn't seem to
++ *    handle R_SPARC_WDISP22 against non-STB_LOCAL symbols properly .  */
++# define SYSCALL_ERROR_HANDLER_ENTRY(handler)                           \
++	        .section .gnu.linkonce.t.handler,"ax",@progbits;                \
++        .globl handler;                                                 \
++        .hidden handler;                                                \
++        .type handler,@function;                                        \
++handler:
++#else
++# define SYSCALL_ERROR_HANDLER_ENTRY(handler)                           \
++	        .subsection 3;                                                  \
++handler:
++#endif
++
++#if RTLD_PRIVATE_ERRNO
++# define SYSCALL_ERROR_HANDLER						\
++	.section .gnu.linkonce.t.__sparc_get_pic_l7,"ax",@progbits;	\
++	.globl __sparc_get_pic_l7;					\
++	.hidden __sparc_get_pic_l7;					\
++	.type __sparc_get_pic_l7,@function;				\
++__sparc_get_pic_l7:							\
++	retl;								\
++	 add	%o7, %l7, %l7;						\
++	.previous;							\
++SYSCALL_ERROR_HANDLER_ENTRY(__syscall_error_handler)			\
++	save	%sp,-96,%sp;						\
++	sethi	%hi(_GLOBAL_OFFSET_TABLE_-4), %l7;			\
++	call	__sparc_get_pic_l7;					\
++	 add	%l7, %lo(_GLOBAL_OFFSET_TABLE_+4), %l7;			\
++	ld	[%l7 + rtld_errno], %l0;				\
++	st	%i0, [%l0];						\
++	jmpl	%i7+8, %g0;						\
++	 restore %g0, -1, %o0;						\
++	.previous;
++#elif USE___THREAD
++# ifndef NOT_IN_libc
++#  define SYSCALL_ERROR_ERRNO __libc_errno
++# else
++#  define SYSCALL_ERROR_ERRNO errno
++# endif
++# ifdef SHARED
++#  define SYSCALL_ERROR_HANDLER						\
++	.section .gnu.linkonce.t.__sparc_get_pic_l7,"ax",@progbits;	\
++	.globl __sparc_get_pic_l7;					\
++	.hidden __sparc_get_pic_l7;					\
++	.type __sparc_get_pic_l7,@function;				\
++__sparc_get_pic_l7:							\
++	retl;								\
++	 add	%o7, %l7, %l7;						\
++	.previous;							\
++SYSCALL_ERROR_HANDLER_ENTRY(__syscall_error_handler)			\
++	save	%sp,-96,%sp;						\
++	sethi	%tie_hi22(SYSCALL_ERROR_ERRNO), %l1;			\
++	sethi	%hi(_GLOBAL_OFFSET_TABLE_-4), %l7;			\
++	call	__sparc_get_pic_l7;					\
++	 add	%l7, %lo(_GLOBAL_OFFSET_TABLE_+4), %l7;			\
++	add	%l1, %tie_lo10(SYSCALL_ERROR_ERRNO), %l1;		\
++	ld	[%l7 + %l1], %l1, %tie_ld(SYSCALL_ERROR_ERRNO);		\
++	st	%i0, [%g7 + %l1], %tie_add(SYSCALL_ERROR_ERRNO);	\
++	jmpl	%i7+8, %g0;						\
++	 restore %g0, -1, %o0;						\
++	.previous;
++# else
++#  define SYSCALL_ERROR_HANDLER						\
++SYSCALL_ERROR_HANDLER_ENTRY(__syscall_error_handler)			\
++	sethi	%tie_hi22(SYSCALL_ERROR_ERRNO), %g1;			\
++	sethi	%hi(_GLOBAL_OFFSET_TABLE_), %g2;			\
++	add	%g1, %tie_lo10(SYSCALL_ERROR_ERRNO), %g1;		\
++	add	%g2, %lo(_GLOBAL_OFFSET_TABLE_), %g2;			\
++	ld	[%g2 + %g1], %g1, %tie_ld(SYSCALL_ERROR_ERRNO);		\
++	st	%o0, [%g7 + %g1], %tie_add(SYSCALL_ERROR_ERRNO);	\
++	jmpl	%o7+8, %g0;						\
++	 mov	-1, %o0;						\
++	.previous;
++# endif
++#else
++# define SYSCALL_ERROR_HANDLER						\
++SYSCALL_ERROR_HANDLER_ENTRY(__syscall_error_handler)			\
++	.global __errno_location;					\
++        .type   __errno_location,@function;				\
++	save   %sp, -96, %sp;						\
++	call   __errno_location;					\
++	 nop;								\
++	st	%i0, [%o0];						\
++	jmpl	%i7+8, %g0;						\
++	 restore %g0, -1, %o0;						\
++	.previous;
++#endif
++
+ #define SYSCALL_ERROR_HANDLER2						      \
+ SYSCALL_ERROR_HANDLER_ENTRY(__syscall_error_handler2)			      \
+ 	.global __errno_location;					      \



Reply to: