Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/glandium/faulty.lib
Dynamic linker for compressed libraries, with on-demand decompression
https://github.com/glandium/faulty.lib
Last synced: about 2 months ago
JSON representation
Dynamic linker for compressed libraries, with on-demand decompression
- Host: GitHub
- URL: https://github.com/glandium/faulty.lib
- Owner: glandium
- License: mpl-2.0
- Created: 2012-02-02T14:29:35.000Z (almost 13 years ago)
- Default Branch: master
- Last Pushed: 2015-04-22T05:44:21.000Z (over 9 years ago)
- Last Synced: 2023-03-12T06:29:13.223Z (almost 2 years ago)
- Language: C++
- Homepage:
- Size: 504 KB
- Stars: 12
- Watchers: 3
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README
- License: LICENSE
Awesome Lists containing this project
README
Faulty.lib is a dynamic linker with the ability to load libraries
from Zip archives. At the moment, it only works on ELF Linux systems.You can build it with the following commands:
autoreconf
./configure
makeAutomated tests can be run with `make check'.
The result of a build is a static library that provides __wrap_dlopen,
__wrap_dlerror, __wrap_dlsym, __wrap_dlclose, __wrap_dladdr functions
with the same prototypes as the dl* family of functions.Loading a library from a Zip archive is achieved by passing a specially
crafted path name to __wrap_dlopen.
Its form is `/path/to/file.zip!/subdir/library.so'.On-demand decompression of the libraries is also possible if, instead
of being normally zipped, they are first "szipped", then stored in the
Zip archive. So, instead of doing the following to put a library in the
Zip archive:
zip file.zip library.soyou first need to use the "szip" tool from the linker/ directory:
linker/szip library.so library.so.new && mv library.so.new library.soand store the resulting file in the zip:
zip -0 file.zip library.soThe library may then be loaded with the same path form as if it were
normally compressed.