From da64e6bb4ea8e1c7ef7aadd113ed701089fb1512 Mon Sep 17 00:00:00 2001
From: Jeff Johnston <jjohnstn@redhat.com>
Date: Mon, 8 Sep 2008 22:25:14 +0000
Subject: [PATCH] 008-09-08  Jeff Johnston  <jjohnstn@redhat.com>

	* libc/sys/linux/dl/atomicity.h (exchange_and_add): Fix asm statement to use "m" instead of "0".
	(atomic_add): Ditto.
	* libc/sys/linux/linuxthreads/spinlock.c (__pthread_release): Ditto.
	* libc/sys/linux/net/getaddrinfo.c: Add limit.h include.
	* libc/sys/linux/stdlib/glob.c: Ditto.
---
 newlib/ChangeLog                              | 16 ++++++++++++++++
 newlib/libc/sys/linux/dl/atomicity.h          |  4 ++--
 newlib/libc/sys/linux/linuxthreads/spinlock.c |  4 ++--
 newlib/libc/sys/linux/net/getaddrinfo.c       |  1 +
 newlib/libc/sys/linux/stdlib/glob.c           |  1 +
 5 files changed, 22 insertions(+), 4 deletions(-)

diff --git a/newlib/ChangeLog b/newlib/ChangeLog
index edf99d4a1..e53c86ef8 100644
--- a/newlib/ChangeLog
+++ b/newlib/ChangeLog
@@ -1,3 +1,19 @@
+2008-09-08  Jeff Johnston  <jjohnstn@redhat.com>
+
+	* libc/sys/linux/dl/atomicity.h (exchange_and_add): Fix asm statement to use "m" instead of "0".
+	(atomic_add): Ditto.
+	* libc/sys/linux/linuxthreads/spinlock.c (__pthread_release): Ditto. 
+	* libc/sys/linux/net/getaddrinfo.c: Add limit.h include.
+	* libc/sys/linux/stdlib/glob.c: Ditto.
+
+2008-09-08  jjohnstn  <jjohnstn@vermillion>
+
+	* libc/sys/linux/dl/atomicity.h (exchange_and_add): 
+	(atomic_add): 
+	* libc/sys/linux/linuxthreads/spinlock.c (__pthread_release): 
+	* libc/sys/linux/net/getaddrinfo.c: 
+	* libc/sys/linux/stdlib/glob.c: 
+
 2008-09-04  Ken Werner  <ken.werner@de.ibm.com>
 
 	* libm/machine/spu/headers/acosd2.h: Duplicated preamble text removed.
diff --git a/newlib/libc/sys/linux/dl/atomicity.h b/newlib/libc/sys/linux/dl/atomicity.h
index 8b52ab407..3dbd00689 100644
--- a/newlib/libc/sys/linux/dl/atomicity.h
+++ b/newlib/libc/sys/linux/dl/atomicity.h
@@ -28,7 +28,7 @@ exchange_and_add (volatile uint32_t *mem, uint32_t val)
 {
   register uint32_t result;
   __asm__ __volatile__ ("lock; xaddl %0,%1"
-			: "=r" (result), "=m" (*mem) : "0" (val), "1" (*mem));
+			: "=r" (result), "=m" (*mem) : "m" (val), "1" (*mem));
   return result;
 }
 
@@ -37,7 +37,7 @@ __attribute__ ((unused))
 atomic_add (volatile uint32_t *mem, int val)
 {
   __asm__ __volatile__ ("lock; addl %1,%0"
-			: "=m" (*mem) : "ir" (val), "0" (*mem));
+			: "=m" (*mem) : "ir" (val), "m" (*mem));
 }
 
 static inline char
diff --git a/newlib/libc/sys/linux/linuxthreads/spinlock.c b/newlib/libc/sys/linux/linuxthreads/spinlock.c
index 3e1682599..f21426ffe 100644
--- a/newlib/libc/sys/linux/linuxthreads/spinlock.c
+++ b/newlib/libc/sys/linux/linuxthreads/spinlock.c
@@ -31,7 +31,7 @@ static inline void __pthread_release(int * spinlock)
 {
   WRITE_MEMORY_BARRIER();
   *spinlock = __LT_SPINLOCK_INIT;
-  __asm __volatile ("" : "=m" (*spinlock) : "0" (*spinlock));
+  __asm __volatile ("" : "=m" (*spinlock) : "m" (*spinlock));
 }
 #endif
 
@@ -110,7 +110,7 @@ again:
 #ifdef BUSY_WAIT_NOP
       BUSY_WAIT_NOP;
 #endif
-      __asm __volatile ("" : "=m" (lock->__status) : "0" (lock->__status));
+      __asm __volatile ("" : "=m" (lock->__status) : "m" (lock->__status));
     }
 
     lock->__spinlock += (spin_count - lock->__spinlock) / 8;
diff --git a/newlib/libc/sys/linux/net/getaddrinfo.c b/newlib/libc/sys/linux/net/getaddrinfo.c
index 742d46c8f..7019260b4 100644
--- a/newlib/libc/sys/linux/net/getaddrinfo.c
+++ b/newlib/libc/sys/linux/net/getaddrinfo.c
@@ -57,6 +57,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 #include <not-cancel.h>
 #include <nscd/nscd-client.h>
 #include <nscd/nscd_proto.h>
+#include <limits.h>
 #include "local.h"
 
 #ifdef HAVE_LIBIDN
diff --git a/newlib/libc/sys/linux/stdlib/glob.c b/newlib/libc/sys/linux/stdlib/glob.c
index 5335c1b54..d99f296cf 100644
--- a/newlib/libc/sys/linux/stdlib/glob.c
+++ b/newlib/libc/sys/linux/stdlib/glob.c
@@ -77,6 +77,7 @@ static char sccsid[] = "@(#)glob.c	8.3 (Berkeley) 10/13/93";
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
+#include <linux/limits.h>
 
 #include "collate.h"