summaryrefslogtreecommitdiff
path: root/ldso/libdl/libdl.c
AgeCommit message (Collapse)Author
2005-06-01Add debug printout of RTLD_GLOBAL and RTLD_NOW flag.Joakim Tjernlund
2005-06-01Initial support for both RUNPATH support.Joakim Tjernlund
RPATH sematics changed to match RUNPATH. Only difference is that RPATH is searched before LD_LIBRARY_PATH and RUNPATH after. This is not complete but better than the current mess(I think).
2005-04-23Fix dlopen to handle circular dependency libs. Wouldn't surprise me if ↵Joakim Tjernlund
something else broke. I hate libdl :(
2005-04-23Cleanup library loading.Joakim Tjernlund
2005-04-13Fix bug 214, reported by aurel. This is a major update thatJoakim Tjernlund
possibly break other apps. Please test. Send a LD_DEBUG=1 log if there is a problem.
2005-03-29Moved the addition of load address from the fast pathJoakim Tjernlund
where possible. This will also make ldso smaller. However the patch touches all archs and I have only tested PPC and x86.
2005-01-19Avoid compiler warnings.Peter Kjellerstedt
2005-01-10Fixup function prototypes to match definitions in include/dlfcn.hEric Andersen
2005-01-05fix eriks e-mail addressMike Frysinger
2004-11-17Add BIND NOW support to MIPS.Joakim Tjernlund
Mips did not honour the LD_BIND_NOW env. variable or the DT_BIND_NOW flag in the dynamic section.
2004-11-10Add RTLD_LOCAL support for dlopened libs. Reported byJoakim Tjernlund
Andrew de Quincey, who has been most helpful getting this sorted out, thanks. Thanks also to Peter Mazinger who did alot of testing. Removed all traces of dl_parse_copy_information() since it is no longer used.
2004-11-02- Remove dynamic_size from struct elf_resolve.Joakim Tjernlund
- Replace all open coded dynamic handling with a function. Reduces size. - Fold special MIPS dynamic code into the dynamic_info item. - Add RELRO support. - Support linking with "-z now". - prepare for DT_RELACOUNT/DT_RELCOUNT optimization. - Add -z now to ld.so linking, this is what ld.so does anyway so let the linker know that.
2004-10-14unmap ld.so.cache when dlopen() returns.Joakim Tjernlund
2004-10-14Don't SEGV if library not found.Joakim Tjernlund
2004-10-03This patch from Mike Frysinger, extended from an earlier patch from Peter S.Eric Andersen
Mazinger implements the changes suggested by me on the uclibc list. On Tuesday 28 September 2004 02:24 pm, Erik Andersen wrote: > What I think should be done is > > *) Someone that cares about USE_CACHE should fix that option > up to be sure it works, and give it a proper config entry > in extra/Configs/Config.in, and rename it to something > more appropriate such as LDSO_CACHE_SUPPORT. > > *) When LDSO_CACHE_SUPPORT=n, UCLIBC_RUNTIME_PREFIX /usr/X11R6/lib > should be included in the default library search path in > dl-elf.c, ldd, and ldconfig. > > *) When LDSO_CACHE_SUPPORT=y, UCLIBC_RUNTIME_PREFIX /usr/X11R6/lib > should be excluded from the default library search path in > dl-elf.c, ldd, and ldconfig, and those wishing to include > X11 stuff should add that into /etc/ld.so.conf and re-run > ldconfig. > > *) At present, LDSO_CONF and LDSO_CACHE use the same names > and same structure as glibc. This precludes > LDSO_CACHE_SUPPORT being uses in any sane fashion on a > dial glibc and uClibc system. Just as it was necessary > for use to use a different name for 'libuClibc' rather > than 'libc', and 'ld-uClibc.so.0' rather than > 'ld-linux.so.2' it seems that these configuration files > really ought to be given different names. >
2004-09-08Second attempt to fix the INIT/FINI order. This time I think I got it right :)Joakim Tjernlund
This needs testing with apps that have complex dependencies.
2004-09-07Use a more appealing name, matching the function prototypeEric Andersen
2004-09-03First attempt to fix the INIT/FINI ordering. Fingers crossed :)Joakim Tjernlund
2004-09-02Remove unused variables. From Peter Mazinger.Joakim Tjernlund
2004-08-26Let ldso find libc's malloc function and set _dl_malloc_function.Joakim Tjernlund
This removes some crap in libdl.c(and future libs which needs to access ldso functions). What do you think?
2004-08-26Added test for RTLD_GLOBAL flag in _dl_find_hash().Joakim Tjernlund
Fixed a bug in libdl.c where the RTLD_GLOBAL was assigned wronly.
2004-08-25Hopefully fix Laszlo and Jacobs dlopen problem.Joakim Tjernlund
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