diff -r 000000000000 -r a8cb9039fade patches/glibc/ports-2.10.1/620-r10k-workarounds.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/glibc/ports-2.10.1/620-r10k-workarounds.patch Tue Feb 11 21:34:48 2014 +0100 @@ -0,0 +1,67 @@ +ripped from Debian + +the R10000 needs an LL/SC Workaround. If not applied all R10k before +rev 3.0 misbehave on atomic ops and rev 2.6 and lower (e.g. SGI IP28) +die after very few seconds with a deadlock due to even more erratas. + + ports/sysdeps/mips/bits/atomic.h | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +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 +--- glibc-2.10.1.orig/glibc-ports-2.10.1/sysdeps/mips/bits/atomic.h 2009-05-16 10:36:20.000000000 +0200 ++++ glibc-2.10.1/glibc-ports-2.10.1/sysdeps/mips/bits/atomic.h 2009-11-13 00:51:34.000000000 +0100 +@@ -74,7 +74,7 @@ + "bne %0,%2,2f\n\t" \ + "move %1,%3\n\t" \ + "sc %1,%4\n\t" \ +- "beqz %1,1b\n" \ ++ "beqzl %1,1b\n" \ + acq "\n\t" \ + ".set pop\n" \ + "2:\n\t" \ +@@ -98,7 +98,7 @@ + "bne %0,%2,2f\n\t" \ + "move %1,%3\n\t" \ + "scd %1,%4\n\t" \ +- "beqz %1,1b\n" \ ++ "beqzl %1,1b\n" \ + acq "\n\t" \ + ".set pop\n" \ + "2:\n\t" \ +@@ -192,7 +192,7 @@ + "ll %0,%3\n\t" \ + "move %1,%2\n\t" \ + "sc %1,%3\n\t" \ +- "beqz %1,1b\n" \ ++ "beqzl %1,1b\n" \ + acq "\n\t" \ + ".set pop\n" \ + "2:\n\t" \ +@@ -216,7 +216,7 @@ + "lld %0,%3\n\t" \ + "move %1,%2\n\t" \ + "scd %1,%3\n\t" \ +- "beqz %1,1b\n" \ ++ "beqzl %1,1b\n" \ + acq "\n\t" \ + ".set pop\n" \ + "2:\n\t" \ +@@ -251,7 +251,7 @@ + "ll %0,%3\n\t" \ + "addu %1,%0,%2\n\t" \ + "sc %1,%3\n\t" \ +- "beqz %1,1b\n" \ ++ "beqzl %1,1b\n" \ + acq "\n\t" \ + ".set pop\n" \ + "2:\n\t" \ +@@ -275,7 +275,7 @@ + "lld %0,%3\n\t" \ + "daddu %1,%0,%2\n\t" \ + "scd %1,%3\n\t" \ +- "beqz %1,1b\n" \ ++ "beqzl %1,1b\n" \ + acq "\n\t" \ + ".set pop\n" \ + "2:\n\t" \ +diff -durN glibc-2.10.1.orig/ports/sysdeps/mips/bits/atomic.h glibc-2.10.1/ports/sysdeps/mips/bits/atomic.h