From: Geert Uytterhoeven Date: Sat, 8 Jan 2011 20:57:48 +0000 (+0100) Subject: m68k: Uninline strchr() X-Git-Tag: v3.12-rc1~7318^2~2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f9b07897c6288d7e5fc1fd004fccb0c5f1a0e570;p=kernel%2Fkernel-generic.git m68k: Uninline strchr() Some versions of gcc replace calls to strstr() with single-character "needle" string parameters by calls to strchr() behind our back. If strchr() is defined as an inline function, this causes linking errors like ERROR: "strchr" [drivers/target/target_core_mod.ko] undefined! As m68k is the only architecture that has an inline strchr() and this inline version is not an optimized asm version, uninline strchr() and use the standard out-of-line C version in lib/string.c instead. This also decreases the defconfig/allmodconfig kernel image sizes by a few hundred bytes. Signed-off-by: Geert Uytterhoeven --- diff --git a/arch/m68k/include/asm/string.h b/arch/m68k/include/asm/string.h index 2936dda..65b1312 100644 --- a/arch/m68k/include/asm/string.h +++ b/arch/m68k/include/asm/string.h @@ -81,18 +81,6 @@ static inline char *strncpy(char *dest, const char *src, size_t n) strcpy(__d + strlen(__d), (s)); \ }) -#define __HAVE_ARCH_STRCHR -static inline char *strchr(const char *s, int c) -{ - char sc, ch = c; - - for (; (sc = *s++) != ch; ) { - if (!sc) - return NULL; - } - return (char *)s - 1; -} - #ifndef CONFIG_COLDFIRE #define __HAVE_ARCH_STRCMP static inline int strcmp(const char *cs, const char *ct)