patches/glibc/ports-2.10.1/620-r10k-workarounds.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sun Jul 17 22:46:47 2011 +0200 (2011-07-17)
changeset 2892 aa934ec4b4ee
permissions -rw-r--r--
cc/gcc: add the backend/frontend infra for final gcc

Currently, we issue the bare-metal compiler from the pass_1 & pass_2
core compilers, because the final gcc breaks while doing so.

This implies we have to build some libces during the start_files step,
instead of the standard libc step. This is the case for newlib.

By adding a backend/frontend infra to the final gcc, we can abstract
what backend to call: the standard backend for non-bare-metal gcc,
and the core backend for bare-metal.

This patch is just an no-op, it just adds the final backend and
frontend without changing the way bare-metal is built, to come in a
subsequent patch.

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