| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- From 0db3db45f5bd6df4bdc03bbd5dec672e16164c4e Mon Sep 17 00:00:00 2001
- From: Florian Fainelli <[email protected]>
- 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 <[email protected]>
- ---
- 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
- @@ -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>
-
|