Re: m68k: main.c:(.init.text+0x730): undefined reference to`strlen'

From: Cyrill Gorcunov
Date: Wed May 14 2008 - 12:04:07 EST


[Adrian Bunk - Wed, May 14, 2008 at 06:56:11PM +0300]
| On Wed, May 14, 2008 at 07:48:01PM +0400, Cyrill Gorcunov wrote:
| > [Adrian Bunk - Wed, May 14, 2008 at 06:30:59PM +0300]
| > | On Wed, May 14, 2008 at 04:28:24PM +0200, Andreas Schwab wrote:
| > | > Adrian Bunk <bunk@xxxxxxxxxx> writes:
| > | >
| > | > > Or replace all the strlen stuff in include/asm-m68k/string.h with a
| > | >
| > | > I don't think the strlen macros has any influence in this case (it
| > | > already uses __builtin_strlen anyway).
| > |
| > | The problem is that it sets __HAVE_ARCH_STRLEN, and therefore the
| > | out-of-line function in lib/string.c is not built.
| > |
| > | That breaks when gcc replaces a call to a different function with a call
| > | to strlen().
| > |
| > | > I'd rather guess that gcc is
| > | > expanding strncat internally to something involving strlen with
| > | > non-constant argument,
| > |
| > | We agree on this one.
| > |
| > | > although I cannot see how that can happen from a
| > | > quick look.
| > |
| > | It isn't the first time we have these problems in the kernel...
| > |
| > | > Andreas.
| > |
| > | cu
| > | Adrian
| >
| > Adrian, I've just sent the updated patch, and accidentally forget
| > to CC you - please take a look on http://lkml.org/lkml/2008/5/14/267
|
| It removes the strncat() calls and should therefore remove the current
| compile error.
|
| But the underlying problem that actually causes the compile error is not
| fixed and might occur again in other places (but that's nothing you
| have to worry about).
|
| > - Cyrill -
|
| cu
| Adrian
|
| --
|
| "Is there not promise of rain?" Ling Tan asked suddenly out
| of the darkness. There had been need of rain for many days.
| "Only a promise," Lao Er said.
| Pearl S. Buck - Dragon Seed
|

Yes, this problem is still here but I was really frowned 'cause
it's my patch introduced potential memory overflow :(

- Cyrill -
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/