diff mbox series

[1/1] package/libdrm: fix build without fork

Message ID 20190310094627.20440-1-fontaine.fabrice@gmail.com
State Not Applicable
Headers show
Series [1/1] package/libdrm: fix build without fork | expand

Commit Message

Fabrice Fontaine March 10, 2019, 9:46 a.m. UTC
Fixes:
 - http://autobuild.buildroot.org/results/8d6194982c1080e173fcef8212fb06e6dc275d58

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
---
 ...-amdgpu-basic_tests.c-check-for-fork.patch | 64 +++++++++++++++++++
 1 file changed, 64 insertions(+)
 create mode 100644 package/libdrm/0004-amdgpu-basic_tests.c-check-for-fork.patch

Comments

Peter Seiderer March 10, 2019, 6:17 p.m. UTC | #1
Hello Fabrice,

On Sun, 10 Mar 2019 10:46:27 +0100, Fabrice Fontaine <fontaine.fabrice@gmail.com> wrote:

> Fixes:
>  - http://autobuild.buildroot.org/results/8d6194982c1080e173fcef8212fb06e6dc275d58
> 
> Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
> ---
>  ...-amdgpu-basic_tests.c-check-for-fork.patch | 64 +++++++++++++++++++
>  1 file changed, 64 insertions(+)
>  create mode 100644 package/libdrm/0004-amdgpu-basic_tests.c-check-for-fork.patch
> 
> diff --git a/package/libdrm/0004-amdgpu-basic_tests.c-check-for-fork.patch b/package/libdrm/0004-amdgpu-basic_tests.c-check-for-fork.patch
> new file mode 100644
> index 0000000000..806c0c0fb7buildroot@buildroot.org
> --- /dev/null
> +++ b/package/libdrm/0004-amdgpu-basic_tests.c-check-for-fork.patch
> @@ -0,0 +1,64 @@
> +From a5ba5f3c194aa68b1e944d6691ad5cbbb2766ba7 Mon Sep 17 00:00:00 2001
> +From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
> +Date: Sun, 10 Mar 2019 09:44:11 +0100
> +Subject: [PATCH libdrm] amdgpu/basic_tests.c: check for fork
> +
> +amdgpu test program use fork since
> +https://cgit.freedesktop.org/mesa/drm/commit/tests/amdgpu/basic_tests.c?id=736ef0b61cab55378202c5f49d91799cc2b99091
> +
> +However, this function is not always available so add a check for it in
> +configure.ac and use it in tests/amdgpu/basic_tests.c

Will the test succeed without fork? Maybe better disable the whole test in case
fork is not available? Or simple wait for Upstream suggestions/opinion.... ;-)

Regards,
Peter

