llvm-ld can (and did) go into an infinite loop while processing a bytecode archive. Cleaned up the loop in LinkArchive.cpp -- it shouldn't be an infinite loop. The code should have implemented a loop that keeps processing this archive until the set of undefined symbols doesn't change. Also, bytecode archives improperly get fed to the native linker. At least Linux bitches about malformed archives when this happens, YMMV.
Created attachment 458 [details] llvm-ld infinite bc archive loop and native code gen fix.
Reid is reviewing this patch.
Created attachment 459 [details] updated patch with fewer calories
Created attachment 460 [details] A couple of more suggested refinements...
Created attachment 461 [details] fix typo...
Scott's first patch passed muster and fixes the issue. Patches here: http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20061106/039823.html http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20061106/039824.html http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20061106/039821.html http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20061106/039822.html Thanks, Scott!