aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/generic/patches-3.10/062-mips_decompressor_build_fix.patch
diff options
context:
space:
mode:
authorJo-Philipp Wich <jow@openwrt.org>2015-01-25 15:55:03 +0000
committerJo-Philipp Wich <jow@openwrt.org>2015-01-25 15:55:03 +0000
commitde356f830020f7c077428e1c70196612b6361560 (patch)
tree8224ca0930ad86a335cd4d696ac938c2b4dfab0a /target/linux/generic/patches-3.10/062-mips_decompressor_build_fix.patch
parent644087a08b32ea544b3f5bf38b337f31924f4c69 (diff)
downloadmaster-187ad058-de356f830020f7c077428e1c70196612b6361560.tar.gz
master-187ad058-de356f830020f7c077428e1c70196612b6361560.tar.bz2
master-187ad058-de356f830020f7c077428e1c70196612b6361560.zip
xburst: fix kernel build
Changeset r43049 removed the "062-mips_decompressor_build_fix.patch" which is still required to properly build the xburst kernel. Fix the syntax error in the preprocessed code by explicitely undefining the "memcpy" and "memset" macros prior to declaring the replacements functions. Signed-off-by: Jo-Philipp Wich <jow@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@44133 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/generic/patches-3.10/062-mips_decompressor_build_fix.patch')
-rw-r--r--target/linux/generic/patches-3.10/062-mips_decompressor_build_fix.patch64
1 files changed, 64 insertions, 0 deletions
diff --git a/target/linux/generic/patches-3.10/062-mips_decompressor_build_fix.patch b/target/linux/generic/patches-3.10/062-mips_decompressor_build_fix.patch
new file mode 100644
index 0000000000..4ddcbb4e39
--- /dev/null
+++ b/target/linux/generic/patches-3.10/062-mips_decompressor_build_fix.patch
@@ -0,0 +1,64 @@
+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(-)
+
+--- a/arch/mips/boot/compressed/decompress.c
++++ b/arch/mips/boot/compressed/decompress.c
+@@ -12,7 +12,6 @@
+ */
+
+ #include <linux/types.h>
+-#include <linux/kernel.h>
+ #include <linux/string.h>
+
+ #include <asm/addrspace.h>