about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2004-10-05 12:09:44 +0000
committerJakub Jelinek <jakub@redhat.com>2004-10-05 12:09:44 +0000
commitddbf09971df057003d35943a9d7d9d3653a26763 (patch)
treefabcfc42ea341d284d15e89f1cc5533beac985ff
parent09c3bcb4adf312661293d6e41a52a572f6db8241 (diff)
downloadglibc-ddbf09971df057003d35943a9d7d9d3653a26763.tar.gz
glibc-ddbf09971df057003d35943a9d7d9d3653a26763.tar.xz
glibc-ddbf09971df057003d35943a9d7d9d3653a26763.zip
Fix atomic.h warnings on i386 in nscd.
Fix last grouplist patch.
-rw-r--r--grp/initgroups.c2
-rw-r--r--nscd/initgrcache.c4
-rw-r--r--sysdeps/i386/bits/atomic.h5
3 files changed, 8 insertions, 3 deletions
diff --git a/grp/initgroups.c b/grp/initgroups.c
index f86f5c63f4..5a3edecf09 100644
--- a/grp/initgroups.c
+++ b/grp/initgroups.c
@@ -108,7 +108,7 @@ internal_getgrouplist (const char *user, gid_t group, long int *size,
 	{
 	  long int inner;
 	  for (inner = 0; inner < prev_start; ++inner)
-	    if ((*groupsp)[inner] == (*groups)[cnt])
+	    if ((*groupsp)[inner] == (*groupsp)[cnt])
 	      break;
 
 	  if (inner < prev_start)
diff --git a/nscd/initgrcache.c b/nscd/initgrcache.c
index 9ba7b89bdf..762167ea19 100644
--- a/nscd/initgrcache.c
+++ b/nscd/initgrcache.c
@@ -140,13 +140,13 @@ addinitgroupsX (struct database_dyn *db, int fd, request_header *req,
 	{
 	  long int inner;
 	  for (inner = 0; inner < prev_start; ++inner)
-	    if ((*groupsp)[inner] == (*groups)[cnt])
+	    if (groups[inner] == groups[cnt])
 	      break;
 
 	  if (inner < prev_start)
 	    ++cnt;
 	  else
-	    (*groupsp)[cnt] = (*groupsp)[--start];
+	    groups[cnt] = groups[--start];
 	}
 
       if (status != NSS_STATUS_TRYAGAIN)
diff --git a/sysdeps/i386/bits/atomic.h b/sysdeps/i386/bits/atomic.h
index 27840f9fe3..aa3f901877 100644
--- a/sysdeps/i386/bits/atomic.h
+++ b/sysdeps/i386/bits/atomic.h
@@ -181,6 +181,11 @@ init_has_cmpxchg (void)							      \
 									      \
      *__gmemp == (oldval) ? (*__gmemp = __gnewval, 0) : 1; })
 
+/* XXX We do not really need 64-bit compare-and-exchange.  At least
+   not in the moment.  */
+# define __arch_compare_and_exchange_val_64_acq(mem, newval, oldval) \
+  ({ __typeof (*mem) ret = *(mem); abort (); ret = (newval); ret = (oldval); })
+
 #endif
 
 /* Note that we need no lock prefix.  */