Well you just use system calls and import functions from other shared libs dynamically. There is really not more to it.
The stdlibs are supposed to make your life more comfortable, of course its not that comfy without them.
There was a suggestion to statically link against dietlibc. Not sure how the startup cost is compared to glibc.
My -nostdlib version just uses inline assembly for the read(), write(), and exit() system calls.