[-next] ERROR: "strchr" [drivers/target/target_core_mod.ko] undefined!

Geert Uytterhoeven
2011-01-07T10:57:50Z

Since a few days, linux-next shows:

| ERROR: "strchr" [drivers/target/target_core_mod.ko] undefined!

in m68k allmodconfig builds
(http://kisskb.ellerman.id.au/kisskb/buildresult/3754323/).

I guess this is caused by the following 3 calls to strstr():

drivers/target/target_core_configfs.c:
+ ptr = strstr(page, "1");

+ str = strstr(buf, "_");

+ str2 = strstr(str+1, "_");

Some versions of gcc replace calls to strstr() with single-character
"needle" string parameters by calls to strchr() behind our back.
This causes linking errors if strchr() is defined as an inline function
in <asm/string.h> (e.g. on m68k).

You can prevent this by explicitly calling strchr() instead.

Cfr. commit 59d309f9c8ef0bd01bf93cc0e758f1d810417bdb
("kgdb: Replace strstr() by strchr() for single-character needles).

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds