Hi Bernhard,

Le samedi 20 février 2010 19:22:28, Bernhard Reutner-Fischer a écrit :
> Hi all,
> 
> I'd like to do a maintenance 0.9.30.3 release soon (in a week or so).
> 
> If you have patches/fixes that should be backported from master then
> please say so now (or push non-controversial fixes right to the branch).
> 
> 
> PS: Currently these patches went into the 0_9_30 branch:
> $ git log --oneline 0_9_30_2..origin/0_9_30
> 323453d Makefile.in: Make install_dev depend on install_runtime.
> 74ca569 clean up O_CLOEXEC handling
> b4d6a6e libc: Fix typo in include/rpc
> 956a008 libm: enable log2f and exp2f
> fa476d0 malloc: fix race condition and other bugs in the no-mmu malloc
> 7b96417 Unbreak build for sparc on some config's
> d43f068 fstatat: fix up behavior on 32/64 bit hosts
> 47e88c0 {,host}utils depend on headers
> d75ad2e fix make {,install_}{,host}utils
> 83a09cd rpc: fix typo in version mismatch msg
> 2911103 Make use of macros from sys/asm.h in crt1.S
> 85bc04d avr32: add varargs handling of prctl syscall
> 7193db8 bump version

9c343fd4030dcd7a52616f365893177dded50346 is also required to get dynamic 
executables working on MIPS, it seems like only the hunk to crt1.S is 
required. This was discussed here: 
http://lists.uclibc.org/pipermail/uclibc/2010-January/043523.html

Please find below the patch against 0.9.30.2.
-- 
Best regards, Florian Fainelli
Email: [email protected]
Web: http://openwrt.org
IRC: [florian] on irc.freenode.net
-------------------------------
From 9c343fd4030dcd7a52616f365893177dded50346 Mon Sep 17 00:00:00 2001
From: Khem Raj <[email protected]>
Date: Wed, 13 Jan 2010 01:51:32 +0000
Subject: mips/nptl: Pass correct parameters to dl_find_hash when resolving TLS relocations.

Make use of macros from sys/asm.h in crt1.S
These two changes are needed for mips nptl to boot once again.

Signed-off-by: Khem Raj <[email protected]>
---
diff --git a/libc/sysdeps/linux/mips/crt1.S b/libc/sysdeps/linux/mips/crt1.S
index e851d52..6a80412 100644
--- a/libc/sysdeps/linux/mips/crt1.S
+++ b/libc/sysdeps/linux/mips/crt1.S
@@ -85,29 +85,10 @@
 
 __start:
 #ifdef __PIC__
-#if _MIPS_SIM == _MIPS_SIM_ABI32
-	.frame	sp, 24, sp
-        .set noreorder
-	move $0, $31		/* Save old ra.  */
-	bal 10f			/* Find addr of cpload.  */
-        nop
-10:
-	.cpload $31
-	move $31, $0
-	.set reorder
-	.cprestore 16
-#else
-	move $0, $31; /* Save old ra.  */
-	.set noreorder
-	bal 10f /* Find addr of .cpsetup.  */
-	nop
-10:
-	.set reorder
-	.cpsetup $31, $25, 10b
-	move $31, $0
-#endif
+	SETUP_GPX($0)
+	SETUP_GPX64($25,$0)
 #else
-	la $28, _gp             /* Setup GP correctly if we're non-PIC.  */
+	PTR_LA $28, _gp             /* Setup GP correctly if we're non-PIC.  */
 	move $31, $0
 #endif
 
@@ -118,18 +99,18 @@ __start:
 	/* Allocate space on the stack for seven arguments and
 	 * make sure the stack is aligned to double words (8 bytes) */
 
+	and $29, -2 * SZREG
+
 #if _MIPS_SIM == _MIPS_SIM_ABI32
-	and $29, -2 * 4
-	subu $29, 32
-	la $7, _init		/* init */
-	la $8, _fini
-	sw $8, 16($29)		/* fini */
-	sw $2, 20($29)		/* rtld_fini */
-	sw $29, 24($29)		/* stack_end */
-#else
-	and $29, -2 * PTRSIZE
+	PTR_SUBIU $29, 32
+#endif
 	PTR_LA $7, _init		/* init */
-	PTR_LA $8, _fini		/* fini */
+	PTR_LA $8, _fini
+#if _MIPS_SIM == _MIPS_SIM_ABI32
+	PTR_S $8, 16($29)		/* fini */
+	PTR_S $2, 20($29)		/* rtld_fini */
+	PTR_S $29, 24($29)		/* stack_end */
+#else
 	move $9, $2		/* rtld_fini */
 	move $10, $29		/* stack_end */
 #endif
@@ -148,4 +129,3 @@ __data_start:
 	.weak data_start
 	data_start = __data_start
 
-
--
cgit v0.8.2.1

Attachment: signature.asc
Description: This is a digitally signed message part.

_______________________________________________
uClibc mailing list
[email protected]
http://lists.busybox.net/mailman/listinfo/uclibc

Reply via email to