Skip to content
  • Matthew Fernandez's avatar
    CMake: fix binary rpaths · 489f56c3
    Matthew Fernandez authored
    The rpath of `dot_builtins` and `gvpack` was being tweaked in order to teach
    them how to locate the plugins. But a more pervasive adjustment is needed to
    force binaries installed in a custom location to preference their own adjacent
    libraries instead system-wide ones that may also be installed.
    
    For example, diffing `ldd` output on `gvpack` across this change:
    
      …
      -libgvc.so.6 => /lib/x86_64-linux-gnu/libgvc.so.6 (0x000071f2db7ba000)
      +libgvc.so.6 => /tmp/tmp.kavVvrjrnf/bin/../lib/libgvc.so.6 (0x0000766e364ac000)
      …
      -libcgraph.so.6 => /lib/x86_64-linux-gnu/libcgraph.so.6 (0x000071f2db7a3000)
      +libcgraph.so.6 => /tmp/tmp.kavVvrjrnf/bin/../lib/libcgraph.so.6 (0x0000766e36489000)
    
    Note how prior to this change `gvpack` was incorrectly linked against the system
    libgvc and libcgraph instead of the libraries it was built with. This kind of
    mismatch can cause crashes and misbehavior, and is all the reason why Graphviz
    binaries sometimes report their version number as an older...
    489f56c3