Patchwork [v2,2/7] libdrm: Remove dependency towards X11

login
register
mail settings
Submitter Bernd Kuhls
Date Feb. 4, 2014, 6:15 p.m.
Message ID <BLU0-SMTP338F1C8C0E0E7FD631BCFC0D9AA0@phx.gbl>
Download mbox | patch
Permalink /patch/316702/
State Superseded
Headers show

Comments

Bernd Kuhls - Feb. 4, 2014, 6:15 p.m.
Signed-off-by: Bernd Kuhls <berndkuhls@hotmail.com>
---
v4: rebased v3
v3: rebased v2
v2: http://patchwork.ozlabs.org/patch/304116/ (Paul Cercueil)
v1: http://patchwork.ozlabs.org/patch/278297/ (Spenser Gilliland)

 package/libdrm/Config.in |    6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)
Arnout Vandecappelle - Feb. 5, 2014, 6:56 a.m.
On 04/02/14 19:15, Bernd Kuhls wrote:
> Signed-off-by: Bernd Kuhls <berndkuhls@hotmail.com>
> ---
> v4: rebased v3
> v3: rebased v2
> v2: http://patchwork.ozlabs.org/patch/304116/ (Paul Cercueil)
> v1: http://patchwork.ozlabs.org/patch/278297/ (Spenser Gilliland)

 Oh, something I forgot to mention in the previous patch as well: you
should keep the Signed-off-by of the two previous authors, so they get
their due credit (which is required since they published their patches
under GPL).

 Otherwise looks good to me, but one more remark below.

> 
>  package/libdrm/Config.in |    6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/package/libdrm/Config.in b/package/libdrm/Config.in
> index 4d7646b..e382a3a 100644
> --- a/package/libdrm/Config.in
> +++ b/package/libdrm/Config.in
> @@ -1,7 +1,6 @@
>  config BR2_PACKAGE_LIBDRM
>  	bool "libdrm"
>  	select BR2_PACKAGE_LIBPTHREAD_STUBS
> -	depends on BR2_PACKAGE_XORG7
>  	depends on BR2_LARGEFILE
>  	help
>  	  Direct Rendering Manager
> @@ -14,6 +13,7 @@ menu "DRM Drivers"
>  
>  config BR2_PACKAGE_LIBDRM_INTEL
>  	bool "intel"
> +	depends on BR2_PACKAGE_XORG7
>  	select BR2_PACKAGE_LIBATOMIC_OPS
>  	select BR2_PACKAGE_XLIB_LIBPCIACCESS
>  	depends on BR2_i386 || BR2_x86_64
> @@ -22,6 +22,7 @@ config BR2_PACKAGE_LIBDRM_INTEL
>  
>  config BR2_PACKAGE_LIBDRM_RADEON
>  	bool "radeon"
> +	depends on BR2_PACKAGE_XORG7
>  	select BR2_PACKAGE_LIBATOMIC_OPS
>  	select BR2_PACKAGE_XLIB_LIBPCIACCESS
>  	depends on BR2_i386 || BR2_x86_64
> @@ -30,6 +31,7 @@ config BR2_PACKAGE_LIBDRM_RADEON
>  
>  config BR2_PACKAGE_LIBDRM_NOUVEAU
>  	bool "nouveau"
> +	depends on BR2_PACKAGE_XORG7
>  	select BR2_PACKAGE_XLIB_LIBPCIACCESS
>  	depends on BR2_i386 || BR2_x86_64
>  	help
> @@ -37,6 +39,7 @@ config BR2_PACKAGE_LIBDRM_NOUVEAU
>  
>  config BR2_PACKAGE_LIBDRM_VMWGFX
>  	bool "vmwgfx"
> +	depends on BR2_PACKAGE_XORG7
>  	select BR2_PACKAGE_XLIB_LIBPCIACCESS
>  	depends on BR2_i386 || BR2_x86_64
>  	help

 So only the three experimental ARM drivers work without Xorg?

 Not for this patch, but does libdrm do anything useful when no driver is
selected? Shouldn't it have a dependency on x86 || arm so that at least
one driver can be selected?

 Regards,
 Arnout

> @@ -65,5 +68,4 @@ endmenu
>  endif
>  
>  comment "libdrm needs a toolchain w/ largefile"
> -	depends on BR2_PACKAGE_XORG7
>  	depends on !BR2_LARGEFILE
>
Bernd Kuhls - Feb. 5, 2014, 6:19 p.m.
Hi,

