[PATCH] xf86drm: fix build error by udev dependency

Joonyoung Shim jy0922.shim at samsung.com
Thu May 28 23:34:00 PDT 2015


On 05/28/2015 10:02 PM, Emil Velikov wrote:
> On 28 May 2015 at 00:56, Joonyoung Shim <jy0922.shim at samsung.com> wrote:
>> The build error is introduced by commit fde496917682 ("Add device
>> enumeration interface (v4)") if don't enable udev. Can solve as check
>> UDEV dependency.
>>
>>   CC       libdrm_la-xf86drm.lo
>> xf86drm.c:66:21: fatal error: libudev.h: No such file or directory
>>  #include "libudev.h"
>>                      ^
>> compilation terminated.
>> make[2]: *** [libdrm_la-xf86drm.lo] Error 1
>>
>> Signed-off-by: Joonyoung Shim <jy0922.shim at samsung.com>
>> ---
>>  xf86drm.c | 4 ++++
>>  1 file changed, 4 insertions(+)
>>
>> diff --git a/xf86drm.c b/xf86drm.c
>> index b5a174b..4a31019 100644
>> --- a/xf86drm.c
>> +++ b/xf86drm.c
>> @@ -63,7 +63,9 @@
>>
>>  #include "xf86drm.h"
>>  #include "libdrm_macros.h"
>> +#if defined(UDEV)
> The macro you're looking for (here and below) is #if HAVE_LIBUDEV.
> 

I'm not sure it's right using HAVE_LIBUDEV instead of UDEV because
currently UDEV is used from .c file but HAVE_LIBUDEV is not.

>>  #include "libudev.h"
>> +#endif
>>
>>  #if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__)
>>  #define DRM_MAJOR 145
>> @@ -2819,6 +2821,7 @@ char *drmGetRenderDeviceNameFromFd(int fd)
>>         return drmGetMinorNameForFD(fd, DRM_NODE_RENDER);
>>  }
>>
>> +#if defined(UDEV)
>>  /**
>>  * Enumerate the GPU devices on the system
>>  *
>> @@ -2917,3 +2920,4 @@ int drmGetPciDevices(drmPciDevicePtr devSet, uint16_t vendorId)
>>
>>         return drmDevCount;
>>  }
>> +#endif
> The above change will lead to a broken library as the symbol will be
> missing. Just returning -ENOSYS when libudev is missing sounds
> reasonable imho. Although I'm more inclined to reverting the patch,
> unless we get an actual user and an implementation that does not pull
> the dependency of libudev.
> 

Sure, it's reasonable to use #if in function.


More information about the dri-devel mailing list