summaryrefslogtreecommitdiff
path: root/ldso
AgeCommit message (Collapse)Author
2002-11-19Per suggestion from Stefan Allius, change DO_MPROTECT_HACKS toEric Andersen
the more clear FORCE_SHAREABLE_TEXT_SEGMENTS.
2002-11-19Stefan Allius writes:Eric Andersen
I fixed two little bugs in ldso.c: - For LDD support we test the old environment variable LD_TRACE_LOADED_OBJECTS. - Before we init the GOT table of the dynamic loader we have to check, if we have a DT_PLTGOT entry. If DT_PLTGOT was zero we patch somthing in the header of the dynamic loader. This was the cause, why we have to enable the DO_MPROTECT_HACKS option for all targets, to avoid segment faults. In readelflib1.c I added a warning, if we try to load a shared library, which wasn't compiled with -fPIC or -fpic. So if we disable the DO_MPROTECT_HACKS option we are sure, that we don't waste memory by shared libraries which aren't able to share their text segment. I think this is a helpful option on little embedded systems.
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-11-14Add missing quotesEric Andersen
-Erik
2002-11-12A powerpc patch from Ronald Wahl:Eric Andersen
Ok, now i got it after a day of work. I have had a look into glibc and found the following: sysdeps/powerpc/dl-machine.c: ... case R_PPC_JMP_SLOT: /* It used to be that elf_machine_fixup_plt was used here, but that doesn't work when ld.so relocates itself for the second time. On the bright side, there's no need to worry about thread-safety here. */ { Elf32_Sword delta = finaladdr - (Elf32_Word) reloc_addr; ... The comment made me suspicious. The same position in uClibc looks like this: ldso/ldso/powerpc/elfinterp.c: ... case R_PPC_JMP_SLOT: { unsigned long targ_addr = (unsigned long)_dl_linux_resolve; int delta = targ_addr - (unsigned long)reloc_addr; ... When I change it to the following it works: ... case R_PPC_JMP_SLOT: { unsigned long targ_addr = *reloc_addr; int delta = targ_addr - (unsigned long)reloc_addr; ... I hope it will not break anything. Can anyone review this change and commit it into CVS? thanks, ron
2002-11-08Patch from Stefan Allius for libgcc multilib supportEric Andersen
this is the last patch, we need to make the support of multitarget libgcc complete. --------------------------------- In ldso/ldso/Makefile I added the CPU_LDFLAGS-y to the LDFLAGS --------------------------------- In libc/Makefile I set the LDFLAGS for the script get-needed-objects.sh with CPU_LDFLAGS-y --------------------------------- In extra/scripts/get-needed-object.sh we now use the LIBGCC from Rules.mak and call LD with LDFLAGS (==CPU_LDFLAGS-y). Addtionally I grep the NM output, to fix the unresolved external __GLOBAL_OFFSET_TABLE__ on SuperH targets. ---------------------------------
2002-11-08Fix a silly compile bugEric Andersen
2002-11-08Another SuperH patch from Stefan Allius. This make it soEric Andersen
the SuperH lib loader can be compiled by GCC 3.3
2002-11-06Fix up a compile errorEric Andersen
2002-11-06Cleanup patch from Simon RoweEric Andersen
2002-11-05Massive scrubbing of the shared lib loader error handling.Eric Andersen
Move all configuration options into the new config system. -Erik
2002-11-05Kill legacy DOPIC=true assignmentEric Andersen
2002-11-03Several SH lib loader patches by Stefan Allius <allius@atecom.com>Eric Andersen
and "M. R. Brown" <mrbrown@0xd6.org>
2002-11-03Patch from M. R. Brown <mrbrown@0xd6.org> to get rid ofEric Andersen
"depreciated multi-line string literals" warnings
2002-11-02Fix PIC configuration, so shared libraries once again workEric Andersen
-Erik
2002-10-31Ok, this commit is _huge_ and its gonna change the world. I'veEric Andersen
been working on a new config system on and off for about 6 months now, but I've never been fully satisfied. Well, I'm finally am happy with the new config system, so here it is. This completely removes the old uClibc configuration system, and replaces it with an entirely new system based on LinuxKernelConf, from http://www.xs4all.nl/~zippel/lc/ As it turns out, Linus has just merged LinuxKernelConf into Linux 2.5.45, so it looks like I made the right choice. I have thus far updated only x86. I'll be updating the other architectures shortly. -Erik
2002-10-30Use '#ifdef __linux__' not '#ifdef linux'Eric Andersen
2002-10-25Actually install libdl.aEric Andersen
-Erik
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-10-01This commit contains a patch from Stefan Allius <allius@atecom.com> to changeEric Andersen
how uClibc handles _init and _fini, allowing shared lib constructors and destructors to initialize things in the correct sequence. Stefan ported the SH architecture. I then ported x86, arm, and mips. x86 and arm are working fine, but I don't think I quite got things correct for mips.
2002-09-23Removed redundant code. Same thing exist in sys/syscalls.h so include thatTobias Anderberg
instead.
2002-09-19* Changed paramater names to match their register, i.e. __a -> __r10.Tobias Anderberg
* Do not clobber things that are specified as outputs.
2002-09-16Updated for the CRIS port.Tobias Anderberg
2002-09-16Initial version of the dynamic linker code for the CRIS port.Tobias Anderberg
2002-09-12Support LD_DEBUG=allTobias Anderberg
2002-09-12Add missing _dl_dprintf arguments, as noticed by Tero Lyytik�inen ↵Eric Andersen
<tero@paravant.fi>
2002-09-09Fixup multi-line stringEric Andersen
-Erik
2002-09-05Fixed another address alignment where a pagesize of 4k were assumed.Tobias Anderberg
2002-08-24Use bits/kernel_stat.h, not asm/stat.hEric Andersen
-Erik
2002-08-19missed const-ifying this one.Eric Andersen
2002-08-19some updates from Stefan Allius to make up the SuperH shared libEric Andersen
loader build properly. Mostly just sprinkling casts, and making static some things that should be static.
2002-08-12Fix alignment, minor cosmetic changesEric Andersen
-Erik
2002-08-09Ok, bad idea. didn't work.Eric Andersen
-Erik
2002-08-09Link ldso vs libgcc.a and eliminate baggage caused byEric Andersen
not previously linking vs libgcc -Erik
2002-08-09Patch from Stefan Allius, avoid compiler warnings (unused variable)Eric Andersen
2002-08-09Patch from Stefan Allius to remove obsolete printfsEric Andersen
2002-08-09Disable this code for mips, which does things quite differently...Eric Andersen
-Erik
2002-08-09Fix a stupid typo messing up powerpc supportEric Andersen
-Erik
2002-08-08For some perverse reason we were not registering destructorsEric Andersen
for dlopen'd libraries. This fixes that. -Erik
2002-08-08Make powerpc compile once againEric Andersen
-Erik
2002-08-08Move destructor attribute tagEric Andersen
2002-08-08Missed a spotEric Andersen
-Erik
2002-08-08Patch from Stefan Allius and Edie C. Dost to add SuperHEric Andersen
shared library support. This also adds some cleaner error handling, which I (Erik) then ported over to x86 and arm. In addition Stefan added the following fixes: - in hash.c was the lvalue handling of global library functions wrong. To fix this I had to change the prototype of _dl_find_hash. (==> TIS and ELF spec. Vers. 1.2) - in ldso.c was the order of the .init sections calls wrong. Before we call the initialization code of a library we have to check that all dependend libraries are already initialized. This can easily made by calling it in the revers loading order. For this I added a previous pointer chain. - in ldso.c the ELF magics wasn't checked fo PPC, MIPS and SH architecture
2002-08-08Patch from Stefan Allius and Edie C. Dost to let ldd andEric Andersen
readelf compile under solaris.
2002-08-08Make some strings constEric Andersen
-Erik
2002-08-08Cleanup to avoid some undefined behaviorEric Andersen
-Erik
2002-07-25ldso specific syscalls and userspace syscalls all in one file now."Steven J. Hill"
2002-07-25Kill cruft. Build ldd for the host system by default.Eric Andersen
-Erik