> +
> +Fixes:
> + - http://autobuild.buildroot.org/results/8d6194982c1080e173fcef8212fb06e6dc275d58
> +
> +Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
> +[Upstream status: sent to dri-devel@lists.freedesktop.org]
> +---
> + configure.ac               | 2 ++
> + tests/amdgpu/basic_tests.c | 4 ++++
> + 2 files changed, 6 insertions(+)
> +
> +diff --git a/configure.ac b/configure.ac
> +index d72e84ad..6effb9a2 100644
> +--- a/configure.ac
> ++++ b/configure.ac
> +@@ -193,6 +193,8 @@ AC_CHECK_FUNCS([open_memstream],
> +                [AC_DEFINE([HAVE_OPEN_MEMSTREAM], 1, [Have open_memstream()])],
> +                [AC_DEFINE([HAVE_OPEN_MEMSTREAM], 0)])
> + 
> ++AC_CHECK_FUNCS([fork])
> ++
> + dnl Use lots of warning flags with with gcc and compatible compilers
> + 
> + dnl Note: if you change the following variable, the cache is automatically
> +diff --git a/tests/amdgpu/basic_tests.c b/tests/amdgpu/basic_tests.c
> +index dbae4d53..c32a1351 100644
> +--- a/tests/amdgpu/basic_tests.c
> ++++ b/tests/amdgpu/basic_tests.c
> +@@ -1646,10 +1646,12 @@ static void amdgpu_userptr_test(void)
> + 	while (j++ < sdma_write_length)
> + 		pm4[i++] = 0xdeadbeaf;
> + 
> ++#ifdef HAVE_FORK
> + 	if (!fork()) {
> + 		pm4[0] = 0x0;
> + 		exit(0);
> + 	}
> ++#endif
> + 
> + 	amdgpu_test_exec_cs_helper(context_handle,
> + 				   AMDGPU_HW_IP_DMA, 0,
> +@@ -1675,7 +1677,9 @@ static void amdgpu_userptr_test(void)
> + 	r = amdgpu_cs_ctx_free(context_handle);
> + 	CU_ASSERT_EQUAL(r, 0);
> + 
> ++#ifdef HAVE_FORK
> + 	wait(NULL);
> ++#endif
> + }
> + 
> + static void amdgpu_sync_dependency_test(void)
> +-- 
> +2.20.1
> +
Fabrice Fontaine March 11, 2019, 5:52 p.m. UTC | #2
Hello Peter,
Le dim. 10 mars 2019 à 19:18, Peter Seiderer <ps.report@gmx.net> a écrit :
>
> Hello Fabrice,
>
> On Sun, 10 Mar 2019 10:46:27 +0100, Fabrice Fontaine <fontaine.fabrice@gmail.com> wrote:
>
> > Fixes:
> >  - http://autobuild.buildroot.org/results/8d6194982c1080e173fcef8212fb06e6dc275d58
> >
> > Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
> > ---
> >  ...-amdgpu-basic_tests.c-check-for-fork.patch | 64 +++++++++++++++++++
> >  1 file changed, 64 insertions(+)
> >  create mode 100644 package/libdrm/0004-amdgpu-basic_tests.c-check-for-fork.patch
> >
> > diff --git a/package/libdrm/0004-amdgpu-basic_tests.c-check-for-fork.patch b/package/libdrm/0004-amdgpu-basic_tests.c-check-for-fork.patch
> > new file mode 100644
> > index 0000000000..806c0c0fb7buildroot@buildroot.org
> > --- /dev/null
> > +++ b/package/libdrm/0004-amdgpu-basic_tests.c-check-for-fork.patch
> > @@ -0,0 +1,64 @@
> > +From a5ba5f3c194aa68b1e944d6691ad5cbbb2766ba7 Mon Sep 17 00:00:00 2001
> > +From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
> > +Date: Sun, 10 Mar 2019 09:44:11 +0100
> > +Subject: [PATCH libdrm] amdgpu/basic_tests.c: check for fork
> > +
> > +amdgpu test program use fork since
> > +https://cgit.freedesktop.org/mesa/drm/commit/tests/amdgpu/basic_tests.c?id=736ef0b61cab55378202c5f49d91799cc2b99091
> > +
> > +However, this function is not always available so add a check for it in
> > +configure.ac and use it in tests/amdgpu/basic_tests.c
>
> Will the test succeed without fork? Maybe better disable the whole test in case
> fork is not available? Or simple wait for Upstream suggestions/opinion.... ;-)
Indeed, you were right, the test won't succeed but upstream does not
want to disable the test either:
https://patchwork.freedesktop.org/patch/291508.
Should we add a dependency on BR2_USE_MMU to libdrm and all its
reverse dependencies?
>
> Regards,
> Peter
>
> > +
> > +Fixes:
> > + - http://autobuild.buildroot.org/results/8d6194982c1080e173fcef8212fb06e6dc275d58
> > +
> > +Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
> > +[Upstream status: sent to dri-devel@lists.freedesktop.org]
> > +---
> > + configure.ac               | 2 ++
> > + tests/amdgpu/basic_tests.c | 4 ++++
> > + 2 files changed, 6 insertions(+)
> > +
> > +diff --git a/configure.ac b/configure.ac
> > +index d72e84ad..6effb9a2 100644
> > +--- a/configure.ac
> > ++++ b/configure.ac
> > +@@ -193,6 +193,8 @@ AC_CHECK_FUNCS([open_memstream],
> > +                [AC_DEFINE([HAVE_OPEN_MEMSTREAM], 1, [Have open_memstream()])],
> > +                [AC_DEFINE([HAVE_OPEN_MEMSTREAM], 0)])
> > +
> > ++AC_CHECK_FUNCS([fork])
> > ++
> > + dnl Use lots of warning flags with with gcc and compatible compilers
> > +
> > + dnl Note: if you change the following variable, the cache is automatically
> > +diff --git a/tests/amdgpu/basic_tests.c b/tests/amdgpu/basic_tests.c
> > +index dbae4d53..c32a1351 100644
> > +--- a/tests/amdgpu/basic_tests.c
> > ++++ b/tests/amdgpu/basic_tests.c
> > +@@ -1646,10 +1646,12 @@ static void amdgpu_userptr_test(void)
> > +     while (j++ < sdma_write_length)
> > +             pm4[i++] = 0xdeadbeaf;
> > +
> > ++#ifdef HAVE_FORK
> > +     if (!fork()) {
> > +             pm4[0] = 0x0;
> > +             exit(0);
> > +     }
> > ++#endif
> > +
> > +     amdgpu_test_exec_cs_helper(context_handle,
> > +                                AMDGPU_HW_IP_DMA, 0,
> > +@@ -1675,7 +1677,9 @@ static void amdgpu_userptr_test(void)
> > +     r = amdgpu_cs_ctx_free(context_handle);
> > +     CU_ASSERT_EQUAL(r, 0);
> > +
> > ++#ifdef HAVE_FORK
> > +     wait(NULL);
> > ++#endif
> > + }
> > +
> > + static void amdgpu_sync_dependency_test(void)
> > +--
> > +2.20.1
> > +
>
Best Regards,

