This is the mail archive of the libc-alpha@sources.redhat.com mailing list for the glibc project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
libc-alpha,
Adding pthreads support to hppa.
Modified patch: removed files related to IPC on hppa, and updated
for PowerPC 32/64 pt-machine.h split to match latest 2.2.94 changes.
Cheers,
c.
---
2002-09-24 Carlos O'Donell <carlos@baldric.uwo.ca>
* linuxthreads/sysdeps/powerpc/powerpc64/pt-machine.h:
(try_lock): New.
(lock_held): New.
2002-09-10 Carlos O'Donell <carlos@baldric.uwo.ca>
* linuxthreads/descr.h:
In "struct pthread_atomic" change "int p_spinlock"
to "__atomic_lock_t p_spinlock"
2001-11-14 Matthew Wilcox <willy@debian.org>
* linuxthreads/oldsemaphore.c:
(__old_sem_init): Change "__LT_SPINLOCK_INIT" to
"__ATOMIC_LOCK_INIT".
* linuxthreads/pt-machine.c: Define extern for "try_lock"
function call.
* linuxthreads/spinlock.c:
Change "int * spinlock" to "__atomic_lock_t * spinlock",
"__LT_SPINLOCK_INIT" to "__ATOMIC_LOCK_INIT", and
"0" to "__ATOMIC_LOCK_INIT", where required.
In "struct wait_node" change "int abandoned" to
"__atomic_lock_t abandoned"
(__pthread_release): Function call argument changed from
"int * spinlock" to "__atomic_lock_t * spinlock", and
"__LT_SPINLOCK_INIT" changed to "__ATOMIC_LOCK_INIT".
(__pthread_alt_timedlock): "0" to "__ATOMIC_LOCK_INIT" and
change calls from "testandset" to "try_lock";
(__pthread_alt_unlock): "0" to "__ATOMIC_LOCK_INIT", and
"p_node->abandoned" to "lock_held(&p_node->abandoned)", and
changed calls from "testandset" to "try_lock" where required.
(__pthread_compare_and_swap): Function call argument changed from
"int * spinlock" to "__atomic_lock_t * spinlock".
(__pthread_acquire): Function call argument changed from
"int * spinlock" to "__atomic_lock_t * spinlock", and
changed calls from "testandset" to "try_lock" where required.
* linuxthreads/spinlock.h:
Remove testandset macro.
(__pthread_compare_and_swap): Extern changed to match function.
(compare_and_swap): Likewise.
(compare_and_swap_with_release_semantics): Function arg. type change.
(compare_and_swap): Function arg. type change.
(__pthread_compare_and_swap): Extern changed to match function.
(__pthread_init_lock): "__LT_SPINLOCK_INIT" changed to
"__ATOMIC_LOCK_INIT".
(__pthread_alt_trylock): "__LT_SPINLOCK_INIT" to
"__ATOMIC_LOCK_INIT" and change calls from "testandset" to
"try_lock".
* linuxthreads/sysdeps/alpha/pt-machine.h:
(testandset): Deleted (renamed to try_lock).
(try_lock): New.
(lock_held): New.
* linuxthreads/sysdeps/arm/pt-machine.h: Likewise.
* linuxthreads/sysdeps/cris/pt-machine.h: Likewise.
* linuxthreads/sysdeps/i386/i686/pt-machine.h: Likewise.
* linuxthreads/sysdeps/i386/pt-machine.h: Likewise.
* linuxthreads/sysdeps/ia64/pt-machine.h: Likewise.
* linuxthreads/sysdeps/m68k/pt-machine.h: Likewise.
* linuxthreads/sysdeps/mips/pt-machine.h: Likewise.
* linuxthreads/sysdeps/powerpc/powerpc32/pt-machine.h: Likewise.
* linuxthreads/sysdeps/s390/s390-32/pt-machine.h: Likewise.
* linuxthreads/sysdeps/s390/s390-64/pt-machine.h: Likewise.
* linuxthreads/sysdeps/sh/pt-machine.h: Likewise.
* linuxthreads/sysdeps/sparc/sparc32/pt-machine.h: Likewise.
* linuxthreads/sysdeps/sparc/sparc64/pt-machine.h: Likewise.
* linuxthreads/sysdeps/pthread/bits/pthreadtypes.h:
typedef __atomic_lock_t to int for all other arches
leaving them the same as before.
(_pthread_fastlock): Change "int" to "__atomic_lock_t".
* linuxthreads/sysdeps/pthread/bits/libc-lock.h:
Include the use of PTHREAD_MUTEX_INITIALIZER for
the case of __LOCK_INITIALISER_NOT_ZERO.
* linuxthreads/sysdeps/pthread/bits/initspin.h:
Define __ATOMIC_LOCK_INIT as 0 for all arches.
Include changes to associated macros.
* linuxthreads/sysdeps/hppa/pspinlock.c :
(__ldcw): New.
(__pthread_spin_lock): Cleanup.
(__pthread_spin_trylock): Cleanup.
* linuxthreads/sysdeps/hppa/pt-machine.h:
(__get_cr27): New.
(__set_cr27): New.
(testandset): Deleted (renamed to try_lock).
(try_lock): New.
(lock_held): New.
* linuxthreads/sysdeps/unix/sysv/linux/hppa/bits/initspin.h:
Remove "__LT_SPINLOCK_INIT" and define "__ATOMIC_LOCK_INIT"
to "((__atomic_lock_t) { 1 })" while changing the associated
macros that relied on this.
* linuxthreads/sysdeps/unix/sysv/linux/hppa/bits/pthreadtypes.h:
New file.
* sysdeps/hppa/dl-fptr.c:
Change the use of "1" to "__ATOMIC_LOCK_INIT".
(__hppa_make_fptr): Call 'try_lock' instead of 'testandset',
and change the use of "1" to "__ATOMIC_LOCK_INIT".
(_dl_unmap): Likewise.
(_dl_lookup_address): Likewise.
* sysdeps/ia64/dl-fptr.c:
In "static struct local" change "int lock" to
"__atomic_lock_t lock"
(lock): Change calls from "testandset" to "try_lock",
and change "0" to "__ATOMIC_LOCK_INIT" where needed.
Attachment:
00-glibc23-hppa-pthreads
Description: Text document
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |