This is needed on i686 to set segment registers.
Current context saving was very hacky and dependant on compiler behaviour that was not consistent. Now we always use iret for context saving. This makes everything more clean.
There was no reason for libc get crt0 from kernel.