patches/glibc/2.7/240-sh-lowlevellock-asm.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>
yann@962
     1
--- glibc-2.7/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.S.orig	2007-08-03 16:44:15.000000000 +0100
yann@962
     2
+++ glibc-2.7/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.S	2008-08-19 21:08:19.000000000 +0100
yann@962
     3
@@ -76,7 +76,7 @@
yann@962
     4
 	add	tmp2, tmp 	; \
yann@962
     5
 	mov.l	@tmp, tmp2	; \
yann@962
     6
 	bra	98f		; \
yann@962
     7
-	 mov	#FUTEX_PRIVATE_FLAG, tmp
yann@962
     8
+	 mov	#FUTEX_PRIVATE_FLAG, tmp ; \
yann@962
     9
 99:	.word	PRIVATE_FUTEX - TLS_PRE_TCB_SIZE ; \
yann@962
    10
 98:	extu.b	tmp, tmp	; \
yann@962
    11
 	xor	tmp, reg	; \
yann@962
    12
@@ -88,7 +88,7 @@
yann@962
    13
 	add	tmp2, tmp 	; \
yann@962
    14
 	mov.l	@tmp, tmp2	; \
yann@962
    15
 	bra	98f		; \
yann@962
    16
-	 mov	#FUTEX_PRIVATE_FLAG, tmp
yann@962
    17
+	 mov	#FUTEX_PRIVATE_FLAG, tmp ; \
yann@962
    18
 99:	.word	PRIVATE_FUTEX - TLS_PRE_TCB_SIZE ; \
yann@962
    19
 98:	extu.b	tmp, tmp	; \
yann@962
    20
 	xor	tmp, reg	; \
yann@962
    21
@@ -96,13 +96,13 @@
yann@962
    22
 	mov	#FUTEX_WAIT, tmp ; \
yann@962
    23
 	or	tmp, reg
yann@962
    24
 # endif
yann@962
    25
-# define LOAD_FUTEX_WAKE(reg,tmp) \
yann@962
    26
+# define LOAD_FUTEX_WAKE(reg,tmp,tmp2) \
yann@962
    27
 	stc	gbr, tmp	; \
yann@962
    28
 	mov.w	99f, tmp2	; \
yann@962
    29
 	add	tmp2, tmp 	; \
yann@962
    30
 	mov.l	@tmp, tmp2	; \
yann@962
    31
 	bra	98f		; \
yann@962
    32
-	 mov	#FUTEX_PRIVATE_FLAG, tmp
yann@962
    33
+	 mov	#FUTEX_PRIVATE_FLAG, tmp ; \
yann@962
    34
 99:	.word	PRIVATE_FUTEX - TLS_PRE_TCB_SIZE ; \
yann@962
    35
 98:	extu.b	tmp, tmp	; \
yann@962
    36
 	xor	tmp, reg	; \
yann@962
    37
--- glibc-2.7/nptl/sysdeps/unix/sysv/linux/sh/lowlevelrobustlock.S.orig	2007-08-03 16:44:57.000000000 +0100
yann@962
    38
+++ glibc-2.7/nptl/sysdeps/unix/sysv/linux/sh/lowlevelrobustlock.S	2008-08-19 21:08:22.000000000 +0100
yann@962
    39
@@ -42,7 +42,7 @@
yann@962
    40
 	add	tmp2, tmp 	; \
yann@962
    41
 	mov.l	@tmp, tmp2	; \
yann@962
    42
 	bra	98f		; \
yann@962
    43
-	 mov	#FUTEX_PRIVATE_FLAG, tmp
yann@962
    44
+	 mov	#FUTEX_PRIVATE_FLAG, tmp ; \
yann@962
    45
 99:	.word	PRIVATE_FUTEX - TLS_PRE_TCB_SIZE ; \
yann@962
    46
 98:	extu.b	tmp, tmp	; \
yann@962
    47
 	xor	tmp, reg	; \
yann@962
    48
@@ -54,7 +54,7 @@
yann@962
    49
 	add	tmp2, tmp 	; \
yann@962
    50
 	mov.l	@tmp, tmp2	; \
yann@962
    51
 	bra	98f		; \
yann@962
    52
-	 mov	#FUTEX_PRIVATE_FLAG, tmp
yann@962
    53
+	 mov	#FUTEX_PRIVATE_FLAG, tmp ; \
yann@962
    54
 99:	.word	PRIVATE_FUTEX - TLS_PRE_TCB_SIZE ; \
yann@962
    55
 98:	extu.b	tmp, tmp	; \
yann@962
    56
 	xor	tmp, reg	; \