Hey Quinn,
I am writing a small toy compiler based off of LLVM and trying to stay away from a C runtime library as a direct dependency, hence I am invoking the ld linker manually from within the compiler. When I generate the object file (for now just an empty one), I assume it's looking for _main entry point as it is required by the C runtime. Correct me if I am wrong, but the C runtime entry point starts with _start symbol, no?
I have also noticed that ld does not support static linking, which I find quite strange.