"/home/ryan/binutils/bin/ld" -export-dynamic -z relro --hash-style=gnu --build-id --eh-frame-hdr -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 -o factorial /usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5/../../../../i386-linux-gnu/crt1.o /usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5/../../../../i386-linux-gnu/crti.o /usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5/crtbegin.o -L/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5 -L/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5/../../../../i386-linux-gnu -L/lib/i386-linux-gnu -L/usr/lib/i386-linux-gnu -L/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5/../../../.. -L/lib -L/usr/lib -plugin /home/ryan/llvm-build/Debug+Asserts/bin/../lib/LLVMgold.so my_main.o factorial.o libdbug.a ../mysys/libmysys.a ../strings/libmystrings.a -lpthread -lcrypt -lnsl -lm -lpthread -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5/crtend.o /usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5/../../../../i386-linux-gnu/crtn.o
/home/ryan/binutils/bin/ld: error: libdbug.a: no archive symbol table (run ranlib)
/home/ryan/binutils/bin/ld: error: ../strings/libmystrings.a: no archive symbol table (run ranlib)
my_main.c:23: error: undefined reference to 'my_thread_global_init'
/home/ryan/binutils/bin/ld: error: /tmp/httpd-2.2.22/srclib/pcre/.libs/libpcre.a: no archive symbol table (run ranlib)
/home/ryan/binutils/bin/ar: no operation specified
/path/to/ld: error: ../mysys/libmysys.a: member at 8758 is not an ELF object
/path/to/ld: error: ../mysys/libmysys.a: member at 817850 is not an ELF object
/path/to/ld: error: ../mysys/libmysys.a: member at 827534 is not an ELF object
It's much easier to build clang and llvm from sources that gcc, and seem to do it already :)