"gccld foo.a foo.a" fails with multiple symbol definition bugs, whereas "gccld -lfoo -lfoo" works properly.
Clearly *something* is going on here. Like John, I also haven't gotten any multiple-def error messages, but: 53 zion> cat foo.c int foo () { return 23423; } 54 zion> llvm-gcc -c -o foo.o foo.c 55 zion> llvm-ar foo.a foo.o Member File Start: 8 Size: 124 Member File End: 192 56 zion> gccld -o=barf foo.a foo.a gccld: Bytecode file 'foo.a' corrupt!: Invalid bytecode signature! 57 zion> gccld -o=barf -l=foo.a -l=foo.a Not enough positional command line arguments specified! Must specify at least 1 positional arguments: See: gccld --help 58 zion> gccld -o=barf -l=foo.a foo.a gccld: Bytecode file 'foo.a' corrupt!: Invalid bytecode signature! Maybe the strangeness of the UI should be a separate bug, though. Leaving this as WFM.
For wierdness like this, see Bug 19