瀏覽代碼

Atsushi Nemoto writes:

In a recent post to linux-mips ML (and libc-alpha ML), a problem with
inline syscalls was reported.

http://www.linux-mips.org/archives/linux-mips/2004-10/msg00142.html

It seems uClibc should be fixed also for newer gcc.  Here is a patch.
Eric Andersen 19 年之前
父節點
當前提交
b4f4929452
共有 1 個文件被更改,包括 8 次插入8 次删除
  1. 8 8
      libc/sysdeps/linux/mips/bits/syscalls.h

+ 8 - 8
libc/sysdeps/linux/mips/bits/syscalls.h

@@ -30,7 +30,7 @@ __asm__ volatile ("li\t$2,%2\n\t" \
                   : "=r" (__res), "=r" (__err) \
                   : "i" (__NR_##name) \
                   : "$2","$7","$8","$9","$10","$11","$12","$13","$14","$15", \
-		    "$24"); \
+		    "$24","memory"); \
 if (__err == 0) \
 	return (type) __res; \
 __set_errno(__res); \
@@ -52,7 +52,7 @@ __asm__ volatile ("move\t$4,%3\n\t" \
 		  "move\t%1, $7" \
 		  : "=r" (__res), "=r" (__err) \
 		  : "i" (__NR_##name),"r" ((long)(a)) \
-		  : "$2","$4","$7","$8","$9","$10","$11","$12","$13","$14","$15","$24"); \
+		  : "$2","$4","$7","$8","$9","$10","$11","$12","$13","$14","$15","$24","memory"); \
 if (__err == 0) \
 	return (type) __res; \
 __set_errno(__res); \
@@ -73,7 +73,7 @@ __asm__ volatile ("move\t$4,%3\n\t" \
                   : "i" (__NR_##name),"r" ((long)(a)), \
                                       "r" ((long)(b)) \
                   : "$2","$4","$5","$7","$8","$9","$10","$11","$12","$13", \
-		    "$14","$15", "$24"); \
+		    "$14","$15", "$24","memory"); \
 if (__err == 0) \
 	return (type) __res; \
 __set_errno(__res); \
@@ -96,7 +96,7 @@ __asm__ volatile ("move\t$4,%3\n\t" \
                                       "r" ((long)(b)), \
                                       "r" ((long)(c)) \
                   : "$2","$4","$5","$6","$7","$8","$9","$10","$11","$12", \
-		    "$13","$14","$15","$24"); \
+		    "$13","$14","$15","$24","memory"); \
 if (__err == 0) \
 	return (type) __res; \
 __set_errno(__res); \
@@ -121,7 +121,7 @@ __asm__ volatile ("move\t$4,%3\n\t" \
                                       "r" ((long)(c)), \
                                       "r" ((long)(d)) \
                   : "$2","$4","$5","$6","$7","$8","$9","$10","$11","$12", \
-		    "$13","$14","$15","$24"); \
+		    "$13","$14","$15","$24","memory"); \
 if (__err == 0) \
 	return (type) __res; \
 __set_errno(__res); \
@@ -151,7 +151,7 @@ __asm__ volatile ("move\t$4,%3\n\t" \
                                       "r" ((long)(d)), \
                                       "m" ((long)(e)) \
                   : "$2","$4","$5","$6","$7","$8","$9","$10","$11","$12", \
-                    "$13","$14","$15","$24"); \
+                    "$13","$14","$15","$24","memory"); \
 if (__err == 0) \
 	return (type) __res; \
 __set_errno(__res); \
@@ -184,7 +184,7 @@ __asm__ volatile ("move\t$4,%3\n\t" \
                                       "m" ((long)(e)), \
                                       "m" ((long)(f)) \
                   : "$2","$3","$4","$5","$6","$7","$8","$9","$10","$11", \
-                    "$12","$13","$14","$15","$24"); \
+                    "$12","$13","$14","$15","$24","memory"); \
 if (__err == 0) \
 	return (type) __res; \
 __set_errno(__res); \
@@ -220,7 +220,7 @@ __asm__ volatile ("move\t$4,%3\n\t" \
                                       "m" ((long)(f)), \
                                       "m" ((long)(g)) \
                   : "$2","$3","$4","$5","$6","$7","$8","$9","$10","$11", \
-                    "$12","$13","$14","$15","$24"); \
+                    "$12","$13","$14","$15","$24","memory"); \
 if (__err == 0) \
 	return (type) __res; \
 __set_errno(__res); \