[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