linker: correctly define entry point
This has influenced the dependency tree calculation that the linker does
to decide which symbols to keep when doing gc-sections. As a result, a
lot of important OS symbols had been omitted. This had been worked around
by supplying --whole-archive
because the problem hasn't been well
understood. Now we don't need --whole-archive
anymore and might gain even
smaller binary sizes now.