You can still call functions to libc and provide your own _start. That will work fine.
Documentation on how executable starts is architecture specific. For x86_64 it is documented in
System V Application Binary Inter...Architecture Processor Supplement. "3.4 Process Initialization".
You can check what typical _start does, for example, by looking into musl source code - __libc_start_main function in
__libc_start_main.c file. As you said, it is not much.