summaryrefslogtreecommitdiff
path: root/ldso/include
AgeCommit message (Collapse)Author
2004-08-13Fixup PAGE_SIZE problemsEric Andersen
-Erik
2004-08-10Optimze _dl_memset() for PowerPC.Joakim Tjernlund
Other arches may also benefit from this iff it can do unaligned stores.
2004-08-10Forgot _dl_memcpy in previous checkin.Joakim Tjernlund
2004-08-10_dl_strlen,_dl_strcat,_dl_strcpy,_dl_strcmp,_dl_strncmp,Joakim Tjernlund
_dl_strchr,_dl_strrchr,_dl_strstr,_dl_memcmp: Optimize for archs which can do pre increment/decrement and load/store in one instruction.
2004-08-10_dl_get_last_path_component:Joakim Tjernlund
handle "" strings and optimze it. _dl_simple_ltoa,_dl_simple_ltoahex: Optimize for archs which can do pre increment/decrement and load/store in one instruction.
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-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-06-20Let dl-string.h include dl-sysdep.h, since it has proper include guardsEric Andersen
2004-06-19Bradley D. LaRonde writes:Eric Andersen
dl-string.h references do_rem, but do_rem is a #define in <arch>/dl-sysdep.h which is not included by dl-sysdep.h. This causes a problem in libdl: In file included from ../../ldso/include/ldso.h:27, from libdl.c:33: ../../ldso/include/dl-string.h: In function `_dl_simple_ltoa': ../../ldso/include/dl-string.h:216: warning: implicit declaration of function `do_rem' Include dl-sysdep.h in dl-string.h before using do_rem.
2004-06-12Jakub Bogusz from pld-linux dot org writes:Eric Andersen
Hello, I managed to get ldso (and thus shared linking to uClibc) to work on sparc (actually sparc64 kernel with 32-bit userspace), at least on simple "hello world" program (more complex ones not tested). Some notes on attached patch (against 0.9.26, would require some work to apply on current CVS - but I tested 0.9.26, not CVS): - ELF magic cannot be examined by _dl_strncmp so early, probably because of string constant, like on ppc/mips/sh (note that early SEND_STDERR still crashes when trying to do _dl_strlen - I suppose that string constants require relocation; but adding load_addr didn't help, just ELF header was displayed instead of crash) - mmap() is syscall6 like on ppc/mips/sh, not old i386 mmap() - for generic sparc (i.e. not sparcv8/sparcv9) gcc produces .udiv/.urem calls for unsigned integer / and % operators - so these operations must be avoided. I copied do_rem definition from arm header. But / and % are used also in _dl_simple_ltoa() and _dl_simple_ltoahex(); in ltoahex gcc optimizes it to shifts (but I think it's safer to use shifts explicitly, not rely on optimization...). I changed % in ltoa to do_rem, but as there was no do_div definition, I changed all "%d" specifiers to "%x" to avoid crashes (this changes wouldn't be needed if _dl_simple_ltoa() were fixed to not use division on sparc). - "#define SOLARIS_COMPATIBLE" in ld_sysdep.h broke ldso on Linux because of redefining _dl_linux_resolve only in some places (it was still referenced in INIT_GOT before redefinition). So _dl_linux_resolve redefinition should be moved before INIT_GOT definition or removed. - sparc64 kernel requires mmap() addresses to be aligned to 8192, not 4096, otherwise mmap() call failed - reloc_entry must be shifted by 10, not 12 (I found similar operation in glibc sources) Aside of sparc-specific fixes: - I moved some _dl_dprintf()s inside if(_dl_debug_*) conditions (to avoid debugging messages when LD_DEBUG is not defined) - it seems that there was possible off-by-one in ltoa and ltoahex? they are called with char[22] as 1st argument, and then '\0' is stored in local[22] (_before_ p decrementation)... or am I missing something? If not, fix is included in patch.
2004-05-11make certain that getpagesize() returns correct the value for mipsEric Andersen
by extracting the value from the ELF header.
2004-03-19Based on a patch from Alexandre Oliva, allow uClibc to compileEric Andersen
with __NR_mmap is not available (i.e. only __NR_mmap2)
2004-02-20Sigh. I switched the values...Eric Andersen
2004-02-20Slightly cleaner formattingEric Andersen
2004-02-17Fixup support for gcc 2.95Eric Andersen
2004-02-17Provide the ldso syscalls and string funcs earlier in the listEric Andersen
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-10Fix function prototype to match the official ELF standard hash functionEric Andersen
2004-02-10Rework file naming, aiming for at least a vague level of consistancyEric Andersen
2004-02-10Fixup the definition of _dl_open, and move some bits back where they were,Eric Andersen
till I properly finish the next step in my evil plan.
2004-02-07Split off the stuff that cannot use function into its own file,Eric Andersen
to make it easier to treat it specially while not bothering the rest of the code with the same constraints.
2004-02-07Step one, begin shuffling things around a bitEric Andersen
2004-02-06Trim trailing whitespaceEric Andersen
2004-01-29Modify interfaces for _dl_parse_relocation_information()Eric Andersen
_dl_parse_lazy_relocation_information() and _dl_parse_copy_information() so they are all consistant, allowing for future consolidation. Trim some trailing whitespace as well.
2004-01-29Scrub up use of ELF_USES_RELOCA and eliminte some unsightly ifdefsEric Andersen
2004-01-29Eliminate separate passes for _dl_copy_fixups() and _dl_fixup(), andEric Andersen
do both operations in a single pass.
2004-01-06Some badly behaved arches fail to provide a PAGE_SIZE defineEric Andersen
2003-12-17Use PAGE_SIZE rather than hard coding 4096Eric Andersen
2003-11-04Rework the config system. Better utilize the Kconfig languageEric Andersen
which should simplify enabling arbitrary architectures. -Erik
2003-10-12Always build and install ldconfigEric Andersen
2003-09-29Fix SUPPORT_LD_DEBUG_EARLY on powerpcEric 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-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