+2  A: 

The real answer is that it should compile crti.o if one was to build an arm-elf target. In building an arm-linux target, the gcc people reasonably assume that glibc has been compiled previously and it will provide the crti.o startup. Perfectly reasonable, if you're upgrading.

Building a new root file system is another story, a paradoxical one at that (which comes first glibc or gcc?). An approach (endorsed, but I've not yet succeeded with) is to build a stand-alone gcc (arm-elf\static, say) then glibc, then gcc again.

It seems as though some have addressed the missing crti.o in an arm-linux target by modfiying gcc\config\arm\t-linux. Rather than relying on an unexisting glibc, the kludge is to use the arm-elf provided version of the crti.o. Some sets of examples are here, here and here. Also here.

Jamie
A: 

Jamie,

Did you finally manage to get a cross tollochain for arm-linux-eabi installed? I am struggling and got stuck at this step.

Thanks!

SG

Sidhant
Yes and no. I used [crosstool-ng](http://freshmeat.net/projects/crosstool-ng/), which means I didn't do it myself. *crosstool-ng* built the root file system and everything, only trouble is that at a respectible 64Mbytes it's unfortunately 8 times the size I'd like it to be.
Jamie