Forum: ARM programming with GCC/GNU tools Missing startup file crt0.o

Author: Helge K. (helge_k25)
Posted on:

Rate this post
0 useful
not useful
When I start compiling for ARM I find some GNU GCC tool sets like 
Yagarto and emIDE. The first is just a tool set that can be integrated 
in any development environment, the latter is a complete IDE.

I would prefer to use the stand alone tool set. But when I compile a 
hello world with Yagarto program I get the error message

ld.exe: cannot find crt0.o: No such file or directory

But the GNU GCC version in emIDE compiles out-of-the-box. You can find a 
crt0.o in the product tree.

I doubt that Yagarto just offers an incomplete tool set. What is the 
object to configure the tool set that it can't be used with additional 
tricks? What am I missing with this crt0.o? What is the preferred way to 
setup a project with a tool set lacking crt0.o

Author: Michael Fischer (mifi)
Posted on:

Rate this post
0 useful
not useful
Hello Helge,

have you try one of my example here:

No crt0.o is needed. I have removed the libnosys from
the YAGARTO toolchain because it makes some problem
to create the toolchain itself.

My experience is that you need your own crt0 or startup
file for your project/hardware. In case of my examples
you will find a startup_stm32f4xx.s in the M4 example.

Best regards,


Entering an e-mail address is optional. If you want to receive reply notifications by e-mail, please log in.

Rules — please read before posting

  • Post long source code as attachment, not in the text
  • Posting advertisements is forbidden.

Formatting options

  • [c]C code[/c]
  • [avrasm]AVR assembler code[/avrasm]
  • [code]code in other languages, ASCII drawings[/code]
  • [math]formula (LaTeX syntax)[/math]

Bild automatisch verkleinern, falls nötig
Note: the original post is older than 6 months. Please don't ask any new questions in this thread, but start a new one.