pv-adverb: Improve LD_AUDIT, LD_PRELOAD handling
Compare changes
Files
3+ 20
− 8
@@ -18,8 +18,8 @@ pressure-vessel-adverb - wrap processes in various ways
@@ -70,15 +70,27 @@ exit status.
tests: Add test coverage for pv-adverb LD_AUDIT, LD_PRELOAD handling
tests: Add test coverage for passing incorrect options to pv-adverb
pv-adverb: Use a small fixed array instead of a hash table
We only have two elements and we're iterating over them linearly.
pv-adverb: Factor out ptr_array_add_unique
pv-adverb: Put LD_AUDIT, LD_PRELOAD modules in an array of structs
This restructuring will let us add fields to the struct in future, in particular for architecture-specific modules.
pv-adverb: Add an ABI to each PreloadModule
At the moment the only way for this to get populated is when we guess it for gameoverlayrenderer.so, but a future commit will add a way to set it explicitly on the command-line.
pv-adverb: Allow setting the architecture of a module in the CLI
This will allow pv-wrap to translate a host LD_PRELOAD
item like
/usr/$LIB/libMangoHud.so
into a pair of --ld-preload
options, each
looking like --ld-preload=/usr/lib32/libMangoHud.so:abi=i386-linux-gnu
.
The only character that cannot appear in a LD_PRELOAD
path entry is :
,
so we're free to use that as our representation for extra options.
Instead of just appending the ABI tuple, use a key/value notation so
we can extend later if we need to.
Factored out from !337 (merged). Fairly thoroughly tested with unit tests, but not much real-world testing yet.