2003-05-29  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/ia64/lowlevellock.h (lll_futex_requeue):
	Find break parameter in correct asm argument.

2003-05-30  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
	(pthread_cond_t): Add __mutex.
	* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (FUTEX_REQUEUE,
	lll_futex_requeue, lll_mutex_unlock_force): Define.
This commit is contained in:
Ulrich Drepper 2003-05-30 03:04:29 +00:00
parent ea2630c632
commit e7c5ac68ed
3 changed files with 41 additions and 8 deletions

View file

@ -1,3 +1,15 @@
2003-05-29 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/ia64/lowlevellock.h (lll_futex_requeue):
Find break parameter in correct asm argument.
2003-05-30 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
(pthread_cond_t): Add __mutex.
* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (FUTEX_REQUEUE,
lll_futex_requeue, lll_mutex_unlock_force): Define.
2003-05-28 Kaz Kojima <kkojima@rr.iij4u.or.jp>
* sysdeps/sh/tcb-offsets.sym: Define MUTEX_FUTEX.

View file

@ -35,7 +35,7 @@
#define LLL_MUTEX_LOCK_INITIALIZER (0)
#define lll_futex_clobbers \
"out4", "out5", "out6", "out7", \
"out5", "out6", "out7", \
/* Non-stacked integer registers, minus r8, r10, r15. */ \
"r2", "r3", "r9", "r11", "r12", "r13", "r14", "r16", "r17", "r18", \
"r19", "r20", "r21", "r22", "r23", "r24", "r25", "r26", "r27", \
@ -100,14 +100,14 @@
register long int __r10 asm ("r10"); \
register long int __r15 asm ("r15") = SYS_futex; \
\
__asm __volatile ("break %7;;" \
__asm __volatile ("break %8;;" \
: "=r" (__r8), "=r" (__r10), "=r" (__r15), \
"=r" (__o0), "=r" (__o1), "=r" (__o2), "r" (__o3), \
"=r" (__o0), "=r" (__o1), "=r" (__o2), "=r" (__o3), \
"=r" (__o4) \
: "i" (0x100000), "2" (__r15), "3" (__o0), "4" (__o1), \
"5" (__o2), "6" (__o3), "7" (__o4) \
: lll_futex_clobbers); \
__r8; \
__r10 == -1 ? -__r8 : __r8; \
})

View file

@ -1,5 +1,5 @@
/* Startup code for programs linked with GNU libc.
Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
Copyright (C) 1998,1999,2000,2001,2002,2003 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -21,29 +21,50 @@
#include "bp-sym.h"
/* These are the various addresses we require. */
#ifdef PIC
.section ".data"
#else
.section ".rodata"
#endif
.align 2
L(start_addresses):
.long _SDA_BASE_
.long JUMPTARGET(BP_SYM (main))
.long JUMPTARGET(__libc_csu_init)
.long JUMPTARGET(__libc_csu_fini)
.long BP_SYM (main)
.long __libc_csu_init
.long __libc_csu_fini
ASM_SIZE_DIRECTIVE(L(start_addresses))
.section ".text"
#ifdef PIC
L(start_addressesp):
.long L(start_addresses)-L(branch)
#endif
ENTRY(_start)
/* Save the stack pointer, in case we're statically linked under Linux. */
mr r9,r1
/* Set up an initial stack frame, and clear the LR. */
clrrwi r1,r1,4
#ifdef PIC
bcl 20,31,L(branch)
L(branch):
li r0,0
mflr r13
#else
li r0,0
#endif
stwu r1,-16(r1)
mtlr r0
stw r0,0(r1)
/* Set r13 to point at the 'small data area', and put the address of
start_addresses in r8... */
#ifdef PIC
lwz r8,L(start_addressesp)-L(branch)(r13)
add r8,r13,r8
lwz r13,0(r8)
#else
lis r8,L(start_addresses)@ha
lwzu r13,L(start_addresses)@l(r8)
#endif
/* and continue in libc-start, in glibc. */
b JUMPTARGET(BP_SYM (__libc_start_main))
END(_start)