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