Fabrice
Thomas Petazzoni March 11, 2019, 9:54 p.m. UTC | #3
Hello,

On Mon, 11 Mar 2019 18:52:37 +0100
Fabrice Fontaine <fontaine.fabrice@gmail.com> wrote:

> > Will the test succeed without fork? Maybe better disable the whole test in case
> > fork is not available? Or simple wait for Upstream suggestions/opinion.... ;-)  
> Indeed, you were right, the test won't succeed but upstream does not
> want to disable the test either:
> https://patchwork.freedesktop.org/patch/291508.
> Should we add a dependency on BR2_USE_MMU to libdrm and all its
> reverse dependencies?

Why on libdrm ?

As upstream said: amdgpu is never going to be used on noMMU platforms,
and the amdgpu tests are only compiled in when the amdgpu driver is
enabled. From tests/Makefile.am:

if HAVE_AMDGPU
if HAVE_CUNIT
SUBDIRS += amdgpu
endif
endif

So, just make BR2_PACKAGE_LIBDRM_AMDGPU depends on BR2_USE_MMU. Isn't
that sufficient ?

Thanks,

Thomas
Fabrice Fontaine March 11, 2019, 10:11 p.m. UTC | #4
Dear Thomas,
Le lun. 11 mars 2019 à 22:54, Thomas Petazzoni
<thomas.petazzoni@bootlin.com> a écrit :
>
> Hello,
>
> On Mon, 11 Mar 2019 18:52:37 +0100
> Fabrice Fontaine <fontaine.fabrice@gmail.com> wrote:
>
> > > Will the test succeed without fork? Maybe better disable the whole test in case
> > > fork is not available? Or simple wait for Upstream suggestions/opinion.... ;-)
> > Indeed, you were right, the test won't succeed but upstream does not
> > want to disable the test either:
> > https://patchwork.freedesktop.org/patch/291508.
> > Should we add a dependency on BR2_USE_MMU to libdrm and all its
> > reverse dependencies?
>
> Why on libdrm ?
>
> As upstream said: amdgpu is never going to be used on noMMU platforms,
> and the amdgpu tests are only compiled in when the amdgpu driver is
> enabled. From tests/Makefile.am:
>
> if HAVE_AMDGPU
> if HAVE_CUNIT
> SUBDIRS += amdgpu
> endif
> endif
>
> So, just make BR2_PACKAGE_LIBDRM_AMDGPU depends on BR2_USE_MMU. Isn't
> that sufficient ?
Indeed, I missed this one, I'll send a new patch.
>
> Thanks,
>
> Thomas
> --
> Thomas Petazzoni, CTO, Bootlin
> Embedded Linux and Kernel engineering
> https://bootlin.com
Best Regards,

