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


Marcel Ziswiler
 

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@...>
Acked-by: Marcel Ziswiler <marcel.ziswiler@...>

---
...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@...>
+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@...>
+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@...>
+---
+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@...>
+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@...>
+Signed-off-by: Jussi Kukkonen <jussi.kukkonen@...>
+---
+ 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

Join meta-freescale@lists.yoctoproject.org to automatically receive all group messages.