patches/glibc/2.7/240-sh-lowlevellock-asm.patch
author Johannes Stezenbach <js@sig21.net>
Thu Jul 29 19:47:16 2010 +0200 (2010-07-29)
changeset 2045 fdaa6c7f6dea
permissions -rw-r--r--
cc/gcc: add option to compile against static libstdc++, for gcc-4.4 and newer

Idea and know-how taken from CodeSourcery build script.

Normal build:
$ ldd arm-unknown-linux-uclibcgnueabi-gcc
linux-gate.so.1 => (0xb77f3000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb76e8000)
libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb75a1000)
libm.so.6 => /lib/i686/cmov/libm.so.6 (0xb757a000)
/lib/ld-linux.so.2 (0xb77f4000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb755c000)

CC_STATIC_LIBSTDCXX=y:
$ ldd arm-unknown-linux-uclibcgnueabi-gcc
linux-gate.so.1 => (0xb7843000)
libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb76e6000)
/lib/ld-linux.so.2 (0xb7844000)

I made CC_STATIC_LIBSTDCXX default=y since I think
it is always desirable.

Signed-off-by: Johannes Stezenbach <js@sig21.net>
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	; \