Commit f9b07897 authored by Geert Uytterhoeven's avatar Geert Uytterhoeven

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: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
parent 1bae4ce2
...@@ -81,18 +81,6 @@ static inline char *strncpy(char *dest, const char *src, size_t n) ...@@ -81,18 +81,6 @@ static inline char *strncpy(char *dest, const char *src, size_t n)
strcpy(__d + strlen(__d), (s)); \ 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 #ifndef CONFIG_COLDFIRE
#define __HAVE_ARCH_STRCMP #define __HAVE_ARCH_STRCMP
static inline int strcmp(const char *cs, const char *ct) static inline int strcmp(const char *cs, const char *ct)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment