2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-12-22 12:14:01 +08:00
linux-next/include/linux/compiler-gcc2.h
Paolo 'Blaisorblade' Giarrusso e9c527163d [PATCH] uml: move va_copy conditional def
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>
2005-05-01 08:58:54 -07:00

30 lines
997 B
C

/* Never include this file directly. Include <linux/compiler.h> instead. */
/* These definitions are for GCC v2.x. */
/* Somewhere in the middle of the GCC 2.96 development cycle, we implemented
a mechanism by which the user can annotate likely branch directions and
expect the blocks to be reordered appropriately. Define __builtin_expect
to nothing for earlier compilers. */
#include <linux/compiler-gcc.h>
#if __GNUC_MINOR__ < 96
# define __builtin_expect(x, expected_value) (x)
#endif
#define __attribute_used__ __attribute__((__unused__))
/*
* The attribute `pure' is not implemented in GCC versions earlier
* than 2.96.
*/
#if __GNUC_MINOR__ >= 96
# 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