| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- put functions and data which are only used before calling the executable's
start function into their own page-aligned segments for unmapping
(only done on amd64, arm64, armv7, powerpc, and sparc64 so far)
- pass .init_array and .preinit_array functions an addition argument which
is a callback to get a structure which includes a function that frees
the boot text and data
- sometimes delay doing RELRO processing: for a shared-object marked
DF_1_INITFIRST do it after the object's .init_array, for the executable
do it after the .preinit_array
- improve test-ld.so to link against libpthread and trigger its initialization
late
libc changes to use this will come later
ok kettenis@
|
|
|
|
|
|
|
| |
executables the TIB and __progname are set up before they can be used.
problem noted by ori@
ok millert@ kettenis@
|
|
|
|
|
|
| |
declared static.
OK guenther@
|
|
|
|
| |
ok kettenis@
|
|
|
|
|
|
| |
Mark __init() as hidden
ok kettenis@ deraadt@
|
|
|
|
| |
ok phessler@ deraadt@
|
|
|
|
| |
ok guenther@
|
|
|
|
|
|
|
| |
Export _gmonparam again.
Make gcrt0.o use an reserved name for _monstartup()
ok millert@
|
|
|
|
|
|
|
|
|
|
|
| |
move their definitions and initialization in static links to libc.a
Make crt0 always invoke a new func _csu_finish() in libc to process the auxv
and to either register the ld.so cleanup function (in dynamic links) or
initialize environ and __progname and do MC_DISABLE_KBIND (in static links).
In libc, get pagesize from auxv; cache that between getpagesize() and
sysconf(_SC_PAGESIZE)
ok mpi@ "good time" deraadt@
|
|
|
|
|
| |
With much assistance from miod@
ok deraadt@@
|
|
|
|
| |
ok miod@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
rcsu0.o where the initial 'r' is for relocatable. rcsu0.o performs
self-relocation on static pie binaries by calling a slightly modified
copy of ld.so's _dl_boot_bind() in boot.h.
The first arch implementatation is also included for amd64 where
__start calls _dl_boot_bind() and then calls ___start(). Includes
parts from kettenis@ to help get R_X86_64_64 relocations working
and proper handling for undefined weak symbols.
This is the first part of several to get static pie self-relocating
binaries working. binutils, gcc and kernel changes are forthcoming
to complete the solution, then per-arch implementations are needed
for MD_RCRT0_START in csu.
okay kettenis@ pascal@ deraadt@
|
|
|
|
|
|
| |
defined and we don't think ld.so has already done the TCB setup.
ok and much discussion miod@
|
|
the md_init.h files.
Worked out with and ok miod@; ok matthew@
|