[PATCH rdma-core v2 3/3] configure: Add check for the presence of DRM headers
Jason Gunthorpe
jgg at ziepe.ca
Fri Feb 5 13:22:24 UTC 2021
On Thu, Feb 04, 2021 at 04:29:14PM -0800, Jianxin Xiong wrote:
> Compilation of pyverbs/dmabuf_alloc.c depends on a few DRM headers
> that are installed by either the kernel-header or the libdrm package.
> The installation is optional and the location is not unique.
>
> Check the presence of the headers at both the standard locations and
> any location defined by custom libdrm installation. If the headers
> are missing, the dmabuf allocation routines are replaced by stubs that
> return suitable error to allow the related tests to skip.
>
> Signed-off-by: Jianxin Xiong <jianxin.xiong at intel.com>
> CMakeLists.txt | 15 +++++++++++++++
> pyverbs/CMakeLists.txt | 14 ++++++++++++--
> pyverbs/dmabuf_alloc.c | 8 ++++----
> pyverbs/dmabuf_alloc_stub.c | 39 +++++++++++++++++++++++++++++++++++++++
> 4 files changed, 70 insertions(+), 6 deletions(-)
> create mode 100644 pyverbs/dmabuf_alloc_stub.c
>
> diff --git a/CMakeLists.txt b/CMakeLists.txt
> index 4113423..95aec11 100644
> +++ b/CMakeLists.txt
> @@ -515,6 +515,21 @@ find_package(Systemd)
> include_directories(${SYSTEMD_INCLUDE_DIRS})
> RDMA_DoFixup("${SYSTEMD_FOUND}" "systemd/sd-daemon.h")
>
> +# drm headers
> +
> +# First check the standard locations. The headers could have been installed
> +# by either the kernle-headers package or the libdrm package.
> +find_path(DRM_INCLUDE_DIRS "drm.h" PATH_SUFFIXES "drm" "libdrm")
Is there a reason not to just always call pkg_check_modules?
> +# Then check custom installation of libdrm
> +if (NOT DRM_INCLUDE_DIRS)
> + pkg_check_modules(DRM libdrm)
> +endif()
> +
> +if (DRM_INCLUDE_DIRS)
> + include_directories(${DRM_INCLUDE_DIRS})
> +endif()
This needs a hunk at the end:
if (NOT DRM_INCLUDE_DIRS)
message(STATUS " DMABUF NOT supported (disabling some tests)")
endif()
> #-------------------------
> # Apply fixups
>
> diff --git a/pyverbs/CMakeLists.txt b/pyverbs/CMakeLists.txt
> index 6fd7625..922253f 100644
> +++ b/pyverbs/CMakeLists.txt
> @@ -13,8 +13,6 @@ rdma_cython_module(pyverbs ""
> cmid.pyx
> cq.pyx
> device.pyx
> - dmabuf.pyx
> - dmabuf_alloc.c
> enums.pyx
> mem_alloc.pyx
> mr.pyx
> @@ -25,6 +23,18 @@ rdma_cython_module(pyverbs ""
> xrcd.pyx
> )
>
> +if (DRM_INCLUDE_DIRS)
> +rdma_cython_module(pyverbs ""
> + dmabuf.pyx
> + dmabuf_alloc.c
> +)
> +else()
> +rdma_cython_module(pyverbs ""
> + dmabuf.pyx
> + dmabuf_alloc_stub.c
> +)
> +endif()
Like this:
if (DRM_INCLUDE_DIRS)
set(DMABUF_ALLOC dmabuf_alloc.c)
else()
set(DMABUF_ALLOC dmabuf_alloc_stbub.c)
endif()
rdma_cython_module(pyverbs ""
dmabuf.pyx
$(DMABUF_ALLOC)
)
Jason
More information about the dri-devel
mailing list