Linux MIPS Architecture development
 help / color / mirror / Atom feed
* [PATCH] MIPS: decompressor: fix build failure on memcpy() in decompress.c
@ 2012-11-12 11:46 Florian Fainelli
  2012-11-13 11:25 ` Florian Fainelli
  2012-11-16 12:30 ` [PATCH v2] MIPS: decompressor: remove unused linux/kernel.h header Florian Fainelli
  0 siblings, 2 replies; 3+ messages in thread
From: Florian Fainelli @ 2012-11-12 11:46 UTC (permalink / raw)
  To: ralf; +Cc: linux-mips, blogic, wuzhangjin, Florian Fainelli

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

^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2012-11-16 12:32 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-11-12 11:46 [PATCH] MIPS: decompressor: fix build failure on memcpy() in decompress.c Florian Fainelli
2012-11-13 11:25 ` Florian Fainelli
2012-11-16 12:30 ` [PATCH v2] MIPS: decompressor: remove unused linux/kernel.h header Florian Fainelli

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox