The ELF entry point can be set in the linker response file, which can be passed to ld with -T
Doing a bogus link with --verbose will show you the default linker responsefile (which might be system specific, but in reality it is not that bad, one per arch per OS for the most).
Note that there might be additional constraints (like the entry point residing in a text/codesegment)
For a practical example of lugging along custom linker files, see the Free Pascal project, which does this to implement resources.