Arnout Vandecappelle <arnout@mind.be> wrote in
news:52F1E0A6.2060409@mind.be: 

>  So only the three experimental ARM drivers work without Xorg?

taking a closer look at the required dependencies it seems Xorg is only 
needed for the Intel driver

libdrm 2.4.52 will be compiled with:

  libkms         yes
  Intel API      no
  vmwgfx API     yes
  Radeon API     yes
  Nouveau API    yes
  OMAP API       yes
  EXYNOS API     yes
  Freedreno API  yes

When enabling the Intel API at least xlib_libpciaccess is needed:

checking for PCIACCESS... no
configure: error: Package requirements (pciaccess >= 0.10) were not met:

This is inline with what the LFS team writes:
http://www.linuxfromscratch.org/blfs/view/svn/x/libdrm.html

>  Not for this patch, but does libdrm do anything useful when no driver
>  is selected?

Honestly I do not know, but technically configure does not complain:

libdrm 2.4.52 will be compiled with:

  libkms         no
  Intel API      no
  vmwgfx API     no
  Radeon API     no
  Nouveau API    no
  OMAP API       no
  EXYNOS API     no
  Freedreno API  no

I will repost the patch containing fewer dependencies.

Regards, Bernd
Bernd Kuhls - Feb. 5, 2014, 8:35 p.m.
Arnout Vandecappelle <arnout@mind.be> wrote in
news:52F1E0A6.2060409@mind.be: 

> On 04/02/14 19:15, Bernd Kuhls wrote:
>> Signed-off-by: Bernd Kuhls
>> <berndkuhls@hotmail.com> ---
>> v4: rebased v3
>> v3: rebased v2
>> v2: http://patchwork.ozlabs.org/patch/304116/ (Paul Cercueil)
>> v1: http://patchwork.ozlabs.org/patch/278297/ (Spenser Gilliland)

Hi,

Arnout Vandecappelle <arnout@mind.be> wrote in
news:52F1E733.3030005@mind.be: 

>  This removes the following implicit dependencies (from XORG7):
>         depends on BR2_USE_WCHAR
>         depends on BR2_TOOLCHAIN_HAS_THREADS
>         depends on !BR2_PREFER_STATIC_LIB # dlopen in xlib_libX11
>  Are you sure they are no longer needed? Actually, the same is true for
> the libdrm patch that removes the XORG7 dependency.

I tested a locally revised libdrm patch; using this defconfig

BR2_x86_pentium_mmx=y
BR2_ENABLE_DEBUG=y
BR2_OPTIMIZE_2=y
BR2_TOOLCHAIN_BUILDROOT_LARGEFILE=y
# BR2_UCLIBC_INSTALL_UTILS is not set
BR2_BINUTILS_VERSION_2_23_2=y
BR2_GCC_VERSION_4_8_X=y
BR2_PACKAGE_LIBDRM=y
BR2_PACKAGE_LIBDRM_RADEON=y
BR2_PACKAGE_LIBDRM_NOUVEAU=y
BR2_PACKAGE_LIBDRM_VMWGFX=y

and compiled libdrm (w/o Intel API) even without BR2_PACKAGE_LIBATOMIC_OPS 
and without BR2_PACKAGE_XLIB_LIBPCIACCESS, so USE_WCHAR, 
TOOLCHAIN_HAS_THREADS and !BR2_PREFER_STATIC_LIB do not seem to be 
necessary for libdrm at all.

