summaryrefslogtreecommitdiff
path: root/ldso/ldso
AgeCommit message (Collapse)Author
2003-11-13Joakim Tjernlund writes:Eric Andersen
I think I messed up a little in my latest patch to Erik. Can you try this on top of CVS(which I think you have already) Jocke And later writes: Hi Erik I just saw something that might be a problem. The "delta" variable is signed and the "delta" calculations, such as delta = PLT_LONGBRANCH_ENTRY_WORDS*4 - (insn_addr-plt_addr+4), are supposed to be unsigned. Jocke
2003-11-11It seems that the powerpc ldso doesn't like -O0Eric Andersen
2003-11-11Joakim Tjernlund writes:Eric Andersen
Comparing glibc with uClibc makes me think that the delta calculations are wrong here. Comparing some more I still think there are a data_words[index] assignments missing. Here is a path that has both the data_words[index] and the above delta calclations. This also fixes a terribly obvious bug, also spotted by Joakim, which Erik introduced when he copied things from the i386 ldso code. With this patch applied, things now seem to be working perfectly!
2003-11-11Another cleanup patch from Joakim Tjernlund:Eric Andersen
Hi again Back at work. Here is a patch that fixes the 2 errors I found yesterday. I have excluded the "data_words[index]" part for now.
2003-11-08Sigh. I can't type this morning.Eric Andersen
2003-11-08Joakim Tjernlund writes:Eric Andersen
Oops, found another ppc 8xx bug. 8xx CPUs may need this as well to work:
2003-11-08Joakim Tjernlund writes:Eric Andersen
> Very interesting. Do you have any suggestions for how > we could fix our powerpc shared library loader Removing those instr. comes with a very big performance penalty. To flush the dcache you will have read up to 8KB dummy data and to invalidate the icache you will have to execute up to 16KB nops. I don't know of any other way from user space. hmm, actually I think it will work reliable to perform a store to the same page(s) as the dcbst/icbi will act on. That way you will make the DTLB Error happen(if any) prior to the dcbst/icbi. The worst thing that can happen then is a regular DTLB Miss and that works for dcbst/icbi. You will have to lookout for if dcbst/icbi crosses a page boundary. Then you will have to perform a store to both pages. Jocke # And again later writes: Hi again I think I know what the problem is. The PPC_DCBST;PPC_SYNC;PPC_ICBI;PPC_ISYNC sequence is executed even if no modification has been done i some cases: _dl_linux_resolver(), the last else has no store for insns[0]. these is a insns[1] = OPCODE_B(delta - 4) that does not have a PPC_DCBST. _dl_do_lazy_reloc(), for R_PPC_NONE there is no store. for R_PPC_JMP_SLOT there is a insns[1] = OPCODE_B(delta)that does not have a PPC_DCBST. _dl_do_reloc(), for R_PPC_COPY there is no store. for R_PPC_JMP_SLOT there is a reloc_addr[1] = OPCODE_B(delta) that does not have a PPC_DCBST. _dl_init_got(), I THINK that the PPC_DCBST(plt); PPC_DCBST(plt+4); PPC_DCBST(plt+8); PPC_SYNC; PPC_ICBI(plt); PPC_ICBI(plt+4); PPC_ICBI(plt+8); PPC_ISYNC; is off a bit. The address range does not match the sum of the plt[] and tramp[] address range. Jocke # And then later added the comment: I think that the tramp[] part should be included in the PPC_DCBST/PPC_ICBI sequence. Then you have to add entries for plt+12 and plt+16. If the tramp[] part should be excluded, then all is well. Jocke
2003-11-06Revert change 1.26, which breaks everything. :-(Eric Andersen
2003-11-06A few debugging cleanupsEric Andersen
2003-11-05Fix a misnamed arrayEric Andersen
2003-11-05tiny cleanupEric Andersen
2003-11-05Rework the powerpc lib loader to better match the other architecturesEric Andersen
2003-11-05Fix a buglet that shows up on powerpcEric Andersen
2003-11-04Rework the config system. Better utilize the Kconfig languageEric Andersen
which should simplify enabling arbitrary architectures. -Erik
2003-10-18Peter Kjellerstedt writes:Eric Andersen
ln.patch: * Define $(LN) as ln in Rules.mak. * Change all occurrences of ln into $(LN). * Change all constructs like (cd path && ln -sf foo/file file) into $(LN) -sf foo/file path/file. The latter construct is already used in a number of places so it should not be an additional compatibility problem.
2003-10-18Peter Kjellerstedt writes:Eric Andersen
rm.patch: * Define $(RM) as rm -f in Rules.mak and test/Rules.mak (this is the same definition as gmake uses by default). * Change all occurrences of rm and rm -f into $(RM).
2003-10-18Peter Kjellerstedt writes:Eric Andersen
install.patch: * Define $(INSTALL) as install in Rules.mak. * Change all occurrences of install into $(INSTALL). * Change all occurrences of mkdir -p into $(INSTALL) -d. install -d is already used in a number of places so this should not be an additional compatibility problem.
2003-10-14Enable full debug support for ld-uClibc and libdlEric Andersen
2003-10-09move the test for loading the wrong C library into theEric Andersen
_dl_check_if_named_library_is_loaded function
2003-10-04Fix a stupid bug causing 'ldd' output to not contain the fullEric Andersen
path to the target library
2003-09-30Don't forget addend on relocations + minor other fixes.Tobias Anderberg
2003-09-19* Partial re-write to match other archs and remove duplicate code.Tobias Anderberg
* Assign insead of add when doing relocations.
2003-09-19Corrected LD_BOOT macroTobias Anderberg
2003-09-19Initialize strings as pointers instead of arrays.Tobias Anderberg
2003-09-19Re-add cris to "define list" when fixing auxvt.Tobias Anderberg
2003-09-11Simplify an expression. Use static const on strings to avoidEric Andersen
a gcc 2.95 compiler problem on powerpc.
2003-09-11Stefan Allius writes:Eric Andersen
Hello, my patch changed the format of the ldso debug output to the same format as on the i386 systems. By Stefan
2003-09-09Fix cris shared lib loader so it compiles...Eric Andersen
2003-09-09Arm needs this to compile with gcc 2.95Eric Andersen
2003-09-02cleanup/simplify duplicate handling.Eric Andersen
2003-09-02delete some garbage, cleanup duplicate handlingEric Andersen
2003-08-31Weed out duplicates before trying to load libraries.... DelayedEric Andersen
checking for duplicates and returning an alias if an existing lib is already loaded is still correct for the dlopen case.
2003-08-27Removed CRIS specific code.Tobias Anderberg
2003-08-27Cosmetic changes.Tobias Anderberg
2003-08-22Make the mips ld.so debug noise somewhat useful, and less gratuitouslyEric Andersen
different than all other arches. -Erik
2003-08-22Remove some mips specific hacks that are no longer needed, and actively breakEric Andersen
things, now that I have cleaned up the code to be a bit less horribly messy. With this, the shared lib loader works on mips once again. -Erik
2003-08-21Be sure to remove the old ldso.h, since it will screw thingsEric Andersen
up badly if still present...
2003-08-19More routine cleanupEric Andersen
2003-08-19Cool. Found most of the problem. Turns out we were inadvertanly loading someEric Andersen
libraries multiple times, wasting memory and causing different libraries to use different symbol sets, some of which were not properly resolved. Continue scrubbing ld.so and converting it to use proper types.
2003-08-19Phase one of my evil plan to clean up ld.so...Eric Andersen
2003-06-27oopsEric Andersen
2003-06-27whitespace and debug updatesEric Andersen
2003-06-18Be extra careful to memset the correct size, not the size of some randomEric Andersen
pointer. Fix printing of '0x0x' in ldd output. Simplify discrimination of libname, so doing things like dlopen("./libfoo.so",RTLD_NOW) with a leading "./" in the path will work as expected. -Erik
2003-06-15Implement syscall() for powerpc. Fixup syscall code soEric Andersen
it compiles properly with gcc 3.3. -Erik
2003-06-12Fix mips so it compiles with gcc 3.3Eric Andersen
2003-03-04Teach ldd to be a bit more helpful by telling you specificallyEric Andersen
what the problem library is that is linked vs glibc. -Erik
2003-03-01Teach ldd to act just the glibc provided one (relying on theEric Andersen
shared lib loader to do the work) when it is possible to do so, and only go poking about through the ELF headers when that fails so we can still use 'ldd' on cross compiled stuff. -Erik
2003-03-01doh. I forgot mips can't talk to globals that early on in theEric Andersen
process. Fix that up too.
2003-03-01Fix the shared library loader so we can properly debug things like pthreads.Eric Andersen
Mips gdb support for pthreads and similar complex stuff is broken, but then it couldn't have worked before either... -Erik
2003-02-26Fixup a really stupid and terribly obvious bug that was causingEric Andersen
the shared lib loader on mips to puke... -Erik