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.