Why would a simple C program need syscalls?
Related to this other question. I am trying to run this simple C program in gem5: int main() { int a=1, b=2; int c=a+b; return c; } And it fails because gem5 doesn't have some syscalls implemented. My question is, why would a simple program like this require syscalls? This should run bare-metal without trouble. Is there a way to compile this to avoid syscalls? I am using arm-linux-gnueabi-gcc -static -DUNIX to compile it. Without syscalls the program cannot exit. The way it works is typically something like this: // Not how it's actually implemented... just a sketch. void _start() { char *