How kernel, compiler, and C library work together: Difference between revisions

[unchecked revision][unchecked revision]
Content deleted Content added
Frank (talk | contribs)
Frank (talk | contribs)
Line 73:
==Unresolved Symbols==
 
The linker is the stage where you will find out about stuff that has been added without your knowledge, and which is not provided by your environment. This can include references to =<tt>alloca()=</tt>, =<tt>memcpy()=</tt>, or several others. This is usually a sign that either your toolchain or your command line options are not correctly set up for compiling your own OS kernel - or that you are using functionality that is not yet implemented in your C library / runtime environment!
 
It is _strongly_'''strongly''' recommended to build a [[GCC Cross-Compiler]] to avoid this and similar problems right from the start.
 
Other kind of symbols such as _udiv* or __builtin_saveregs are available in the OS-agnostic "libgcc.a". If get error about missing such symbols, try to link your kernel against that library too. See [[Topic:10783|this thread|Forum:8208]] for details.
 
==__alloca, ___main==