add general fdpic support in dynamic linker and arch support for sh
authorRich Felker <dalias@aerifal.cx>
Tue, 22 Sep 2015 03:54:42 +0000 (03:54 +0000)
committerRich Felker <dalias@aerifal.cx>
Tue, 22 Sep 2015 03:54:42 +0000 (03:54 +0000)
commit7a9669e977e5f750cf72ccbd2614f8b72ce02c4c
treed06ed21dee895141171fda5d73998df3d1cb9282
parent3958144ede01a7e64a56c0430f053bfd80ff02eb
add general fdpic support in dynamic linker and arch support for sh

at this point not all functionality is complete. the dynamic linker
itself, and main app if it is also loaded by the kernel, take
advantage of fdpic and do not need constant displacement between
segments, but additional libraries loaded by the dynamic linker follow
normal ELF semantics for mapping still. this fully works, but does not
admit shared text on nommu.

in terms of actual functional correctness, dlsym's results are
presently incorrect for function symbols, RTLD_NEXT fails to identify
the caller correctly, and dladdr fails almost entirely.

with the dynamic linker entry point working, support for static pie is
automatically included, but linking the main application as ET_DYN
(pie) probably does not make sense for fdpic anyway. ET_EXEC is
equally relocatable but more efficient at representing relocations.
arch/sh/crt_arch.h
arch/sh/reloc.h
src/internal/dynlink.h
src/ldso/dlstart.c
src/ldso/dynlink.c