patches/glibc/ports-2.10.1/620-r10k-workarounds.patch
changeset 1625 fde082da9813
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/patches/glibc/ports-2.10.1/620-r10k-workarounds.patch	Fri Nov 13 21:37:18 2009 +0100
     1.3 @@ -0,0 +1,67 @@
     1.4 +ripped from Debian
     1.5 +
     1.6 +the R10000 needs an LL/SC Workaround. If not applied all R10k before
     1.7 +rev 3.0 misbehave on atomic ops and rev 2.6 and lower (e.g. SGI IP28)
     1.8 +die after very few seconds with a deadlock due to even more erratas.
     1.9 +
    1.10 + ports/sysdeps/mips/bits/atomic.h |   12 ++++++------
    1.11 + 1 file changed, 6 insertions(+), 6 deletions(-)
    1.12 +
    1.13 +diff -durN glibc-2.10.1.orig/glibc-ports-2.10.1/sysdeps/mips/bits/atomic.h glibc-2.10.1/glibc-ports-2.10.1/sysdeps/mips/bits/atomic.h
    1.14 +--- glibc-2.10.1.orig/glibc-ports-2.10.1/sysdeps/mips/bits/atomic.h	2009-05-16 10:36:20.000000000 +0200
    1.15 ++++ glibc-2.10.1/glibc-ports-2.10.1/sysdeps/mips/bits/atomic.h	2009-11-13 00:51:34.000000000 +0100
    1.16 +@@ -74,7 +74,7 @@
    1.17 +      "bne	%0,%2,2f\n\t"						      \
    1.18 +      "move	%1,%3\n\t"						      \
    1.19 +      "sc	%1,%4\n\t"						      \
    1.20 +-     "beqz	%1,1b\n"						      \
    1.21 ++     "beqzl	%1,1b\n"						      \
    1.22 +      acq	"\n\t"							      \
    1.23 +      ".set	pop\n"							      \
    1.24 +      "2:\n\t"								      \
    1.25 +@@ -98,7 +98,7 @@
    1.26 +      "bne	%0,%2,2f\n\t"						      \
    1.27 +      "move	%1,%3\n\t"						      \
    1.28 +      "scd	%1,%4\n\t"						      \
    1.29 +-     "beqz	%1,1b\n"						      \
    1.30 ++     "beqzl	%1,1b\n"						      \
    1.31 +      acq	"\n\t"							      \
    1.32 +      ".set	pop\n"							      \
    1.33 +      "2:\n\t"								      \
    1.34 +@@ -192,7 +192,7 @@
    1.35 +      "ll	%0,%3\n\t"						      \
    1.36 +      "move	%1,%2\n\t"						      \
    1.37 +      "sc	%1,%3\n\t"						      \
    1.38 +-     "beqz	%1,1b\n"						      \
    1.39 ++     "beqzl	%1,1b\n"						      \
    1.40 +      acq	"\n\t"							      \
    1.41 +      ".set	pop\n"							      \
    1.42 +      "2:\n\t"								      \
    1.43 +@@ -216,7 +216,7 @@
    1.44 +      "lld	%0,%3\n\t"						      \
    1.45 +      "move	%1,%2\n\t"						      \
    1.46 +      "scd	%1,%3\n\t"						      \
    1.47 +-     "beqz	%1,1b\n"						      \
    1.48 ++     "beqzl	%1,1b\n"						      \
    1.49 +      acq	"\n\t"							      \
    1.50 +      ".set	pop\n"							      \
    1.51 +      "2:\n\t"								      \
    1.52 +@@ -251,7 +251,7 @@
    1.53 +      "ll	%0,%3\n\t"						      \
    1.54 +      "addu	%1,%0,%2\n\t"						      \
    1.55 +      "sc	%1,%3\n\t"						      \
    1.56 +-     "beqz	%1,1b\n"						      \
    1.57 ++     "beqzl	%1,1b\n"						      \
    1.58 +      acq	"\n\t"							      \
    1.59 +      ".set	pop\n"							      \
    1.60 +      "2:\n\t"								      \
    1.61 +@@ -275,7 +275,7 @@
    1.62 +      "lld	%0,%3\n\t"						      \
    1.63 +      "daddu	%1,%0,%2\n\t"						      \
    1.64 +      "scd	%1,%3\n\t"						      \
    1.65 +-     "beqz	%1,1b\n"						      \
    1.66 ++     "beqzl	%1,1b\n"						      \
    1.67 +      acq	"\n\t"							      \
    1.68 +      ".set	pop\n"							      \
    1.69 +      "2:\n\t"								      \
    1.70 +diff -durN glibc-2.10.1.orig/ports/sysdeps/mips/bits/atomic.h glibc-2.10.1/ports/sysdeps/mips/bits/atomic.h