Tested on hppa1.1.-hp-hpux10.20. Commetted to trunk and 4.7. Dave -- J. David Anglin dave.ang...@nrc-cnrc.gc.ca National Research Council of Canada (613) 990-0752 (FAX: 952-6602)
2012-12-01 John David Anglin <dave.ang...@nrc-cnrc.gc.ca> PR ada/52110 * s-osinte-hpux-dce.ads: Declare pthread_rwlockattr_t and pthread_rwlock_t subtypes. Delete duplicate declaration of clockid_t. * s-taspri-hpux-dce.ads: Change "pragma Atomic (Thread)" to comment. Index: s-osinte-hpux-dce.ads =================================================================== --- s-osinte-hpux-dce.ads (revision 193634) +++ s-osinte-hpux-dce.ads (working copy) @@ -244,6 +244,14 @@ type pthread_condattr_t is limited private; type pthread_key_t is private; + -- Read/Write lock not supported on HPUX. To add support both types + -- pthread_rwlock_t and pthread_rwlockattr_t must properly be defined + -- with the associated routines pthread_rwlock_[init/destroy] and + -- pthread_rwlock_[rdlock/wrlock/unlock]. + + subtype pthread_rwlock_t is pthread_mutex_t; + subtype pthread_rwlockattr_t is pthread_mutexattr_t; + ----------- -- Stack -- ----------- @@ -444,7 +452,6 @@ end record; pragma Convention (C, timespec); - type clockid_t is new int; CLOCK_REALTIME : constant clockid_t := 1; type cma_t_address is new System.Address; Index: s-taspri-hpux-dce.ads =================================================================== --- s-taspri-hpux-dce.ads (revision 193634) +++ s-taspri-hpux-dce.ads (working copy) @@ -102,7 +102,9 @@ type Private_Data is record Thread : aliased System.OS_Interface.pthread_t; - pragma Atomic (Thread); + -- pragma Atomic (Thread); + -- Unfortunately, the above fails because Thread is 64 bits. + -- Thread field may be updated by two different threads of control. -- (See, Enter_Task and Create_Task in s-taprop.adb). They put the -- same value (thr_self value). We do not want to use lock on those