On Mon, May 14, 2012 at 03:17:42AM +0000, Du, ChangbinX wrote: > I try to compile tools/usb foler, but got below error(gcc version > 4.6.3): > tools/usb/testusb.c:516: undefined reference to `pthread_create' > tools/usb/testusb.c:541: undefined reference to `pthread_join' > The reason is the makefile puts source files behind of compiler option > "-l". For gcc(and clang), it reads compiler options in order from left > to right. When compiler gets a source file, it starts parsing it and try > to resolve all symbols invoked. If compiler can not resolve a symbol, it > will read --remain-- options and try get a definition of the symbol. So, > if we put source file behind of "-l" option, the specified library will > not work. > > Signed-off-by: Du Changbin <changbinx.du@xxxxxxxxx> I think that's a regression in your version of gcc, as 4.6.2 here works just fine with no errors. What distro's version of gcc are you using here? What changed between 4.6.2 and 4.6.3 that would do this? I just tried 4.5.3 and it worked just fine as well. I'm thinking something might be messed up on your end here, and this patch isn't really needed. thanks, greg k-h -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html