- 20 Dec, 2017 1 commit
-
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- 08 Nov, 2017 5 commits
-
-
Simon McVittie authored
This makes the API surface area a lot smaller. We still need _int_dlopen() because we need a function per shim, with the API of dlopen(), but with an implementation that knows the capsule handle for the shim. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Now that it's the same for every capsule, we can make it a lot more streamlined. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
It turns out that all calls to capsule_relocate() wanted the same list of items, but without being able to access the arguments of the original capsule_relocate() call directly, capsule_external_dlopen() had to rely on the items being saved ("cached") in the capsule struct. By putting the items in the metadata, we can simplify that a lot. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- 07 Nov, 2017 1 commit
-
-
Vivek Das Mohapatra authored
-
- 31 Oct, 2017 1 commit
-
-
Vivek Das Mohapatra authored
-
- 30 Oct, 2017 2 commits
-
-
Vivek Das Mohapatra authored
This used to reside in the capsule handle, it's now global shared state used by all active capsules.
-
Vivek Das Mohapatra authored
ptr_list_push_addr - unconditionaly add an ElfW(Addr) ptr_list_push_ptr - unconditionaly add a void * ptr_list_contains - check if an ElfW(addr) is present ptr_list_add_ptr - add a void * only if not currently in list ptr_list_push - renamed to ptr_list_push_addr Conflicts: utils/utils.c
-
- 12 Oct, 2017 1 commit
-
-
Simon McVittie authored
The base address is a perfectly valid address, which we could dereference if we wanted to, so it should be a pointer. The start of the PT_DYNAMIC program header isn't an address (it's relative to base) so make it a mere integer. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- 11 Oct, 2017 1 commit
-
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- 02 Oct, 2017 2 commits
-
-
Vivek Das Mohapatra authored
Partially works. The capsule_relocate_except seen-it cache works. The one for capsule_relocate needs to be off for now - for some reason it makes Dungeon Defenders not work. Still faster than no seen-it filter at all though.
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- 30 Sep, 2017 4 commits
-
-
Vivek Das Mohapatra authored
We need to intercept dlopen calls made by DSOs outside the capsule so that we can update the GOTs of new DSOs as they appear (for example when libSDL dlopen()s DSOs that use libGL's symbols but don't link against it directly. In order to do this we need to wrap dlopen(), but unlike dlsym() (which we already wrap) we cannot do so unconditionally: To support this we introduce a restricted relocate call which blacklists certain DSOs.
-
Vivek Das Mohapatra authored
-
Vivek Das Mohapatra authored
This will be used to do special-case dlopen wrapping outside the capsule
-
Vivek Das Mohapatra authored
This means less code needs to be parachuted into the library using libcapsule, and less state needs to be held there - which opens the way for more than one capsule to co-exist in the same link chain. Conflicts: capsule/capsule-dlmopen.c capsule/capsule-init.c Conflicts: tests/libtest.sh
-
- 14 Sep, 2017 2 commits
-
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- 12 Sep, 2017 1 commit
-
-
Vivek Das Mohapatra authored
-
- 11 Sep, 2017 1 commit
-
-
Vivek Das Mohapatra authored
-
- 16 May, 2017 1 commit
-
-
Vivek Das Mohapatra authored
-
- 09 May, 2017 1 commit
-
-
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.
-