patches/glibc/ports-2.10.1/620-r10k-workarounds.patch
author Cody P Schafer <dev@codyps.com>
Mon May 12 00:02:13 2014 +0200 (2014-05-12)
changeset 3322 eb13867a034c
permissions -rw-r--r--
arch/powerpc: add powerpc64le support

Technically, I don't forbid powerpcle support either, but I'm not sure that
there is any library/compiler support for that at the moment (though the hw
technically makes it possible).

powerpc64le needs glibc 2.19 and gcc 4.9. I haven't looked into the support
tools, but at least gdb 7.5 is too old (7.7.1 definitely has support).

Also make powerpc64 non-experimental. It's practically old at this point.

Signed-off-by: Cody P Schafer <dev@codyps.com>
[yann.morin.1998@free.fr: use ${target_endian_le} and ${target_bits_64}]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Message-Id: <64bfbbced9dd8f62e0d6.1399801945@gun>
Patchwork-Id: 347775
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