patches/glibc/ports-2.10.1/620-r10k-workarounds.patch
author "Yann E. MORIN" <yann.morin.1998@free.fr>
Mon Feb 13 21:47:25 2012 +0100 (2012-02-13)
changeset 2883 cea814c9932a
permissions -rw-r--r--
libc/glibc: do not consume parameters when parsing them

Currently, there are two constructs used to parse arguments in
glibc backends, one that consumes args as they are parsed, and
one that does not.

Always use the construct that does not eat args as they are parsed.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
yann@1625
     1
ripped from Debian
yann@1625
     2
yann@1625
     3
the R10000 needs an LL/SC Workaround. If not applied all R10k before
yann@1625
     4
rev 3.0 misbehave on atomic ops and rev 2.6 and lower (e.g. SGI IP28)
yann@1625
     5
die after very few seconds with a deadlock due to even more erratas.
yann@1625
     6
yann@1625
     7
 ports/sysdeps/mips/bits/atomic.h |   12 ++++++------
yann@1625
     8
 1 file changed, 6 insertions(+), 6 deletions(-)
yann@1625
     9
yann@1625
    10
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
yann@1625
    11
--- glibc-2.10.1.orig/glibc-ports-2.10.1/sysdeps/mips/bits/atomic.h	2009-05-16 10:36:20.000000000 +0200
yann@1625
    12
+++ glibc-2.10.1/glibc-ports-2.10.1/sysdeps/mips/bits/atomic.h	2009-11-13 00:51:34.000000000 +0100
yann@1625
    13
@@ -74,7 +74,7 @@
yann@1625
    14
      "bne	%0,%2,2f\n\t"						      \
yann@1625
    15
      "move	%1,%3\n\t"						      \
yann@1625
    16
      "sc	%1,%4\n\t"						      \
yann@1625
    17
-     "beqz	%1,1b\n"						      \
yann@1625
    18
+     "beqzl	%1,1b\n"						      \
yann@1625
    19
      acq	"\n\t"							      \
yann@1625
    20
      ".set	pop\n"							      \
yann@1625
    21
      "2:\n\t"								      \
yann@1625
    22
@@ -98,7 +98,7 @@
yann@1625
    23
      "bne	%0,%2,2f\n\t"						      \
yann@1625
    24
      "move	%1,%3\n\t"						      \
yann@1625
    25
      "scd	%1,%4\n\t"						      \
yann@1625
    26
-     "beqz	%1,1b\n"						      \
yann@1625
    27
+     "beqzl	%1,1b\n"						      \
yann@1625
    28
      acq	"\n\t"							      \
yann@1625
    29
      ".set	pop\n"							      \
yann@1625
    30
      "2:\n\t"								      \
yann@1625
    31
@@ -192,7 +192,7 @@
yann@1625
    32
      "ll	%0,%3\n\t"						      \
yann@1625
    33
      "move	%1,%2\n\t"						      \
yann@1625
    34
      "sc	%1,%3\n\t"						      \
yann@1625
    35
-     "beqz	%1,1b\n"						      \
yann@1625
    36
+     "beqzl	%1,1b\n"						      \
yann@1625
    37
      acq	"\n\t"							      \
yann@1625
    38
      ".set	pop\n"							      \
yann@1625
    39
      "2:\n\t"								      \
yann@1625
    40
@@ -216,7 +216,7 @@
yann@1625
    41
      "lld	%0,%3\n\t"						      \
yann@1625
    42
      "move	%1,%2\n\t"						      \
yann@1625
    43
      "scd	%1,%3\n\t"						      \
yann@1625
    44
-     "beqz	%1,1b\n"						      \
yann@1625
    45
+     "beqzl	%1,1b\n"						      \
yann@1625
    46
      acq	"\n\t"							      \
yann@1625
    47
      ".set	pop\n"							      \
yann@1625
    48
      "2:\n\t"								      \
yann@1625
    49
@@ -251,7 +251,7 @@
yann@1625
    50
      "ll	%0,%3\n\t"						      \
yann@1625
    51
      "addu	%1,%0,%2\n\t"						      \
yann@1625
    52
      "sc	%1,%3\n\t"						      \
yann@1625
    53
-     "beqz	%1,1b\n"						      \
yann@1625
    54
+     "beqzl	%1,1b\n"						      \
yann@1625
    55
      acq	"\n\t"							      \
yann@1625
    56
      ".set	pop\n"							      \
yann@1625
    57
      "2:\n\t"								      \
yann@1625
    58
@@ -275,7 +275,7 @@
yann@1625
    59
      "lld	%0,%3\n\t"						      \
yann@1625
    60
      "daddu	%1,%0,%2\n\t"						      \
yann@1625
    61
      "scd	%1,%3\n\t"						      \
yann@1625
    62
-     "beqz	%1,1b\n"						      \
yann@1625
    63
+     "beqzl	%1,1b\n"						      \
yann@1625
    64
      acq	"\n\t"							      \
yann@1625
    65
      ".set	pop\n"							      \
yann@1625
    66
      "2:\n\t"								      \
yann@1625
    67
diff -durN glibc-2.10.1.orig/ports/sysdeps/mips/bits/atomic.h glibc-2.10.1/ports/sysdeps/mips/bits/atomic.h