-
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 |
---|---|---|
.. | ||
GL | ||
Xext | ||
Xi | ||
composite | ||
damageext | ||
dbe | ||
dix | ||
fb | ||
hw/nxagent | ||
include | ||
mi | ||
miext | ||
os | ||
randr | ||
record | ||
render | ||
xfixes | ||
xkb | ||
.gitignore | ||
Imakefile | ||
fix-miregion | ||
fix-miregion-private | ||
fix-region |