summaryrefslogtreecommitdiffstats
path: root/ldso/libdl
Commit message (Collapse)AuthorAgeFilesLines
...
* - Remove dynamic_size from struct elf_resolve.Joakim Tjernlund2004-11-021-1/+9
| | | | | | | | | | - 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.
* unmap ld.so.cache when dlopen() returns.Joakim Tjernlund2004-10-141-0/+1
|
* Don't SEGV if library not found.Joakim Tjernlund2004-10-141-10/+9
|
* This patch from Mike Frysinger, extended from an earlier patch from Peter S.Eric Andersen2004-10-032-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. >
* Second attempt to fix the INIT/FINI order. This time I think I got it right :)Joakim Tjernlund2004-09-081-26/+59
| | | | This needs testing with apps that have complex dependencies.
* Use a more appealing name, matching the function prototypeEric Andersen2004-09-071-6/+6
|
* First attempt to fix the INIT/FINI ordering. Fingers crossed :)Joakim Tjernlund2004-09-031-19/+41
|
* Remove unused variables. From Peter Mazinger.Joakim Tjernlund2004-09-021-1/+0
|
* Let ldso find libc's malloc function and set _dl_malloc_function.Joakim Tjernlund2004-08-261-8/+0
| | | | | | This removes some crap in libdl.c(and future libs which needs to access ldso functions). What do you think?
* Added test for RTLD_GLOBAL flag in _dl_find_hash().Joakim Tjernlund2004-08-261-2/+3
| | | | | Fixed a bug in libdl.c where the RTLD_GLOBAL was assigned wronly.
* Hopefully fix Laszlo and Jacobs dlopen problem.Joakim Tjernlund2004-08-251-1/+4
|
* Fix dependencies.Manuel Novoa III2004-08-191-1/+3
|
* Let ldso decide if it should relocate itselft a second time. ThisJoakim Tjernlund2004-08-172-3/+8
| | | | | | | is needed if ldso should use libcs malloc whenever possible. Fix RTLD_LAZY propagation to RTLD_NOW relocation when requested by libdl.
* Fix usage_count in ldso/libdl.Joakim Tjernlund2004-08-132-76/+35
| | | | | | | 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.
* Mike Frysinger writes:Joakim Tjernlund2004-08-101-7/+7
| | | | | | | | | | | | | | | | | in libdl, the XXFLAGS is set incorrectly if DODEBUG=y ... it has 'I.' added to it instead of '-I.' ... this of course pisses of gcc :) find attached a patch that cleans up the XXFLAGS setting so as to minimize this kind of thing ... when asked, mjn3 said it was a kosher idea ;) and later writes: hmm it seems ldso also utilizes USE_CACHE in the code (but LIBRARY_CACHE never propogates down to the Makefiles) so the fix is to add $(LIBRARY_CACHE) while setting $(XXFLAGS) Applied with minor fixes and also fixed up ldso/Makefile to match libdl/Makefile.
* This should fix the dlsym problem Peter van Hoyweghen reported.Joakim Tjernlund2004-08-091-32/+19
| | | | However RTLD_LOCAL still doesn't work. Everything is RTLD_GLOBAL.
* Teach libdl to use normal libc symbols whenever possible, i.e. mallocEric Andersen2004-07-302-56/+33
| | | | | rather than _dl_malloc, fprintf rather than _dl_printf, etc. -Erik
* Fix screwed up indentingEric Andersen2004-07-301-51/+51
|
* Revert this stuff for nowEric Andersen2004-07-161-8/+0
|
* Sigh. I got things working this morning, then checked stuff in from the wrongEric Andersen2004-07-141-0/+5
| | | | | tree. Bad boy, No doughnut. -Erik
* Based on a patch from Alexandre Oliva, make sure _dl_malloc returns a nicelyEric Andersen2004-07-141-0/+3
| | | | aligned pointer that may be aligned up to page_size. Also add _dl_free,
* update libdl so it also groks the new _dl_errnoEric Andersen2004-05-131-0/+2
|
* Per discussion with Joakim Tjernlund, all the horrible weak declarations junkEric Andersen2004-02-201-78/+96
| | | | | | 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),
* Joakim Tjernlund writes:Eric Andersen2004-02-141-2/+6
| | | | | | | | | | | | | | | | | | 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 ...
* Based on a problem report and patch from Florian Schirmer, fix a compileEric Andersen2004-02-122-4/+4
| | | | | | 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.
* Rework file naming, aiming for at least a vague level of consistancyEric Andersen2004-02-103-654/+10
|
* Thanks to Joakim's recent paches, we can now remove the FIXMEEric Andersen2004-02-072-14/+0
|
* Step one, begin shuffling things around a bitEric Andersen2004-02-072-10/+10
|
* Eliminate separate passes for _dl_copy_fixups() and _dl_fixup(), andEric Andersen2004-01-292-32/+8
| | | | do both operations in a single pass.
* As noted by Doru Petrescu, there was a spurious line that was usingEric Andersen2004-01-202-2/+0
| | | | _dl_debug_addr prior to checking if it was NULL.
* We need to link with libgcc.a when creating shared libs, in order toManuel Novoa III2004-01-161-1/+1
| | | | | avoid problems 'hidden symbol' problems. Also handle -lfloat for the soft-float arm case.
* Rework the config system. Better utilize the Kconfig languageEric Andersen2003-11-041-6/+2
| | | | | which should simplify enabling arbitrary architectures. -Erik
* Peter Kjellerstedt writes:Eric Andersen2003-10-181-2/+2
| | | | | | | | | | 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.
* Peter Kjellerstedt writes:Eric Andersen2003-10-181-4/+3
| | | | | | | 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).
* Peter Kjellerstedt writes:Eric Andersen2003-10-181-4/+4
| | | | | | | | | 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.
* Doh! I was returning with an incorrect pointer type when dlopeningEric Andersen2003-10-152-14/+14
| | | | | | already loaded libs, which unsurprisingly would cause dlsym() to not work at all... -Erik
* Enable full debug support for ld-uClibc and libdlEric Andersen2003-10-141-0/+9
|
* When someone would dlopen a shared lib that was already opened,Eric Andersen2003-10-092-24/+28
| | | | | | | | | 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
* Fix a problem with dtors/dtors.Eric Andersen2003-09-022-70/+92
|
* I just realized we need global symbol resolution for everything inEric Andersen2003-08-192-122/+10
| | | | | | | | | | | 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.
* Cool. Found most of the problem. Turns out we were inadvertanly loading someEric Andersen2003-08-192-184/+394
| | | | | | | 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.
* Phase one of my evil plan to clean up ld.so...Eric Andersen2003-08-194-187/+51
|
* Run dlopened ctors and dtors in the correct orderEric Andersen2003-06-272-8/+16
|
* doh. I forgot mips can't talk to globals that early on in theEric Andersen2003-03-012-2/+2
| | | | | process. Fix that up too. -Erik
* Fix a potential compile errorEric Andersen2003-02-282-0/+4
|
* Stefan Allius noticed dlib_pic.o was not using XXFLAGS as it shouldEric Andersen2003-01-281-1/+1
|
* If they call dlopen with anything other than RTLD_LAZYEric Andersen2003-01-032-4/+18
| | | | or RTLD_NOW then we need to error out.
* Rework things such that staticly linked applications can useEric Andersen2002-12-123-23/+87
| | | | | | | | 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
* For now, revert Ronald Wahl's change to dlopen. We need toEric Andersen2002-11-152-2/+2
| | | | | look into what is breaking dlclose() further... -Erik
* Ronald Wahl writes:Eric Andersen2002-11-152-0/+2
| | | | | | 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.