Skip to content

pv-adverb: Improve LD_AUDIT, LD_PRELOAD handling

Simon McVittie requested to merge wip/t29490-adverb into master
  • 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.

Edited by Simon McVittie

Merge request reports

Loading