libdrm: ERESTART undefined

Thomas Klausner wiz at
Sat Apr 12 00:21:06 PDT 2014

After updating libdrm in pkgsrc, I got a bug report from David Shao

--- begin quote ---

For current cvs pkgsrc on DragonFly 3.7-DEVELOPMENT and perhaps other
BSDs, ERESTART is not defined for userland programs instead being
defined in errno.h only for

#if defined(_KERNEL) || defined(_KERNEL_STRUCTURES)

In any case the DragonFly value of (-1) for ERESTART differs from
Linux's. As DragonFly does not even implement KMS for VMWare vmx
graphics its value can basically be anything as long as it is defined.
Without some definition building libdrm 2.4.53 fails with

Making all in libkms
  CC       linux.lo
  CC       intel.lo
  CC       dumb.lo
  CC       api.lo
  CC       vmwgfx.lo
vmwgfx.c: In function 'vmwgfx_bo_create':
vmwgfx.c:107:20: error: 'ERESTART' undeclared (first use in this function)
vmwgfx.c:107:20: note: each undeclared identifier is reported only once for each function it appears in

--- end quote ---
David suggests defining ERESTART to just any value if it's
not defined, i.e.

+#ifndef ERESTART
+#define ERESTART 85

Should I do that or are there better solutions?

More information about the xorg-devel mailing list