Regards, Bernd
Arnout Vandecappelle - Feb. 5, 2014, 10:49 p.m.
On 05/02/14 21:35, Bernd Kuhls wrote:
> Arnout Vandecappelle <arnout@mind.be> wrote in
> news:52F1E0A6.2060409@mind.be: 
> 
>> On 04/02/14 19:15, Bernd Kuhls wrote:
>>> Signed-off-by: Bernd Kuhls
>>> <berndkuhls@hotmail.com> ---
>>> v4: rebased v3
>>> v3: rebased v2
>>> v2: http://patchwork.ozlabs.org/patch/304116/ (Paul Cercueil)
>>> v1: http://patchwork.ozlabs.org/patch/278297/ (Spenser Gilliland)
> 
> Hi,
> 
> Arnout Vandecappelle <arnout@mind.be> wrote in
> news:52F1E733.3030005@mind.be: 
> 
>>  This removes the following implicit dependencies (from XORG7):
>>         depends on BR2_USE_WCHAR
>>         depends on BR2_TOOLCHAIN_HAS_THREADS
>>         depends on !BR2_PREFER_STATIC_LIB # dlopen in xlib_libX11
>>  Are you sure they are no longer needed? Actually, the same is true for
>> the libdrm patch that removes the XORG7 dependency.
> 
> I tested a locally revised libdrm patch; using this defconfig
> 
> BR2_x86_pentium_mmx=y
> BR2_ENABLE_DEBUG=y
> BR2_OPTIMIZE_2=y
> BR2_TOOLCHAIN_BUILDROOT_LARGEFILE=y
> # BR2_UCLIBC_INSTALL_UTILS is not set
> BR2_BINUTILS_VERSION_2_23_2=y
> BR2_GCC_VERSION_4_8_X=y
> BR2_PACKAGE_LIBDRM=y
> BR2_PACKAGE_LIBDRM_RADEON=y
> BR2_PACKAGE_LIBDRM_NOUVEAU=y
> BR2_PACKAGE_LIBDRM_VMWGFX=y
> 
> and compiled libdrm (w/o Intel API) even without BR2_PACKAGE_LIBATOMIC_OPS 
> and without BR2_PACKAGE_XLIB_LIBPCIACCESS, so USE_WCHAR, 
> TOOLCHAIN_HAS_THREADS and !BR2_PREFER_STATIC_LIB do not seem to be 
> necessary for libdrm at all.

 Great, thanks!

 Regards,
 Arnout

> 
> Regards, Bernd
> 
> _______________________________________________
> buildroot mailing list
> buildroot@busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
> 
>

Patch

diff --git a/package/libdrm/Config.in b/package/libdrm/Config.in
index 4d7646b..e382a3a 100644
--- a/package/libdrm/Config.in
+++ b/package/libdrm/Config.in
@@ -1,7 +1,6 @@ 
 config BR2_PACKAGE_LIBDRM
 	bool "libdrm"
 	select BR2_PACKAGE_LIBPTHREAD_STUBS
-	depends on BR2_PACKAGE_XORG7
 	depends on BR2_LARGEFILE
 	help
 	  Direct Rendering Manager
@@ -14,6 +13,7 @@  menu "DRM Drivers"
 
 config BR2_PACKAGE_LIBDRM_INTEL
 	bool "intel"
+	depends on BR2_PACKAGE_XORG7
 	select BR2_PACKAGE_LIBATOMIC_OPS
 	select BR2_PACKAGE_XLIB_LIBPCIACCESS
 	depends on BR2_i386 || BR2_x86_64
@@ -22,6 +22,7 @@  config BR2_PACKAGE_LIBDRM_INTEL
 
 config BR2_PACKAGE_LIBDRM_RADEON
 	bool "radeon"
+	depends on BR2_PACKAGE_XORG7
 	select BR2_PACKAGE_LIBATOMIC_OPS
 	select BR2_PACKAGE_XLIB_LIBPCIACCESS
 	depends on BR2_i386 || BR2_x86_64
@@ -30,6 +31,7 @@  config BR2_PACKAGE_LIBDRM_RADEON
 
 config BR2_PACKAGE_LIBDRM_NOUVEAU
 	bool "nouveau"
+	depends on BR2_PACKAGE_XORG7
 	select BR2_PACKAGE_XLIB_LIBPCIACCESS
 	depends on BR2_i386 || BR2_x86_64
 	help
@@ -37,6 +39,7 @@  config BR2_PACKAGE_LIBDRM_NOUVEAU
 
 config BR2_PACKAGE_LIBDRM_VMWGFX
 	bool "vmwgfx"
+	depends on BR2_PACKAGE_XORG7
 	select BR2_PACKAGE_XLIB_LIBPCIACCESS
 	depends on BR2_i386 || BR2_x86_64
 	help
@@ -65,5 +68,4 @@  endmenu
 endif
 
 comment "libdrm needs a toolchain w/ largefile"
-	depends on BR2_PACKAGE_XORG7
 	depends on !BR2_LARGEFILE