[meta-freescale] [PATCH] libdrm: Create i.MX specific version recipe to switch to use i.MX fork

Marcel Ziswiler marcel.ziswiler at toradex.com
Thu Jun 21 00:10:32 PDT 2018


Hi Otavio

BTW: That one is still missing on rocko which currently fails building!

On Wed, 2018-06-06 at 11:46 +0800, Yuqing Zhu wrote:
> This i.MX specific version is based on v2.4.84
> 
> Signed-off-by: Yuqing Zhu <carol.zhu at nxp.com>

Acked-by: Marcel Ziswiler <marcel.ziswiler at toradex.com>

> ---
>  ...ac-Allow-explicit-enabling-of-cunit-tests.patch | 56
> ++++++++++++++++++
>  .../drm/libdrm/fix_O_CLOEXEC_undeclared.patch      | 24 ++++++++
>  recipes-graphics/drm/libdrm/installtests.patch     | 25 ++++++++
>  recipes-graphics/drm/libdrm_2.4.84.imx.bb          | 66
> ++++++++++++++++++++++
>  4 files changed, 171 insertions(+)
>  create mode 100644 recipes-graphics/drm/libdrm/0001-configure.ac-
> Allow-explicit-enabling-of-cunit-tests.patch
>  create mode 100644 recipes-
> graphics/drm/libdrm/fix_O_CLOEXEC_undeclared.patch
>  create mode 100644 recipes-graphics/drm/libdrm/installtests.patch
>  create mode 100644 recipes-graphics/drm/libdrm_2.4.84.imx.bb
> 
> diff --git a/recipes-graphics/drm/libdrm/0001-configure.ac-Allow-
> explicit-enabling-of-cunit-tests.patch b/recipes-
> graphics/drm/libdrm/0001-configure.ac-Allow-explicit-enabling-of-
> cunit-tests.patch
> new file mode 100644
> index 0000000..bf52637
> --- /dev/null
> +++ b/recipes-graphics/drm/libdrm/0001-configure.ac-Allow-explicit-
> enabling-of-cunit-tests.patch
> @@ -0,0 +1,56 @@
> +From e6bd4205b0b546afe991ae6f72256645f4404ad4 Mon Sep 17 00:00:00
> 2001
> +From: Jussi Kukkonen <jussi.kukkonen at intel.com>
> +Date: Mon, 5 Sep 2016 14:41:37 +0300
> +Subject: [PATCH libdrm] configure.ac: Allow explicit enabling of
> cunit tests
> +
> +Add --with-cunit to make it easier to do reproducible builds.
> Default
> +is still to probe cunit and build opportunistically.
> +
> +Signed-off-by: Jussi Kukkonen <jussi.kukkonen at intel.com>
> +Upstream-Status: Submitted [mailing list]
> +---
> + configure.ac | 14 ++++++++++++--
> + 1 file changed, 12 insertions(+), 2 deletions(-)
> +
> +diff --git a/configure.ac b/configure.ac
> +index e3048c7..918d21d 100644
> +--- a/configure.ac
> ++++ b/configure.ac
> +@@ -137,6 +137,12 @@ AC_ARG_ENABLE(install-test-programs,
> + 		  [Install test programs (default: no)]),
> + 		  [INSTALL_TESTS=$enableval], [INSTALL_TESTS=no])
> + 
> ++AC_ARG_WITH([cunit],
> ++            [AS_HELP_STRING([--with-cunit],
> ++                            [Build tests that use cunit (default:
> auto)])],
> ++            [],
> ++            [with_cunit=auto])
> ++
> + dnl
> =====================================================================
> ======
> + dnl check compiler flags
> + AC_DEFUN([LIBDRM_CC_TRY_FLAG], [
> +@@ -372,7 +378,7 @@ if test "x$RADEON" = xyes; then
> + 	AC_DEFINE(HAVE_RADEON, 1, [Have radeon support])
> + fi
> + 
> +-if test "x$AMDGPU" != xno; then
> ++if test "x$with_cunit" != xno -a "x$AMDGPU" != xno; then
> + 	# Detect cunit library
> + 	PKG_CHECK_MODULES([CUNIT], [cunit >= 2.1],
> [have_cunit=yes], [have_cunit=no])
> + 	# If pkg-config does not find cunit, check it using
> AC_CHECK_LIB.  We
> +@@ -399,7 +406,11 @@ if test "x$AMDGPU" = xyes; then
> + 	AC_DEFINE(HAVE_CUNIT, [test "x$have_cunit" != "xno"],
> [Enable CUNIT Have amdgpu support])
> + 
> + 	if test "x$have_cunit" = "xno"; then
> +-		AC_MSG_WARN([Could not find cunit library.
> Disabling amdgpu tests])
> ++		if test "x$with_cunit" = "xyes"; then
> ++			AC_MSG_ERROR([Could not find cunit library
> but --with-cunit was given])
> ++		elif test "x$with_cunit" = "xauto"; then
> ++			AC_MSG_WARN([Could not find cunit library.
> Disabling amdgpu tests])
> ++		fi
> + 	fi
> + fi
> + 
> +-- 
> +2.1.4
> +
> diff --git a/recipes-
> graphics/drm/libdrm/fix_O_CLOEXEC_undeclared.patch b/recipes-
> graphics/drm/libdrm/fix_O_CLOEXEC_undeclared.patch
> new file mode 100644
> index 0000000..4708bf1
> --- /dev/null
> +++ b/recipes-graphics/drm/libdrm/fix_O_CLOEXEC_undeclared.patch
> @@ -0,0 +1,24 @@
> +drmdevice.c: define _GNU_SOURCE
> +
> +Include config.h to fix this build error with uclibc:
> +
> +libdrm-2.4.66/tests/drmdevice.c: In function 'main':
> +libdrm-2.4.66/tests/drmdevice.c:96:60: error:
> +'O_CLOEXEC' undeclared (first use in this function)
> +fd = open(devices[i]->nodes[j],O_RDONLY | O_CLOEXEC, 0);
> +
> +Upstream-Status: Pending
> +
> +Signed-off-by: Maxin B. John <maxin.john at intel.com>
> +---
> +diff -Naur libdrm-2.4.66-orig/tests/drmdevice.c libdrm-
> 2.4.66/tests/drmdevice.c
> +--- libdrm-2.4.66-orig/tests/drmdevice.c	2016-02-23
> 11:34:02.054904502 +0200
> ++++ libdrm-2.4.66/tests/drmdevice.c	2016-02-23
> 11:35:34.371750383 +0200
> +@@ -21,6 +21,7 @@
> +  *
> +  */
> + 
> ++#include <config.h>
> + #include <errno.h>
> + #include <stdio.h>
> + #include <stdlib.h>
> diff --git a/recipes-graphics/drm/libdrm/installtests.patch
> b/recipes-graphics/drm/libdrm/installtests.patch
> new file mode 100644
> index 0000000..ec1fb02
> --- /dev/null
> +++ b/recipes-graphics/drm/libdrm/installtests.patch
> @@ -0,0 +1,25 @@
> +From 5c6eb43c2f6e7f2ee7c25c92e42f4e4403fa0527 Mon Sep 17 00:00:00
> 2001
> +From: Jussi Kukkonen <jussi.kukkonen at intel.com>
> +Date: Tue, 21 Feb 2017 14:37:52 +0200
> +Subject: [PATCH] tests: also install test apps
> +
> +Upstream-Status: Inappropriate [configuration]
> +
> +Signed-off-by: Yu Ke <ke.yu at intel.com>
> +Signed-off-by: Jussi Kukkonen <jussi.kukkonen at intel.com>
> +---
> + tests/Makefile.am | 1 +
> + 1 file changed, 1 insertion(+)
> +
> +diff --git a/tests/Makefile.am b/tests/Makefile.am
> +index 0355a92..b4882cd 100644
> +--- a/tests/Makefile.am
> ++++ b/tests/Makefile.am
> +@@ -45,3 +45,4 @@ TESTS = \
> + check_PROGRAMS = \
> + 	$(TESTS) \
> + 	drmdevice
> ++bin_PROGRAMS = $(check_PROGRAMS)
> +-- 
> +2.1.4
> +
> diff --git a/recipes-graphics/drm/libdrm_2.4.84.imx.bb b/recipes-
> graphics/drm/libdrm_2.4.84.imx.bb
> new file mode 100644
> index 0000000..53de62b
> --- /dev/null
> +++ b/recipes-graphics/drm/libdrm_2.4.84.imx.bb
> @@ -0,0 +1,66 @@
> +SUMMARY = "Userspace interface to the kernel DRM services"
> +DESCRIPTION = "The runtime library for accessing the kernel DRM
> services.  DRM \
> +stands for \"Direct Rendering Manager\", which is the kernel portion
> of the \
> +\"Direct Rendering Infrastructure\" (DRI).  DRI is required for many
> hardware \
> +accelerated OpenGL drivers."
> +HOMEPAGE = "http://dri.freedesktop.org"
> +SECTION = "x11/base"
> +LICENSE = "MIT"
> +LIC_FILES_CHKSUM =
> "file://xf86drm.c;beginline=9;endline=32;md5=c8a3b961af7667c530816761
> e949dc71"
> +PROVIDES = "drm"
> +DEPENDS = "libpthread-stubs libpciaccess"
> +
> +IMX_LIBDRM_SRC ?= "git://source.codeaurora.org/external/imx/libdrm-
> imx.git;protocol=https"
> +IMX_LIBDRM_BRANCH = "libdrm-imx-2.4.84"
> +SRC_URI = "${IMX_LIBDRM_SRC};branch=${IMX_LIBDRM_BRANCH} \
> +           file://installtests.patch \
> +           file://fix_O_CLOEXEC_undeclared.patch \
> +           file://0001-configure.ac-Allow-explicit-enabling-of-
> cunit-tests.patch \
> +          "
> +SRC_URI_remove_mx8 = "file://drm-update-arm.patch"
> +SRCREV = "8c8c46d41839035de605291bc1c26902011a74ac"
> +
> +# IMX: Remove manpages which is added in pyro
> +#inherit autotools pkgconfig manpages
> +inherit autotools pkgconfig
> +
> +EXTRA_OECONF += "--disable-cairo-tests \
> +                 --without-cunit \
> +                 --enable-omap-experimental-api \
> +                 --enable-etnaviv-experimental-api \
> +                 --enable-install-test-programs \
> +                 --disable-valgrind \
> +                "
> +# IMX: Remove manpages which is added in pyro
> +#PACKAGECONFIG[manpages] = "--enable-manpages, --disable-manpages,
> libxslt-native xmlto-native"
> +EXTRA_OECONF += "--disable-manpages"
> +
> +ALLOW_EMPTY_${PN}-drivers = "1"
> +PACKAGES =+ "${PN}-tests ${PN}-drivers ${PN}-radeon ${PN}-nouveau
> ${PN}-omap \
> +             ${PN}-intel ${PN}-exynos ${PN}-kms ${PN}-freedreno
> ${PN}-amdgpu \
> +             ${PN}-etnaviv"
> +
> +RRECOMMENDS_${PN}-drivers = "${PN}-radeon ${PN}-nouveau ${PN}-omap
> ${PN}-intel \
> +                             ${PN}-exynos ${PN}-freedreno ${PN}-
> amdgpu \
> +                             ${PN}-etnaviv"
> +
> +FILES_${PN}-tests = "${bindir}/*"
> +FILES_${PN}-radeon = "${libdir}/libdrm_radeon.so.*"
> +FILES_${PN}-nouveau = "${libdir}/libdrm_nouveau.so.*"
> +FILES_${PN}-omap = "${libdir}/libdrm_omap.so.*"
> +FILES_${PN}-intel = "${libdir}/libdrm_intel.so.*"
> +FILES_${PN}-exynos = "${libdir}/libdrm_exynos.so.*"
> +FILES_${PN}-kms = "${libdir}/libkms*.so.*"
> +FILES_${PN}-freedreno = "${libdir}/libdrm_freedreno.so.*"
> +FILES_${PN}-amdgpu = "${libdir}/libdrm_amdgpu.so.*"
> +FILES_${PN}-etnaviv = "${libdir}/libdrm_etnaviv.so.*"
> +
> +EXTRA_OECONF_append_imxgpu = " --enable-vivante-experimental-api"
> +
> +PACKAGES_prepend_imxgpu = "${PN}-vivante "
> +
> +RRECOMMENDS_${PN}-drivers_append_imxgpu = " ${PN}-vivante"
> +
> +FILES_${PN}-vivante = "${libdir}/libdrm_vivante.so.*"
> +
> +S = "${WORKDIR}/git"
> -- 
> 1.9.1

Cheers

Marcel


More information about the meta-freescale mailing list