I am seeing the same problems using 'llvm-ld' with llvm-gcc at -O4 on x86_64 Fedora 8 linux as on Darwin. Another example of this is building the scimark2_1c benchmark... http://math.nist.gov/scimark2/download_c.html as follows on x86_64 Fedora 8... /home/howarth/llvm-gcc42-work/bin/gcc -O4 -m64 -c FFT.c /home/howarth/llvm-gcc42-work/bin/gcc -O4 -m64 -c kernel.c /home/howarth/llvm-gcc42-work/bin/gcc -O4 -m64 -c Stopwatch.c /home/howarth/llvm-gcc42-work/bin/gcc -O4 -m64 -c Random.c /home/howarth/llvm-gcc42-work/bin/gcc -O4 -m64 -c SOR.c /home/howarth/llvm-gcc42-work/bin/gcc -O4 -m64 -c SparseCompRow.c /home/howarth/llvm-gcc42-work/bin/gcc -O4 -m64 -c array.c /home/howarth/llvm-gcc42-work/bin/gcc -O4 -m64 -c MonteCarlo.c /home/howarth/llvm-gcc42-work/bin/gcc -O4 -m64 -c LU.c /home/howarth/llvm-gcc42-work/bin/llvm-ld -O4 -native -o scimark2 scimark2.o FFT.o kernel.o Stopwatch.o Random.o SOR.o SparseCompRow.o array.o MonteCarlo.o LU.o /usr/lib64/libm.so /usr/lib/../lib64/crt1.o: In function `_start': (.text+0x20): undefined reference to `main' collect2: ld returned 1 exit status llvm-ld: make: *** [scimark2] Error 1 This is identical to what I see on Darwin... llvm-ld -native -O4 -o scimark2 scimark2.o FFT.o kernel.o Stopwatch.o Random.o SOR.o SparseCompRow.o array.o MonteCarlo.o LU.o -lm llvm-ld: warning: Ignoring file 'scimark2.o' because does not contain bitcode. Undefined symbols: "_main", referenced from: start in crt1.10.5.o ld: symbol(s) not found collect2: ld returned 1 exit status llvm-ld: make: *** [scimark2] Error 1 How are people testing code at -O4 if the existing linkers can't use any pre-existing system libraries? Thanks in advance for any clarifications. Jack