[PATCH] Abandon gcc-2.95.x
There's one scsi driver which doesn't compile due to weird __VA_ARGS__ tricks and the rather useful scsi/sd.c is currently getting an ICE. None of the new SAS code compiles, due to extensive use of anonymous unions. The V4L guys are very good at exploiting the gcc-2.95.x macro expansion bug (_why_ does each driver need to implement its own debug macros?) and various people keep on sneaking in anonymous unions, which are rather nice. Plus anonymous unions are rather useful. Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
committed by
Linus Torvalds
parent
fe7d37d1fb
commit
fd285bb54d
@@ -1,29 +0,0 @@
|
||||
/* 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
|
||||
@@ -42,8 +42,6 @@ extern void __chk_io_ptr(void __iomem *);
|
||||
# include <linux/compiler-gcc4.h>
|
||||
#elif __GNUC__ == 3
|
||||
# include <linux/compiler-gcc3.h>
|
||||
#elif __GNUC__ == 2
|
||||
# include <linux/compiler-gcc2.h>
|
||||
#else
|
||||
# error Sorry, your compiler is too old/not recognized.
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user