- May 19, 2017
-
-
Vivek Das Mohapatra authored
-
Vivek Das Mohapatra authored
-
Vivek Das Mohapatra authored
-
Vivek Das Mohapatra authored
-
Vivek Das Mohapatra authored
-
Vivek Das Mohapatra authored
-
- May 18, 2017
-
-
Vivek Das Mohapatra authored
-
Vivek Das Mohapatra authored
-
Vivek Das Mohapatra authored
-
Vivek Das Mohapatra authored
-
Vivek Das Mohapatra authored
-
- May 17, 2017
-
-
Vivek Das Mohapatra authored
We used to set the elf class (32 vs 64) and machine (eg EM_X86_64) from the first DSO we found in the path, but that was only ever coincidentally corect - if we had found a foreign arch (eg i386 or x32 from an x86_64 binary) then our whole link chain would have been pulled from the wrong architacture. Instead we should pick a DSO which has _already been successfully loaded_ and use that to pick only matching DSOs.
-
Vivek Das Mohapatra authored
-
Vivek Das Mohapatra authored
-
Vivek Das Mohapatra authored
-
- May 16, 2017
-
-
Vivek Das Mohapatra authored
-
Vivek Das Mohapatra authored
-
Vivek Das Mohapatra authored
-
Vivek Das Mohapatra authored
-
Vivek Das Mohapatra authored
-
Vivek Das Mohapatra authored
-
Vivek Das Mohapatra authored
-
Vivek Das Mohapatra authored
-
Vivek Das Mohapatra authored
-
Vivek Das Mohapatra authored
-
- May 15, 2017
-
-
Vivek Das Mohapatra authored
We now reserve the shim/lib<FOO>.so.c.<WHATEVER> pattern for the dependencies of the generated .so.c file. The shim/lib<FOO>.so.<WHATEVER> pattern is now used for generated intermediates. This allows two useful things: We don't occasionally get a second rebuild of the generated .so.c file due to timer resolution problems and we can depend on extra .so.c.* files if they exist and ignore them otherwise: we will need the latter as some libraries (libGL) need bespoke dlopen/dlmopen wrapper logic and others can just live with the default implementation.
-
Vivek Das Mohapatra authored
This was to help track down a weird libxcb problem.
-
Vivek Das Mohapatra authored
-
- May 12, 2017
-
-
Vivek Das Mohapatra authored
-
Vivek Das Mohapatra authored
-
Vivek Das Mohapatra authored
If a path handed to us was absolute all we need do is trasnpose it to the capsule prefix and look for it there - it makes no sense to do the usual LD_LIBRARY_PATH; /lib/:/usr/lib; ld.so.cache searches for an absolute path.
-
Vivek Das Mohapatra authored
-
Vivek Das Mohapatra authored
-
Vivek Das Mohapatra authored
Filter our RTLD_GLOBAL from our dlmopen() call flags and emit a warning. It's possible the library we are wrapping will be broken in some way after one of these calls. This is a limitation in dlmopen() vs dlopen() as of glibc 2.21
-
Vivek Das Mohapatra authored
-
Vivek Das Mohapatra authored
-
Vivek Das Mohapatra authored
-
Vivek Das Mohapatra authored
-
Vivek Das Mohapatra authored
-
- May 09, 2017
-
-
Vivek Das Mohapatra authored
The generated shim libraries (libz and libGL are included as examples) provide the same symbols as the target library but do not expose the symbols from their dependencies to other objects that link to them. They are also capable of using a filesystem tree starting somwhere other than / to get the dependencies for the target. Included are tools to help generate said proxy libraries with minimal manual intervention.
-