- Nov 16, 2017
-
-
Simon McVittie authored
Signed-off-by: Simon McVittie <smcv@collabora.com>
-
- Nov 15, 2017
-
-
Simon McVittie authored
This makes it easier to co-install the tools in environments where libc6-dev might not be in sync across architectures. We need both bit-widths of the tools for testing in a multiarch environment. Signed-off-by: Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
libcapsule seems to work OK for Mesa, so we can seriously consider using it for that configuration. With the NVIDIA binary driver, libcapsule crashes horribly; but the benefit we can get from libcapsule is limited in that case anyway. The NVIDIA driver is binary-only, so we are going to be using the precompiled binary that matches the kernel, regardless of whether it was intended for use with our container's base OS. However, we can assume that NVIDIA compiled it with conservative glibc and libX11 dependencies, because if they hadn't, it couldn't work on older OSs and containers anyway; so we presumably don't really need to pull in newer supporting libraries, just the NVIDIA blobs. Signed-off-by: Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
For Mesa we don't need a few NVIDIA libraries, and for NVIDIA we don't need Mesa's many dependencies. In the --proposed-nvidia configuration /updates ends up empty, but we try to bind-mount it in anyway, so make sure it is at least created. Signed-off-by: Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Signed-off-by: Simon McVittie <smcv@collabora.com>
-
Vivek Das Mohapatra authored
-
- Nov 14, 2017
-
-
Vivek Das Mohapatra authored
We now do the following: call the original dlsym with the passed handle & symbol name if we found nothing, look in the capsules instead if we found a symbol, check to see if it is a shim dummy address if it was not a dummy return it if it was a dummy search the capsules for the real one and return it
-
Vivek Das Mohapatra authored
When a capsule is dlclose()d its entry in _capsule_list is set to NULL: Code iterating over _capsule_list must skip such elements.
-
- Nov 13, 2017
-
-
Simon McVittie authored
Signed-off-by: Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
In the case where we're running a Debian 9 container on a SteamOS brewmaster (basically Debian 8) host, with glibc 2.24 in the container and glibc 2.19 in the host, we have to make sure libpthread matches libc. This is because libc 2.19 exported h_errno@@GLIBC_PRIVATE which was imported by libpthread 2.19, but libc 2.24 no longer exports that private symbol. More generally, mixing versions of libraries from the same source package is very hard to justify - if we reported bugs with this configuration, upstream would be entirely justified in telling us that we needed to fix our environment and ignoring the bug report. This does reintroduce the deadlock in Debian 8 openarena, but it seems that Debian 9 openarena (Debian 9 container, SteamOS host) survives this configuration. This reverts commit 096de1aa. Signed-off-by: Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Signed-off-by: Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
This will let us install x86_64 and i386 libraries together. Use a directory layout suitable for tests/manual/gl.pl. Signed-off-by: Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
libcapsule can't work with static libraries. Signed-off-by: Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Signed-off-by: Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Signed-off-by: Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Signed-off-by: Simon McVittie <smcv@collabora.com>
-
- Nov 11, 2017
-
-
Vivek Das Mohapatra authored
libpthread.so: actually causes deadlocks [in openarena startup] if the capsule and default namespace share the same instance. librt.so: makes a race condition segfault in the openarena shutdown path much more likely to occur if shared.
-
- Nov 10, 2017
-
-
Simon McVittie authored
Signed-off-by: Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
It's undesirable to do this as part of the upstream build, because libtool doesn't let us decouple the target directory from the rpath; but we can do it in a package build. Signed-off-by: Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Signed-off-by: Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
These went into infinite loops. Signed-off-by: Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
These options were always meant to accept an argument, but didn't. Signed-off-by: Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
This protects us from potential bugs in capsule-symbols(1) by having something else to cross-check our results against. It also means we can inspect the generated shims for libraries that we do not actually have and hence cannot load, such as libGL.so.1 on autobuilders that do not have a graphics stack installed. Signed-off-by: Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Signed-off-by: Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Signed-off-by: Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
This makes examples/shim/ and tests/gl-shim.pl match what Vivek outlined in doc/Quick-Start.txt, except that the proxies are all one big Autotools project. Signed-off-by: Simon McVittie <smcv@collabora.com>
-
- Nov 09, 2017
-
-
Simon McVittie authored
Signed-off-by: Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Signed-off-by: Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Signed-off-by: Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Signed-off-by: Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
I'm used to the doc-comments being in the .c (which is how most of the gtk-doc world does it) so accidentally added duplicates. Keep the best bits from both. Signed-off-by: Simon McVittie <smcv@collabora.com>
-
- Nov 08, 2017
-
-
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
This was superseded by #include <capsule/_int_dlopen.h> (which can either be in-tree or provided by libcapsule) in commit 7d34220d. 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
The shim shouldn't be calling dlopen() anyway, so it doesn't matter whether we overwrite its dlopen relocation with a pointer to capsule_external_dlopen() or not. This makes invalid_dl_reloc_targets constant across all shims, which is advantageous, because it means we can simplify it away. 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
We cannot allow non-default implementations of it, because which capsule would get to choose the implementation? Signed-off-by: Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Signed-off-by: Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
We only need to store these once per namespace, not once per capsule that shares a namespace. Signed-off-by: Simon McVittie <smcv@collabora.com>
-