# # Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher # --- linux-2.4.20/include/asm-arm/setup.h~linux-2.4.24-attribute-used 2001-10-25 16:53:55.000000000 -0400 +++ linux-2.4.20/include/asm-arm/setup.h 2005-01-07 03:34:41.753675352 -0500 @@ -229,7 +229,7 @@ int (*parse)(const struct tag *); }; -#define __tag __attribute__((unused, __section__(".taglist"))) +#define __tag __attribute_used__ __attribute__((__section__(".taglist"))) #define __tagtable(tag, fn) \ static struct tagtable __tagtable_##fn __tag = { tag, fn } --- linux-2.4.20/include/linux/compiler.h~linux-2.4.24-attribute-used 2001-09-18 17:12:45.000000000 -0400 +++ linux-2.4.20/include/linux/compiler.h 2005-01-07 03:34:41.754675200 -0500 @@ -13,4 +13,18 @@ #define likely(x) __builtin_expect((x),1) #define unlikely(x) __builtin_expect((x),0) +#if __GNUC__ > 3 +#define __attribute_used__ __attribute__((__used__)) +#elif __GNUC__ == 3 +#if __GNUC_MINOR__ >= 3 +# define __attribute_used__ __attribute__((__used__)) +#else +# define __attribute_used__ __attribute__((__unused__)) +#endif /* __GNUC_MINOR__ >= 3 */ +#elif __GNUC__ == 2 +#define __attribute_used__ __attribute__((__unused__)) +#else +#define __attribute_used__ /* not implemented */ +#endif /* __GNUC__ */ + #endif /* __LINUX_COMPILER_H */ --- linux-2.4.20/include/linux/init.h~linux-2.4.24-attribute-used 2001-12-21 12:42:03.000000000 -0500 +++ linux-2.4.20/include/linux/init.h 2005-01-07 03:35:29.816368712 -0500 @@ -2,6 +2,7 @@ #define _LINUX_INIT_H #include +#include /* These macros are used to mark some functions or * initialized data (doesn't apply to uninitialized data) @@ -51,7 +52,7 @@ extern initcall_t __initcall_start, __initcall_end; #define __initcall(fn) \ - static initcall_t __initcall_##fn __init_call = fn + static initcall_t __initcall_##fn __attribute_used__ __init_call = fn #define __exitcall(fn) \ static exitcall_t __exitcall_##fn __exit_call = fn @@ -67,7 +68,7 @@ #define __setup(str, fn) \ static char __setup_str_##fn[] __initdata = str; \ - static struct kernel_param __setup_##fn __attribute__((unused)) __initsetup = { __setup_str_##fn, fn } + static struct kernel_param __setup_##fn __attribute_used__ __initsetup = { __setup_str_##fn, fn } #endif /* __ASSEMBLY__ */ @@ -76,12 +77,12 @@ * or exit time. */ #define __init __attribute__ ((__section__ (".text.init"))) -#define __exit __attribute__ ((unused, __section__(".text.exit"))) +#define __exit __attribute_used__ __attribute__ ((__section__(".text.exit"))) #define __initdata __attribute__ ((__section__ (".data.init"))) -#define __exitdata __attribute__ ((unused, __section__ (".data.exit"))) -#define __initsetup __attribute__ ((unused,__section__ (".setup.init"))) -#define __init_call __attribute__ ((unused,__section__ (".initcall.init"))) -#define __exit_call __attribute__ ((unused,__section__ (".exitcall.exit"))) +#define __exitdata __attribute_used__ __attribute__ ((__section__ (".data.exit"))) +#define __initsetup __attribute_used__ __attribute__ ((__section__ (".setup.init"))) +#define __init_call __attribute_used__ __attribute__ ((__section__ (".initcall.init"))) +#define __exit_call __attribute_used__ __attribute__ ((__section__ (".exitcall.exit"))) /* For assembly routines */ #define __INIT .section ".text.init","ax" --- linux-2.4.20/include/linux/module.h~linux-2.4.24-attribute-used 2002-08-02 20:39:45.000000000 -0400 +++ linux-2.4.20/include/linux/module.h 2005-01-07 03:34:41.755675048 -0500 @@ -8,6 +8,7 @@ #define _LINUX_MODULE_H #include +#include #include #include @@ -254,9 +255,9 @@ */ #define MODULE_GENERIC_TABLE(gtype,name) \ static const unsigned long __module_##gtype##_size \ - __attribute__ ((unused)) = sizeof(struct gtype##_id); \ + __attribute_used__ = sizeof(struct gtype##_id); \ static const struct gtype##_id * __module_##gtype##_table \ - __attribute__ ((unused)) = name + __attribute_used__ = name /* * The following license idents are currently accepted as indicating free @@ -284,7 +285,7 @@ */ #define MODULE_LICENSE(license) \ -static const char __module_license[] __attribute__((section(".modinfo"))) = \ +static const char __module_license[] __attribute_used__ __attribute__((section(".modinfo"))) = \ "license=" license /* Define the module variable, and usage macros. */ @@ -296,10 +297,10 @@ #define MOD_IN_USE __MOD_IN_USE(THIS_MODULE) #include -static const char __module_kernel_version[] __attribute__((section(".modinfo"))) = +static const char __module_kernel_version[] __attribute_used__ __attribute__((section(".modinfo"))) = "kernel_version=" UTS_RELEASE; #ifdef MODVERSIONS -static const char __module_using_checksums[] __attribute__((section(".modinfo"))) = +static const char __module_using_checksums[] __attribute_used__ __attribute__((section(".modinfo"))) = "using_checksums=1"; #endif @@ -319,7 +320,7 @@ */ #define MODULE_GENERIC_TABLE(gtype,name) \ static const struct gtype##_id * __module_##gtype##_table \ - __attribute__ ((unused, __section__(".data.exit"))) = name + __attribute_used__ __attribute__ ((__section__(".data.exit"))) = name #ifndef __GENKSYMS__