When creating a native executable with llvm-ld and linking against a shared (.so) library, using the -l option, llvm-ld generates the following warning: llvm-ld: warning: Supposed library 'name_of_lib' isn't a library. However, the produced executable seems to work fine, and seems to find libname_of_lib.so through LD_LIBRARY_PATH just fine. Reid Spencer advised that this is most likely a code cleanup bug.
This is pretty easy. The IdentifyFileType method sys::Path is simply not identifying native object file types. I'm augmenting it to recognize COFF, ELF and Mach-O files (should cover most of our bases for a while) for a variety of targets we support. If the object file/shared lib is not recognized, the warning message will still be produced and it will still link (assuming its valid) but in that case I think the warning message is justified (i.e. its telling us to update the object file recognition in LLVM). This should be fixed shortly.
Fixed with these patches: http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20070402/046781.html http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20070402/046782.html http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20070402/046783.html http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20070402/046784.html http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20070402/046785.html http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20070402/046786.html