Comment by sp1rit
14 days ago
> This C program doesn’t use any C standard library functions.
This is only half true. While the code doesn't call any stdlib functions, it still relies on the the c stdlib and runtime in order to get called and properly exit.
I'm somewhat perplexed why the author did do it with the runtime, given that he doesn't really depend on features of it (except maybe the automatic exit code handling) instead of building with -ffreestanding.
You have to add some extra assembly before main if you don't use the C runtime. You have to write _start, the actual entry point that CRT usually takes. https://github.com/fsmv/dfre/blob/master/code/linux32_start....
This is for -nostdlib not -ffreestanding
You can usually with not having the initial part. As long as you do call the exit syscall, it should work.
"This C program doesn’t explicitly use any C standard library functions." doesn't sound as cool, though.