Added support for POSIX reader-writer locks. Modified exp-drd/tests/filter-stderr such that i386 and AMD64 now generate the same output. Removed *.stderr.exp2 files. Added section that explains differences between LinuxThreads and NPTL to exp-drd/docs/README.txt. Made error message about LinuxThreads more clear. Made error messages more uniform.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7531 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/exp-drd/drd_clientobj.h b/exp-drd/drd_clientobj.h
index 831d543..ffd13ca 100644
--- a/exp-drd/drd_clientobj.h
+++ b/exp-drd/drd_clientobj.h
@@ -45,6 +45,7 @@
   ClientCondvar   = 2,
   ClientSemaphore = 3,
   ClientBarrier   = 4,
+  ClientRwlock    = 5,
 } ObjType;
 
 struct any
@@ -96,12 +97,21 @@
   Addr    a2;
   ObjType type;
   void    (*cleanup)(union drd_clientobj*);
-  Word     count;               // Participant count in a barrier wait.
-  Word     pre_iteration;       // pthread_barrier_wait() call count modulo two.
-  Word     post_iteration;      // pthread_barrier_wait() call count modulo two.
-  Word     pre_waiters_left;    // number of waiters left for a complete barrier.
-  Word     post_waiters_left;   // number of waiters left for a complete barrier.
-  OSet*    oset;                // Thread-specific barrier information.
+  Word     count;             // Participant count in a barrier wait.
+  Word     pre_iteration;     // pthread_barrier_wait() call count modulo two.
+  Word     post_iteration;    // pthread_barrier_wait() call count modulo two.
+  Word     pre_waiters_left;  // number of waiters left for a complete barrier.
+  Word     post_waiters_left; // number of waiters left for a complete barrier.
+  OSet*    oset;              // Thread-specific barrier information.
+};
+
+struct rwlock_info
+{
+  Addr    a1;
+  Addr    a2;
+  ObjType type;
+  void    (*cleanup)(union drd_clientobj*);
+  OSet*   thread_info;
 };
 
 typedef union drd_clientobj
@@ -111,6 +121,7 @@
   struct cond_info      cond;
   struct semaphore_info semaphore;
   struct barrier_info   barrier;
+  struct rwlock_info    rwlock;
 } DrdClientobj;