r1052 - in glibc-package/trunk/debian: . patches
Author: dan
Date: 2005-11-12 23:11:27 +0000 (Sat, 12 Nov 2005)
New Revision: 1052
Added:
glibc-package/trunk/debian/patches/sparc64-tls.dpatch
Modified:
glibc-package/trunk/debian/changelog
glibc-package/trunk/debian/patches/00list
Log:
* Add patch to fix sparc64 TLS build failure, from Aurelien Jarno
(Closes: #335821).
Modified: glibc-package/trunk/debian/changelog
===================================================================
--- glibc-package/trunk/debian/changelog 2005-10-15 19:22:52 UTC (rev 1051)
+++ glibc-package/trunk/debian/changelog 2005-11-12 23:11:27 UTC (rev 1052)
@@ -1,8 +1,10 @@
glibc (2.3.5-8) unstable; urgency=low
* Add missing build dependency on libc6-dev-ppc64 on powerpc.
+ * Add patch to fix sparc64 TLS build failure, from Aurelien Jarno
+ (Closes: #335821).
- -- Daniel Jacobowitz <dan@debian.org> Sat, 15 Oct 2005 15:21:35 -0400
+ -- Daniel Jacobowitz <dan@debian.org> Sat, 12 Nov 2005 18:10:13 -0500
glibc (2.3.5-7) unstable; urgency=low
Modified: glibc-package/trunk/debian/patches/00list
===================================================================
--- glibc-package/trunk/debian/patches/00list 2005-10-15 19:22:52 UTC (rev 1051)
+++ glibc-package/trunk/debian/patches/00list 2005-11-12 23:11:27 UTC (rev 1052)
@@ -88,3 +88,4 @@
mips-bits-syscall
hppa-iitlbp
hppa-fenv-align
+sparc64-tls
Added: glibc-package/trunk/debian/patches/sparc64-tls.dpatch
===================================================================
--- glibc-package/trunk/debian/patches/sparc64-tls.dpatch 2005-10-15 19:22:52 UTC (rev 1051)
+++ glibc-package/trunk/debian/patches/sparc64-tls.dpatch 2005-11-12 23:11:27 UTC (rev 1052)
@@ -0,0 +1,94 @@
+#! /bin/sh -e
+
+# DP: TLS code for sparc64, taken from CVS
+
+if [ $# -ne 2 ]; then
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1
+fi
+case "$1" in
+ -patch) patch -d "$2" -f --no-backup-if-mismatch -p1 < $0;;
+ -unpatch) patch -d "$2" -f --no-backup-if-mismatch -R -p1 < $0;;
+ *)
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1
+esac
+exit 0
+
+--- glibc-2.3.5.orig/elf/tls-macros.h 2005-11-12 03:47:57.000000000 +0100
++++ glibc-2.3.5/elf/tls-macros.h 2005-11-12 03:56:01.000000000 +0100
+@@ -440,6 +440,74 @@
+ "o5", "o7", "cc"); \
+ __o0; })
+
++#elif defined __sparc__ && defined __arch64__
++
++# define TLS_LE(x) \
++ ({ int *__l; \
++ asm ("sethi %%tle_hix22(" #x "), %0" : "=r" (__l)); \
++ asm ("xor %1, %%tle_lox10(" #x "), %0" : "=r" (__l) : "r" (__l)); \
++ asm ("add %%g7, %1, %0" : "=r" (__l) : "r" (__l)); \
++ __l; })
++
++# ifdef __PIC__
++# define TLS_LOAD_PIC \
++ ({ long pc, got; \
++ asm ("sethi %%hi(_GLOBAL_OFFSET_TABLE_-4), %1\n\t" \
++ "rd %%pc, %0\n\t" \
++ "add %1, %%lo(_GLOBAL_OFFSET_TABLE_+4), %1\n\t" \
++ "add %1, %0, %1\n\t" \
++ : "=r" (pc), "=r" (got)); \
++ got; })
++# else
++# define TLS_LOAD_PIC \
++ ({ long got; \
++ asm (".hidden _GLOBAL_OFFSET_TABLE_\n\t" \
++ "sethi %%hi(_GLOBAL_OFFSET_TABLE_), %0\n\t" \
++ "or %0, %%lo(_GLOBAL_OFFSET_TABLE_), %0" \
++ : "=r" (got)); \
++ got; })
++# endif
++
++# define TLS_IE(x) \
++ ({ int *__l; \
++ asm ("sethi %%tie_hi22(" #x "), %0" : "=r" (__l)); \
++ asm ("add %1, %%tie_lo10(" #x "), %0" : "=r" (__l) : "r" (__l)); \
++ asm ("ldx [%1 + %2], %0, %%tie_ldx(" #x ")" \
++ : "=r" (__l) : "r" (TLS_LOAD_PIC), "r" (__l)); \
++ asm ("add %%g7, %1, %0, %%tie_add(" #x ")" : "=r" (__l) : "r" (__l)); \
++ __l; })
++
++# define TLS_LD(x) \
++ ({ int *__l; register void *__o0 asm ("%o0"); \
++ long __o; \
++ asm ("sethi %%tldm_hi22(" #x "), %0" : "=r" (__l)); \
++ asm ("add %1, %%tldm_lo10(" #x "), %0" : "=r" (__l) : "r" (__l)); \
++ asm ("add %1, %2, %0, %%tldm_add(" #x ")" \
++ : "=r" (__o0) : "r" (TLS_LOAD_PIC), "r" (__l)); \
++ asm ("call __tls_get_addr, %%tgd_call(" #x ")\n\t" \
++ " nop" \
++ : "=r" (__o0) : "0" (__o0) \
++ : "g1", "g2", "g3", "g4", "g5", "g6", "o1", "o2", "o3", "o4", \
++ "o5", "o7", "cc"); \
++ asm ("sethi %%tldo_hix22(" #x "), %0" : "=r" (__o)); \
++ asm ("xor %1, %%tldo_lox10(" #x "), %0" : "=r" (__o) : "r" (__o)); \
++ asm ("add %1, %2, %0, %%tldo_add(" #x ")" : "=r" (__l) \
++ : "r" (__o0), "r" (__o)); \
++ __l; })
++
++# define TLS_GD(x) \
++ ({ int *__l; register void *__o0 asm ("%o0"); \
++ asm ("sethi %%tgd_hi22(" #x "), %0" : "=r" (__l)); \
++ asm ("add %1, %%tgd_lo10(" #x "), %0" : "=r" (__l) : "r" (__l)); \
++ asm ("add %1, %2, %0, %%tgd_add(" #x ")" \
++ : "=r" (__o0) : "r" (TLS_LOAD_PIC), "r" (__l)); \
++ asm ("call __tls_get_addr, %%tgd_call(" #x ")\n\t" \
++ " nop" \
++ : "=r" (__o0) : "0" (__o0) \
++ : "g1", "g2", "g3", "g4", "g5", "g6", "o1", "o2", "o3", "o4", \
++ "o5", "o7", "cc"); \
++ __o0; })
++
+ #elif defined __s390x__
+
+ # define TLS_LE(x) \
Reply to: