csu: move common code to libcWhy? Most trivial point, it shaves around 600 bytes from the dynamicbinaries on amd64. Less trivial, the removed code is no longer part ofthe ABI, and we can ship upd
csu: move common code to libcWhy? Most trivial point, it shaves around 600 bytes from the dynamicbinaries on amd64. Less trivial, the removed code is no longer part ofthe ABI, and we can ship updates to it with libc updates. Right now mostof the csu is linked into the binaries and require us to do somewhattricky ABI compat when it needs to change. For instance, the init_arraychange would be much simpler and does not require note tagging if wehave init calling code in libc.This could be improved more, by splitting dynamic and staticinitialization. For instance, &_DYNAMIC tests can be removed then.Such change, nonetheless, would require building libc three times.I left this for later, after this change stabilizes, if ever.Reviewed by: markjDiscussed with: jrtc27 (some objections, see the review), impTested by: markj (aarch64)Sponsored by: The FreeBSD FoundationMFC after: 3 weeksDifferential revision: https://reviews.freebsd.org/D37220
show more ...