On Tue, Aug 30, 2011 at 12:32:31PM +0200, Richard Weinberger wrote:

> defconfig + STATIC_LINK +  UML_NET_VDE builds fine for me.
> 
> Toolchain (openSUSE 11.4):
> glibc: 2.11.3
> vde2: 2.3.1
> gcc: 4.5.3
> binutils: 2.21.1
> 
> Is my vde too new?
> BTW: Why is only strstr affected, what makes it so special?

What happens is that we end up with arch/um/drivers/vde.o having a reference
to rindex().  It comes from libvdeplug.a:libvdeplug.o and we don't have
rindex() in the kernel.  In libc we *do* have it - as an alias for strrchr.
So libc.a:strrchr.o is pulled in by that and we end up with conflict since
now two object files picked by linker define the same symbol.

At a guess, newer vde stopped wanking with rindex(3) (perhaps switching
to strrchr(3), as recommended by POSIX these days) and that has eliminated
the problem.

So yes, probably it's your vde being newer.  Until other distros pick that
version we are stuck with that problem, though...  Alternative solution
would be to have rindex() in arch/um/drivers/vde_kern.c - that also works
and might be a bit saner.  Defining it in lib/string.c is probably a bad
idea, since its use is not a good practice - it duplicates a standard C
equivalent (C89, at that) for no reason.

------------------------------------------------------------------------------
Special Offer -- Download ArcSight Logger for FREE!
Finally, a world-class log management solution at an even better 
price-free! And you'll get a free "Love Thy Logs" t-shirt when you
download Logger. Secure your free ArcSight Logger TODAY!
http://p.sf.net/sfu/arcsisghtdev2dev
_______________________________________________
User-mode-linux-devel mailing list
User-mode-linux-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel

Reply via email to