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]

[PATCH] glibc 2.2.94 - hppa - pthreads support


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]