verma wrote: > Hi all, > > I am doing some R&D.I do not want lazy flag in ld.so.1 nneeded section. > For this ,I have changed rtld/Makefile.com ,removed the following -zlazyload > flag form DYNFLAGS. > DYNFLAGS += -e _rt_boot $(VERSREF) -Bsymbolic -zlazyload -znodlopen \ > -z interpose -zdtrace=dtrace_data '-R$$ORIGIN' > > Now I have not lazy flag in ld.so.1 needed section > #elfdump -d ./ld.so.1 > > Dynamic Section: .dynamic > index tag value > [0] NEEDED 0x849 liblddbg.so.4 > [1] NEEDED 0x857 librtld.so.1 > [2] NEEDED 0x864 libld.so.4 > [3] SONAME 0x86f /lib/ld.so.1 > [4] SYMBOLIC 0 > > But when I run this this gives egmentation fault. > I investigate and found that this is coming inside elf_needed() of > rtld/comon/elf.c > Now my questionis that how can I remove this segmentaion fault for above by > ld.so.1 > I want to test ld.so.1 without lazy flag of its dependencies,so could any one > suggest ,me what should I do for getting this. > Any suggestion what should I do , changed the elf_needed() function for this > or some other code.
You need to arrange for elf_rtld_load() to be called before jumping through a .plt. Personally, I'd leave the -zlazyload flag on. ld.so.1's default action is to expect its dependencies to be lazily loaded. Why would you want to load liblddbg, librtld, etc. when they are seldom used? -- Rod