diff options
| author | 2019-06-02 01:03:01 +0000 | |
|---|---|---|
| committer | 2019-06-02 01:03:01 +0000 | |
| commit | 5c7d06e56e289f4145af6fe3394d5d581f2679bd (patch) | |
| tree | 08170e2ff8f3d142db0645a9c85003a1ecf2e71e /sys/kern/init_main.c | |
| parent | Refactor the MAP_STACK feature, and introduce another similar variation: (diff) | |
| download | wireguard-openbsd-5c7d06e56e289f4145af6fe3394d5d581f2679bd.tar.xz wireguard-openbsd-5c7d06e56e289f4145af6fe3394d5d581f2679bd.zip | |
Complete the ld.so boot cleanup: move most libc initialization from
_csu_finish() to _libc_preinit(), which is an .init_array function
in shared libc (and mark it INITFIRST) or a .preinit_array function
in static libc, grabbing the _dl_cb callback there from ld.so. Then
in _csu_finish(), invoke the dl_clean_boot() callback to free ld.so's
startup bits before main() gets control.
Other cleanups this permits:
- move various startup structures into .data.rel.ro
- the dl* stubs in libc can be strong and call the callbacks provided
via _dl_cb
- no longer need to conditionalize dlctl() calls on presence of _DYNAMIC
original concept and full diff ok kettenis@
ok deraadt@
Diffstat (limited to 'sys/kern/init_main.c')
0 files changed, 0 insertions, 0 deletions
