re PR ada/52110 (s-osinte.ads:447:09: "clockid_t" conflicts with declaration at line...
authorJohn David Anglin <dave.anglin@nrc-cnrc.gc.ca>
Sat, 1 Dec 2012 19:43:04 +0000 (19:43 +0000)
committerJohn David Anglin <danglin@gcc.gnu.org>
Sat, 1 Dec 2012 19:43:04 +0000 (19:43 +0000)
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.

From-SVN: r194024

gcc/ada/ChangeLog
gcc/ada/s-osinte-hpux-dce.ads
gcc/ada/s-taspri-hpux-dce.ads

index 6aec494..57077d0 100644 (file)
@@ -1,3 +1,10 @@
+2012-12-01  John David Anglin  <dave.anglin@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.
+
 2012-11-28  Eric Botcazou  <ebotcazou@adacore.com>
 
        * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Use
index 3b156a2..e6ee0ed 100644 (file)
@@ -244,6 +244,14 @@ package System.OS_Interface is
    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 @@ private
    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 9d51d5c..6cde347 100644 (file)
@@ -102,7 +102,9 @@ private
 
    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