On Wed, 23 Mar 2011, James Bottomley wrote: > This is the problem a lot of architectures will see: > > Specifically this: > LD vmlinux.o > lib/lib.a(show_mem.o): In function `show_mem': > (.text.show_mem+0x0): multiple definition of `show_mem' > arch/parisc/mm/built-in.o:(.text.show_mem+0x0): first defined here > make: *** [vmlinux.o] Error 1 > > Caused by this patch: > > commit ddd588b5dd55f14320379961e47683db4e4c1d90 > Author: David Rientjes <rientjes@xxxxxxxxxx> > Date: Tue Mar 22 16:30:46 2011 -0700 > > oom: suppress nodes that are not allowed from meminfo on oom kill > > Is the cause. What it does is introduce a new __show_mem() which is > required by files in mm/, so the object containing it: show_mem.o gets > pulled in all the time in the link and that gives every architecture > that implements their own show_mem() a link failure because of the > double definition. Library linking works at the file level, not at the > function level. To work, you have to put these functions in separate > files. > Thanks for the report, James. This was also reported by Stephen on LKML when he merged the latest Linus tree into linux-next. Andrew suggested that we remove __show_mem() entirely and simply add its argument to show_mem() in all the architectures. I have a patch at: http://marc.info/?l=linux-kernel&m=130100511521954 I don't have a parisc cross compiler, so if you could try it out and add your Tested-by that would be great Thanks again! -- To unsubscribe from this list: send the line "unsubscribe linux-arch" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html