]> err.no Git - linux-2.6/commitdiff
[PATCH] uml: move va_copy conditional def
authorPaolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Sun, 1 May 2005 15:58:54 +0000 (08:58 -0700)
committerLinus Torvalds <torvalds@ppc970.osdl.org>
Sun, 1 May 2005 15:58:54 +0000 (08:58 -0700)
GCC 2.95 uses __va_copy instead of va_copy.  Handle it inside compiler.h
instead of in a casual file, and avoid the risk that this breaks with a newer
compiler (which it could do).

Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
arch/um/kernel/skas/uaccess.c
include/linux/compiler-gcc2.h

index 7575ec489b6302a8de2d6ce0e87d902fa57c8370..f7da9d027672d1de660dca3c22695db536ca7524 100644 (file)
@@ -3,6 +3,7 @@
  * Licensed under the GPL
  */
 
+#include "linux/compiler.h"
 #include "linux/stddef.h"
 #include "linux/kernel.h"
 #include "linux/string.h"
@@ -61,8 +62,7 @@ static void do_buffer_op(void *jmpbuf, void *arg_ptr)
        void *arg;
        int *res;
 
-       /* Some old gccs recognize __va_copy, but not va_copy */
-       __va_copy(args, *(va_list *)arg_ptr);
+       va_copy(args, *(va_list *)arg_ptr);
        addr = va_arg(args, unsigned long);
        len = va_arg(args, int);
        is_write = va_arg(args, int);
index 5a359153ffd970b8d781035038e7ae6e7a0d250e..ebed17660c5fa6f09cdbe4f331736abdd58a1a60 100644 (file)
@@ -22,3 +22,8 @@
 # define __attribute_pure__    __attribute__((pure))
 # define __attribute_const__   __attribute__((__const__))
 #endif
+
+/* GCC 2.95.x/2.96 recognize __va_copy, but not va_copy. Actually later GCC's
+ * define both va_copy and __va_copy, but the latter may go away, so limit this
+ * to this header */
+#define va_copy                        __va_copy