• Mihai Moldovan's avatar
    nxagent: implement RPATH/RUNPATH override for libX11. · 26ab7b8a
    Mihai Moldovan authored
    As discussed in ArcticaProject/nx-libs#610, we need a way to load
    libNX_X11 as a fake version of libX11 into nxagent's address space.
    
    For doing so, we have to link against libX11 at build-time and specify
    a(n) RPATH/RUNPATH to our libX11 -> libNX_X11 compat symlinks.
    
    This commit is essentially doing a cross between options 3 and 4
    discussed in the provided GH issue.
    
    We link libX11 early (before specifying -Lcompat_symlinks_dir), so that
    the linker finds the "real" libX11 version with the libX11 SONAME. This
    leads to our binary depending upon both libX11 and libNX_X11 SONAMEs. We
    already always added RPATH/RUNPATH, but these values are not passed down
    to dependent libraries.
    
    What happens at run-time is that the loader searches for a libX11
    SONAME, takes RPATH/RUNPATH into account and loads our libNX_X11 library
    instead via the compat symlinks. This satisfies the libX11 SONAME and
    dependent libraries will *not* load the system libX11 version again.
    
    Debian's dpkg-shlibdeps isn't quite happy about this mismatching SONAME
    situation, so instruct to look the other way while we're minding our
    business.
    
    Fixes: ArcticaProject/nx-libs#610
    26ab7b8a
Name
Last commit
Last update
..
Xserver Loading commit data...
Imakefile Loading commit data...