|Non-Confidential||PDF version||ARM 100073_0607_00_en|
|Home > The ARM C and C++ Libraries > Support for building an application without the C library > Bare machine integer C|
If you are writing a program in C that does not use the library and is to run without any environment initialization, there are a number of requirements you must meet.
These requirements are:
__rt_raise()if you are using the heap.
main(), to avoid linking in the library initialization code.
-mfpu=none. For AArch64 targets, use
-marchto disable floating-point instructions and registers.
When you have met these requirements, link your application normally. The linker uses the appropriate C library variant to find any required compiler functions that are implicitly called.
Many library facilities require __user_libspace for static data. Even without the initialization code
activated by having a
main() function, __user_libspace is created automatically and uses 96 bytes in
the ZI segment.