diff options
Diffstat (limited to 'target/linux/generic/patches-3.6/062-mips_decompressor_build_fix.patch')
-rw-r--r-- | target/linux/generic/patches-3.6/062-mips_decompressor_build_fix.patch | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/target/linux/generic/patches-3.6/062-mips_decompressor_build_fix.patch b/target/linux/generic/patches-3.6/062-mips_decompressor_build_fix.patch new file mode 100644 index 0000000..0821718 --- /dev/null +++ b/target/linux/generic/patches-3.6/062-mips_decompressor_build_fix.patch @@ -0,0 +1,71 @@ +From 0db3db45f5bd6df4bdc03bbd5dec672e16164c4e Mon Sep 17 00:00:00 2001 +From: Florian Fainelli <florian@openwrt.org> +Date: Mon, 12 Nov 2012 12:31:55 +0100 +Subject: [PATCH] MIPS: decompressor: fix build failure on memcpy() in + decompress.c + +The decompress.c file includes linux/kernel.h which causes the following +inclusion chain to be pulled: +linux/kernel.h -> + linux/dynamic_debug.h -> + linux/string.h -> + asm/string.h + +We end up having a the GCC builtin + architecture specific memcpy() expanding +into this: + +void *({ size_t __len = (size_t n); void *__ret; if +(__builtin_constant_p(size_t n) && __len >= 64) __ret = memcpy((void *dest), +(const void *src), __len); else __ret = __builtin_memcpy((void *dest), (const +void *src), __len); __ret; }) +{ + [memcpy implementation in decompress.c starts here] + int i; + const char *s = src; + char *d = dest; + + for (i = 0; i < n; i++) + d[i] = s[i]; + return dest; +} + +raising the following compilation error: +arch/mips/boot/compressed/decompress.c:46:8: error: expected identifier or '(' +before '{' token + +There are at least three possibilities to fix this issue: + +1) define _LINUX_STRING_H_ at the beginning of decompress.c to prevent + further linux/string.h definitions and declarations from being used, and add + an explicit strstr() declaration for linux/dynamic_debug.h + +2) remove the inclusion of linux/kernel.h because we actually use no definition + or declaration from this header file + +3) undefine memcpy or re-define memcpy to memcpy thus resulting in picking up + the local memcpy() implementation to this compilation unit + +This patch uses the second option which is the less intrusive one. + +Signed-off-by: Florian Fainelli <florian@openwrt.org> +--- + arch/mips/boot/compressed/decompress.c | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/arch/mips/boot/compressed/decompress.c b/arch/mips/boot/compressed/decompress.c +index 5cad0fa..d6c5586 100644 +--- a/arch/mips/boot/compressed/decompress.c ++++ b/arch/mips/boot/compressed/decompress.c +@@ -10,9 +10,7 @@ + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. + */ +- + #include <linux/types.h> +-#include <linux/kernel.h> + + #include <asm/addrspace.h> + +-- +1.7.10.4 + |