[Vm-dev] [OpenSmalltalk/opensmalltalk-vm] Restore support for large cursor on linux X11 VM (#424)

David T. Lewis lewis at mail.msen.com
Thu Sep 5 01:39:23 UTC 2019

On Wed, Sep 04, 2019 at 01:59:21AM -0700, Nicolas Cellier wrote:
> I committed the generated configure.
> I have a doubt, it seems that I set the `-DHAVE_LIBXRENDER` define if I find the header,
> then check whether the library libXrender.so is required or not (and add it to `LIBS` if required).
> That does not cover the case when header would be present, but the library would be required AND absent. Should we cover that case?

For the case of a VM compiled with HAVE_LIBXRENDER, but running on a
machine that does not have the xrender library runtime, this could be
a problem.

In practice, I expect that any Linux machine with X11 will also provide
the runtime library for xrender, but that is just a guess.

To test this, I started with an interpreter VM compiled with Xrender
development libraries, and with large cursor support working. I then
removed (renamed) the following runtime libraries:


Result: The VM fails to run, and crashes:

	lewis at lewis-Gazelle-Pro:~/squeak/Squeak4.6$ squeak squeak.175
	libXrender.so.1: cannot open shared object file: No such file or directory
	could not find display driver vm-display-X11; either:
	  - check that /usr/local/lib/squeak/4.16.6-3772/vm-display-X11.so exists, or
	  - use the '-plugins <path>' option to tell me where it is, or
	  - remove DISPLAY from your environment.
	Aborted (core dumped)

Conclusion: If a VM with Xrender and large cursor support is run on
a machine that does not have the Xrender runtime libraries, it probably
will not work.

In my opinion, this is not a likely failure mode. I would expect that
machines that use X11 will also provide Xrender and other extensions
by default. But it could happen, so it is worth noting the risk.


More information about the Vm-dev mailing list