- 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>
-
Simon McVittie authored
The capsule_namespace data structure contains "borrowed" pointers to strings from all the libraries that share the namespace, and each capsule_metadata data structure contains the same "borrowed" pointers. Before we introduced capsule_namespace, this was equally true for the tree_data. This is not safe if we can unload capsules. 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
To preallocate data structures during metadata gathering, we need to know ahead of time which capsules will be sharing a namespace. If we need more flexibility later, we'll have to change from one capsule_namespace per prefix to one capsule_namespace per (prefix, discriminator) tuple, where the discriminator is something from the metadata that identifies the desired equivalence classes of libraries. (In practice it's going to be easier to bind-mount the same prefix into multiple places.) 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 enforces the following invariants: * Capsules and capsule_metadata are related 1:1 * All valid capsules are present in the list * Only valid capsules are present in the list Signed-off-by: Simon McVittie <smcv@collabora.com>
-