Fabrice
diff mbox series

Patch

diff --git a/package/libdrm/0004-amdgpu-basic_tests.c-check-for-fork.patch b/package/libdrm/0004-amdgpu-basic_tests.c-check-for-fork.patch
new file mode 100644
index 0000000000..806c0c0fb7
--- /dev/null
+++ b/package/libdrm/0004-amdgpu-basic_tests.c-check-for-fork.patch
@@ -0,0 +1,64 @@ 
+From a5ba5f3c194aa68b1e944d6691ad5cbbb2766ba7 Mon Sep 17 00:00:00 2001
+From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+Date: Sun, 10 Mar 2019 09:44:11 +0100
+Subject: [PATCH libdrm] amdgpu/basic_tests.c: check for fork
+
+amdgpu test program use fork since
+https://cgit.freedesktop.org/mesa/drm/commit/tests/amdgpu/basic_tests.c?id=736ef0b61cab55378202c5f49d91799cc2b99091
+
+However, this function is not always available so add a check for it in
+configure.ac and use it in tests/amdgpu/basic_tests.c
+
+Fixes:
+ - http://autobuild.buildroot.org/results/8d6194982c1080e173fcef8212fb06e6dc275d58
+
+Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+[Upstream status: sent to dri-devel@lists.freedesktop.org]
+---
+ configure.ac               | 2 ++
+ tests/amdgpu/basic_tests.c | 4 ++++
+ 2 files changed, 6 insertions(+)
+
+diff --git a/configure.ac b/configure.ac
+index d72e84ad..6effb9a2 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -193,6 +193,8 @@ AC_CHECK_FUNCS([open_memstream],
+                [AC_DEFINE([HAVE_OPEN_MEMSTREAM], 1, [Have open_memstream()])],
+                [AC_DEFINE([HAVE_OPEN_MEMSTREAM], 0)])
+ 
++AC_CHECK_FUNCS([fork])
++
+ dnl Use lots of warning flags with with gcc and compatible compilers
+ 
+ dnl Note: if you change the following variable, the cache is automatically
+diff --git a/tests/amdgpu/basic_tests.c b/tests/amdgpu/basic_tests.c
+index dbae4d53..c32a1351 100644
+--- a/tests/amdgpu/basic_tests.c
++++ b/tests/amdgpu/basic_tests.c
+@@ -1646,10 +1646,12 @@ static void amdgpu_userptr_test(void)
+ 	while (j++ < sdma_write_length)
+ 		pm4[i++] = 0xdeadbeaf;
+ 
++#ifdef HAVE_FORK
+ 	if (!fork()) {
+ 		pm4[0] = 0x0;
+ 		exit(0);
+ 	}
++#endif
+ 
+ 	amdgpu_test_exec_cs_helper(context_handle,
+ 				   AMDGPU_HW_IP_DMA, 0,
+@@ -1675,7 +1677,9 @@ static void amdgpu_userptr_test(void)
+ 	r = amdgpu_cs_ctx_free(context_handle);
+ 	CU_ASSERT_EQUAL(r, 0);
+ 
++#ifdef HAVE_FORK
+ 	wait(NULL);
++#endif
+ }
+ 
+ static void amdgpu_sync_dependency_test(void)
+-- 
+2.20.1
+