summaryrefslogtreecommitdiff
path: root/ldso/libdl/libdl.c
AgeCommit message (Collapse)Author
2004-08-17Let ldso decide if it should relocate itselft a second time. ThisJoakim Tjernlund
is needed if ldso should use libcs malloc whenever possible. Fix RTLD_LAZY propagation to RTLD_NOW relocation when requested by libdl.
2004-08-13Fix usage_count in ldso/libdl.Joakim Tjernlund
Don't' use atexit in libdl. Make destrutor in libdl actually run and to dlclose all dlopened libs. Remove dlclosed libs from the _dl_symbol_tables list.
2004-08-09This should fix the dlsym problem Peter van Hoyweghen reported.Joakim Tjernlund
However RTLD_LOCAL still doesn't work. Everything is RTLD_GLOBAL.
2004-07-30Teach libdl to use normal libc symbols whenever possible, i.e. mallocEric Andersen
rather than _dl_malloc, fprintf rather than _dl_printf, etc. -Erik
2004-07-30Fix screwed up indentingEric Andersen
2004-07-16Revert this stuff for nowEric Andersen
2004-07-14Sigh. I got things working this morning, then checked stuff in from the wrongEric Andersen
tree. Bad boy, No doughnut. -Erik
2004-07-14Based on a patch from Alexandre Oliva, make sure _dl_malloc returns a nicelyEric Andersen
aligned pointer that may be aligned up to page_size. Also add _dl_free,
2004-05-13update libdl so it also groks the new _dl_errnoEric Andersen
2004-02-20Per discussion with Joakim Tjernlund, all the horrible weak declarations junkEric Andersen
in libdl pointing to the local 'foobar' function is garbage. This cleans all that up and makes the code much less horrible. Now it is only really really ugly (which is a marked improvement),
2004-02-14Joakim Tjernlund writes:Eric Andersen
Hi it is me again. This is the latest ldso patch. the NEW weak symbol handling works now with a little special handling in _dl_find_hash(). You get to chose if you want the new or old handling :) There was 2 missing _dl_check_if_named_library_is_loaded() calls in _dlopen(). I then disabled the _dl_check_if_named_library_is_loaded() in dl-elf.c since it is rendundant. Question, why does some _dl_linux_resolver(), like i386, have 2 calls to _dl_find_hash()? I think that is wrong, isn't it? I really hope you can check this out soon ...
2004-02-12Based on a problem report and patch from Florian Schirmer, fix a compileEric Andersen
problem with mips -- contrary to my expectation gcc on mips _always_ defines __PIC__ which breaks the assumption inherent in my code. This should fix things up.
2004-02-10Rework file naming, aiming for at least a vague level of consistancyEric Andersen
2004-02-07Thanks to Joakim's recent paches, we can now remove the FIXMEEric Andersen
2004-02-07Step one, begin shuffling things around a bitEric Andersen
2004-01-29Eliminate separate passes for _dl_copy_fixups() and _dl_fixup(), andEric Andersen
do both operations in a single pass.
2004-01-20As noted by Doru Petrescu, there was a spurious line that was usingEric Andersen
_dl_debug_addr prior to checking if it was NULL.
2003-10-15Doh! I was returning with an incorrect pointer type when dlopeningEric Andersen
already loaded libs, which unsurprisingly would cause dlsym() to not work at all... -Erik
2003-10-09When someone would dlopen a shared lib that was already opened,Eric Andersen
we would try to re-fixup the lib's relocations with rather horrible results. So fix that by checking the the dlopened lib has already had its init functions called, which will never be the case for newly loaded libs, and skip the rest in that case. also apply a few minor fixups
2003-09-02Fix a problem with dtors/dtors.Eric Andersen
2003-08-19I just realized we need global symbol resolution for everything inEric Andersen
a chain of dependent libraries or libraries that depend on other shared libraries will not work! So with a well placed dyn_chain->flags |= RTLD_GLOBAL; everything is now working perfectly!!! Sweet!!!! This patch also removes some leftover junk from my previous efforts.
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-27Run dlopened ctors and dtors in the correct orderEric Andersen
2003-03-01doh. I forgot mips can't talk to globals that early on in theEric Andersen
process. Fix that up too. -Erik
2003-02-28Fix a potential compile errorEric Andersen
2003-01-03If they call dlopen with anything other than RTLD_LAZYEric Andersen
or RTLD_NOW then we need to error out.
2002-12-12Rework things such that staticly linked applications can useEric Andersen
dlopen and have it be successful. This required moving some things out of ldso.c into readelflib1.c, and directly including hash.c and readelflib1.c into dlib.c when building the static version of the library. -Erik
2002-11-15For now, revert Ronald Wahl's change to dlopen. We need toEric Andersen
look into what is breaking dlclose() further... -Erik
2002-11-15Ronald Wahl writes:Eric Andersen
I noticed that dlclose() does not work since libraries loaded with dlopen are not marked as "loaded_file". This breaks apache with dynamic modules. I append a small fix against uClibc-0.9.16.
2002-10-16Kill a warning. Patch from Joel Coltoff <joel@wmi.com>Eric Andersen
2002-10-15Fixed 'dlopen' call for MIPS. Things seem to work swimingly. Woohoo!"Steven J. Hill"
2002-08-19missed const-ifying this one.Eric Andersen
2002-08-08For some perverse reason we were not registering destructorsEric Andersen
for dlopen'd libraries. This fixes that. -Erik
2002-08-08Move destructor attribute tagEric Andersen
2002-08-08Missed a spotEric Andersen
-Erik
2002-08-08Cleanup to avoid some undefined behaviorEric Andersen
-Erik
2002-06-05Fix up of '_dlopen' call and removal of unneeded argument in call ↵"Steven J. Hill"
'_dl_load_elf_shared_library'.
2002-05-02Patch from Tobias Anderberg <tobias.anderberg@axis.com> toEric Andersen
remove the .asm calls
2002-05-02Patch from Steven J. Hill <sjhill@realitydiluted.com>:Eric Andersen
I am very pleased to announce that the MIPS dynamic linker/loader for uClibc is now working. It works on big and little endian platforms. A few minor changes were needed to avoid breaking ldd, and since this makes some non-trivial changes, I have tested on x86, arm, and powerpc to be sure thoese arches didn't get broken. Excellent work Steven!
2002-01-11Remove the now obsolete d-link tree. Update things to copeEric Andersen
with the new naming -Erik
2001-08-11Begin removing some unnecessary inlining, and fix namingEric Andersen
of _dl_fprintf which should really be _dl_dprintf -Erik
2001-08-08This syncs things up with my local tree. Mainly changes installerEric Andersen
issues, and syns things (as far as I am willing) with Dave Schleef's tree. We may need to go another round or so, but we do seem to be converging...
2001-07-17Turn off USE_CACHE by default (so ldconfig, by default, isn'tEric Andersen
needed). Fix a stupid typo in dlib.c where I had several weak symbols set up backwards, breaking libdl (dlopen and friends), -Erik
2001-07-13Scrub up a few things I forgot. Add a few more cleanups.Eric Andersen
-Erik
2001-05-01Another cleanup. Never pass addresses as an 'int'Eric Andersen
-Erik
2001-05-01I forgot to check this in.Eric Andersen
-Erik
2001-04-24Silence a warningEric Andersen
2001-04-23Initial checkin for ld.so. This is a combination of effort from Manuel NovoaEric Andersen
III and me. I've been working on stripping out arch dependant stuff and replacing it with generic stuff whenever possible. -Erik