Age | Commit message (Collapse) | Author |
|
ok millert@
|
|
Much discussion with and assistance from miod and deraadt
ok miod@
|
|
wrapper .h files and asm labels to let internal calls resolve directly and
not be overridable or use the PLT. Then, apply that framework to most of
the functions in stdio.h, string.h, err.h, and wchar.h. Delete the
should-have-been-hidden-all-along _v?(err|warn)[cx]? symbols while here.
tests clean on i386, amd64, sparc64, powerpc, and mips64
naming feedback from kettenis@ and millert@
ok kettenis@
|
|
Much discussion with and assistance from miod and deraadt
ok deraadt@
|
|
hide symbols on all our architectures; hppa, hppa64 and sh override LDADD.
LDADD isn't really the proper variable for passing linker flags anyway.
ok guenther@, deraadt@
|
|
a plabel instead of the entry-point address. In that case, get the
entry-point address from the plabel. Makes ld.so work on hppa when
_dl_bind_start gets hidden by the version script.
ok miod@
|
|
Much discussion with and assistance from miod and deraadt
ok deraadt@
|
|
Use kbind for lazy binding GOT/PLT updates on alpha and mips64.
While here add some gcc __predict hints.
Much discussion with and assistance from miod and deraadt
ok deraadt@
|
|
to follow. While here add some gcc __predict hints.
Much discussion with and assistance from miod and deraadt
ok deraadt@
|
|
two symbols needed by gdb. Remember: ld.so exports override those in
shared libs.
ok deraadt@
|
|
to follow. While here add some gcc __predict hints.
Much discussion with and assistance from miod and deraadt
ok deraadt@
|
|
support on powerpc as it uses a non-executable GOT and PLT.
"start slamming stuff in" deraadt@
|
|
|
|
|
|
|
|
ok miod@ kettenis@
|
|
too loose. Update the test to try to exercise the printf binding twice.
ok miod@
|
|
ok miod@
|
|
fixed everywhere but on sparc for some unknown reason (and did not cause
any havoc in real life).
|
|
|
|
|
|
is non-portable. Also add missing asprintf() return value checks.
OK deraadt@ guenther@ doug@
|
|
instead of corrupting the caller's stack by mistake.
This fixes the mysterious segfaults in __powerpc_read_tcb() reported on
earlier G3 systems - more recent processors have been luckier...
ok deraadt@
|
|
means read-only, which our ld.so already enforced, but a smaller plt section).
|
|
|
|
no change in behaviour as sizeof(char **) is the same as sizeof(char *)
ok otto@ guenther@
|
|
ok otto@ guenther@
|
|
|
|
|
|
legitimately use random section variables without execve failures...
Because this section is not demand faulted, yield() every page during
the fill otherwise the costs are charged poorly.
ok tedu matthew
|
|
|
|
so that the remaining information is more visible
ok kettenis miod
|
|
contain "LD_TRACE_LOADED_OBJECTS" support, so this gets done by calling
RTLD_TRACE directly.
ok guenther
|
|
using it, so it warns... Copy the warning silencing code from the
same function in ../ld.so
|
|
|
|
ok millert, thanks to doug for process advice
|
|
archdep.h help from kettenis@
|
|
the constants whenever they fit, and avoiding saving and restoring
registers we don't need to preserve.
|
|
Fixes remaining problems with static PIE on mips64.
|
|
fails.
ok kurt@
|
|
relocation in _reloc_alpha_got(), and teach RELOC_RELA() to skip R_ALPHA_NONE
relocations (which are just nops used to fill out the relocation table).
Handling R_ALPHA_NONE relocations will be necessary for static PIE support
and it is not inconceivable that ld.so will end up with such relocations
at some point.
ok kurt@
|
|
to determine if DT_JMPREL relocations are REL or RELA and conditionally
perform DT_JMPREL in either REL or RELA as needed (idea from kettenis@).
Remove unneeded i386 RELA implementation. i386 static pie working now.
okay kettenis@
|
|
|
|
towards a wimpy (but sufficient) model, kurt and kettenis got upset enough
to do it the right way, right away before we got out of hand. Bravo!
We no longer need /sbin/ld.so on the new roadmap.
|
|
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@
|
|
|
|
|
|
PIE possible.
ok deraadt@ tedu@
|
|
relocations, but will always call public symbols through the library's PLT.
|
|
|