-
Notifications
You must be signed in to change notification settings - Fork 6
Fork of http://code.nsnam.org/thehajime/elf-loader/ for unlimited dlmopen namespaces
License
Unknown, LGPL-2.1 licenses found
Licenses found
Unknown
LICENSE
LGPL-2.1
COPYING.LIB
robgjansen/elf-loader
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
VDL: Virtualizing Dynamic Linker/Loader --------------------------------------- 1) What is this ? ----------------- This is an ELF dynamic linker/loader. Its purpose is to be a binary-compatible replacement of /lib/ld-linux.so.2 on a large variety of linux distributions for i386/x86-64 systems. Support for other hardware platforms is not planned but non-intrusive patches are welcome :) 2) What is its purpose ? ------------------------ I need more features from the dynamic loader than what is provided by the default glibc loader. I could have tried to hack the glibc loader but since I did not know enough about the details of how a loader work, and given the horrid complexity/lack of documentation of the glibc loader, it seemed easier to implement a new loader with the features I needed. Extra features: - unlimited number of namespaces (lmid) with dlmopen (DL_LM_NEWID) - dl_lmid_new - dl_lmid_delete - dl_lmid_add_callback - dl_lmid_add_lib_remap - dl_lmid_add_symbol_remap API documentation for these new functions in doc/dl-lmid.txt 3) What is its status ? ----------------------- Right now, this loader can load pretty complex programs, including things like evolution and firefox. Supported systems are: - fc11-64 - fc11-32 - fc12-64 - fc12-32 - ubuntu-0804-32 - ubuntu-0804-64 - ubuntu-0910-32 - ubuntu-0910-64 Other systems might work or not. If you find one which works, please, let me know. If it does not work, you can ask me to try to make it work. 4) How do I use it ? -------------------- Obviously, you need to build it first. To do this, you need some standard devel packages. On fedora: yum install gcc gcc-c++ make mercurial glibc-debuginfo On ubuntu: apt-get install gcc g++ make mercurial libc6-dbg If you have selinux enabled, you will most likely have to run a command such as this: chcon -t textrel_shlib_t '/lib/libc-2.10.2.so' Building the code: make vdl-config.h make make test If everything is allright, you should see a set of PASS statements and you should be able to start using this loader by: a. elfedit your-binary /path/to/ldso ; echo $? make sure the above returns 0 b. put /path/to/libvdl.so in LD_LIBRARY_PATH c. run your-binary LD_LOG=function is a nice debugging tool. LD_LOG=symbol-ok shows the list of symbols successfully resolved LD_LOG=symbol-fail shows the list of symbols unsuccessfully resolved
About
Fork of http://code.nsnam.org/thehajime/elf-loader/ for unlimited dlmopen namespaces
Resources
License
Unknown, LGPL-2.1 licenses found
Licenses found
Unknown
LICENSE
LGPL-2.1
COPYING.LIB
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published