[meta-freescale] [meta-fsl-arm][PATCH v2 1/5] gpu-viv-bin-mx6q: Rework package for a single backend use

Thomas Senyk thomas.senyk at pelagicore.com
Fri Apr 12 02:13:06 PDT 2013


On Thu, April 04, 2013 10:42:16 PM Otavio Salvador wrote:
> As we now provide a single backend there're no need for full set of
> packages and the binaries can use the generic names so we don't need
> to rework other applications and/or libraries to link properly.
> 
> The xf86-video-imxfb-vivante needs also to be change as the libraries
> are now under generic name so we remove the backend suffix from
> libraries so the LDFLAGS ought to be removed for the build to succeed.
> 
> Change-Id: I73cc9986babe8bb4fb0c05117c6b3d93b0470949
> Signed-off-by: Otavio Salvador <otavio at ossystems.com.br>
> ---
>  .../gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.inc          | 86
> ++++++++-------------- .../xorg-driver/xf86-video-imxfb-vivante_1.1.0.bb  |
>  3 +-
>  2 files changed, 32 insertions(+), 57 deletions(-)
> 
> diff --git a/recipes-graphics/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.inc
> b/recipes-graphics/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.inc index
> e8e491e..44f6fc9 100644
> --- a/recipes-graphics/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.inc
> +++ b/recipes-graphics/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.inc
> @@ -17,16 +17,6 @@ SRC_URI = "${FSL_MIRROR}/${PN}-${PV}.bin;fsl-eula=true \
>             file://fix-conflicting-TLS-definition.patch \
>            "
> 
> -GPU_XLIBS = "libegl-x11-mx6 libegl-x11-mx6-dev libegl-x11-mx6-dbg \
> -	libgal-x11-mx6 libgal-x11-mx6-dev libgal-x11-mx6-dbg \
> -	libvivante-x11-mx6 libvivante-x11-mx6-dev libvivante-x11-mx6-dbg \
> -	"
> -
> -GPU_DFBLIBS = "libegl-dfb-mx6 libegl-dfb-mx6-dev libegl-dfb-mx6-dbg \
> -	libgal-dfb-mx6 libgal-dfb-mx6-dev libgal-dfb-mx6-dbg \
> -	libvivante-dfb-mx6 libvivante-dfb-mx6-dev libvivante-dfb-mx6-dbg \
> -	"
> -
>  PACKAGES =+ "libclc-mx6 libclc-mx6-dev libclc-mx6-dbg \
>  	libgles-mx6 libgles-mx6-dev libgles-mx6-dbg \
>  	libgles2-mx6 libgles2-mx6-dev libgles2-mx6-dbg \
> @@ -34,12 +24,10 @@ PACKAGES =+ "libclc-mx6 libclc-mx6-dev libclc-mx6-dbg \
>  	libopencl-mx6 libopencl-mx6-dev libopencl-mx6-dbg \
>  	libopenvg-mx6 libopenvg-mx6-dev libopenvg-mx6-dbg \
>  	libvdk-mx6 libvdk-mx6-dev libvdk-mx6-dbg \
> -	libegl-fb-mx6 libegl-fb-mx6-dev libegl-fb-mx6-dbg \
> -	libgal-fb-mx6 libgal-fb-mx6-dev libgal-fb-mx6-dbg \
> -	libvivante-fb-mx6 libvivante-fb-mx6-dev libvivante-fb-mx6-dbg \
> -	${@base_contains("DISTRO_FEATURES", "x11", "${GPU_XLIBS}", "", d)} \
> -	${@base_contains("DISTRO_FEATURES", "directfb", "${GPU_DFBLIBS}", "", d)}
> \ -	"
> +	libegl-mx6 libegl-mx6-dev libegl-mx6-dbg \
> +	libgal-mx6 libgal-mx6-dev libgal-mx6-dbg \
> +	libvivante-mx6 libvivante-mx6-dev libvivante-mx6-dbg \
> +"
> 
>  USE_X11 = "${@base_contains("DISTRO_FEATURES", "x11", "yes", "no", d)}"
>  USE_DFB = "${@base_contains("DISTRO_FEATURES", "directfb", "yes", "no",
> d)}" @@ -69,12 +57,6 @@ do_install () {
>      rm -r ${D}${includedir}/GL
>      cp -axr ${S}/opt ${D}
> 
> -    # FIXME: Drop default library as we need to explicit link to one
> -    #        of supported backends
> -    rm ${D}${libdir}/libEGL.so \
> -       ${D}${libdir}/libGAL.so \
> -       ${D}${libdir}/libVIVANTE.so
> -
>      if [ "${USE_X11}" = "yes" ]; then
>          find ${D}${libdir} -name '*-dfb.so' -exec rm '{}' ';'
>          find ${D}${libdir} -name '*-fb.so' -exec rm '{}' ';'
> @@ -89,6 +71,24 @@ do_install () {
>          fi
>      fi
> 
> +    # We'll only have one backend here so we rename it to generic name
> +    # and avoid rework in other packages, when possible
> +    rm ${D}${libdir}/libEGL.so ${D}${libdir}/libGAL.so \
> +       ${D}${libdir}/libVIVANTE.so
> +
> +    renamed=
> +    for backend in x11 fb dfb; do
> +        for f in $(find ${D}${libdir} -name "*-$backend.so"); do
> +            if [ -n "$renamed" ] && [ "$renamed" != "$backend" ]; then
> +                bberror "More than one GPU backend is installed ($backend
> and $renamed)." +                exit 1
> +            fi
> +
> +            renamed=$backend
> +            mv $f $(echo $f | sed "s,-$backend\.so,.so,g")

I'd personally rather vote for a symlink then a mv.
It's nearly the same cost, but it let's people identify which implementation 
is installed (besides other things)

> +         done
> +    done
> +
>      find ${D}${libdir} -type f -exec chmod 644 {} \;
>      find ${D}${includedir} -type f -exec chmod 644 {} \;
>  }
> @@ -103,29 +103,13 @@ FILES_libclc-mx6 = "${libdir}/libCLC${SOLIBS}"
>  FILES_libclc-mx6-dev = "${includedir}/CL ${libdir}/libCLC${SOLIBSDEV}"
>  FILES_libclc-mx6-dbg = "${libdir}/.debug/libCLC${SOLIBS}"
> 
> -FILES_libegl-fb-mx6 = "${libdir}/libEGL-fb${SOLIBS}"
> -FILES_libegl-fb-mx6-dev = "${libdir}/libEGL-fb${SOLIBSDEV}"
> -FILES_libegl-fb-mx6-dbg = "${libdir}/.debug/libEGL-fb${SOLIBS}"
> -
> -FILES_libegl-x11-mx6 = "${libdir}/libEGL-x11${SOLIBS}"
> -FILES_libegl-x11-mx6-dev = "${libdir}/libEGL-x11${SOLIBSDEV}"
> -FILES_libegl-x11-mx6-dbg = "${libdir}/.debug/libEGL-x11${SOLIBS}"
> -
> -FILES_libegl-dfb-mx6 = "${libdir}/libEGL-dfb${SOLIBS}"
> -FILES_libegl-dfb-mx6-dev = "${libdir}/libEGL-dfb${SOLIBSDEV}"
> -FILES_libegl-dfb-mx6-dbg = "${libdir}/.debug/libEGL-dfb${SOLIBS}"
> -
> -FILES_libgal-fb-mx6 = "${libdir}/libGAL-fb${SOLIBS}"
> -FILES_libgal-fb-mx6-dev = "${libdir}/libGAL-fb${SOLIBSDEV}"
> -FILES_libgal-fb-mx6-dbg = "${libdir}/.debug/libGAL-fb${SOLIBS}"
> +FILES_libegl-mx6 = "${libdir}/libEGL${SOLIBS}"
> +FILES_libegl-mx6-dev = "${libdir}/libEGL${SOLIBSDEV}"
> +FILES_libegl-mx6-dbg = "${libdir}/.debug/libEGL${SOLIBS}"
> 
> -FILES_libgal-x11-mx6 = "${libdir}/libGAL-x11${SOLIBS}"
> -FILES_libgal-x11-mx6-dev = "${libdir}/libGAL-x11${SOLIBSDEV}"
> -FILES_libgal-x11-mx6-dbg = "${libdir}/.debug/libGAL-x11${SOLIBS}"
> -
> -FILES_libgal-dfb-mx6 = "${libdir}/libGAL-dfb${SOLIBS}"
> -FILES_libgal-dfb-mx6-dev = "${libdir}/libGAL-dfb${SOLIBSDEV}"
> -FILES_libgal-dfb-mx6-dbg = "${libdir}/.debug/libGAL-dfb${SOLIBS}"
> +FILES_libgal-mx6 = "${libdir}/libGAL${SOLIBS}"
> +FILES_libgal-mx6-dev = "${libdir}/libGAL${SOLIBSDEV}"
> +FILES_libgal-mx6-dbg = "${libdir}/.debug/libGAL${SOLIBS}"
> 
>  FILES_libgles-mx6 = "${libdir}/libGLESv1*${SOLIBS}
> ${libdir}/libGLES_*${SOLIBS}" FILES_libgles-mx6-dev = "${includedir}/GLES
> ${libdir}/libGLESv1*${SOLIBS} ${libdir}/libGLES_*${SOLIBSDEV}" @@ -152,17
> +136,9 @@ FILES_libvdk-mx6 = "${libdir}/libVDK${SOLIBS}"
> FILES_libvdk-mx6-dev = "${includedir}/*vdk.h ${libdir}/libVDK${SOLIBSDEV}"
> FILES_libvdk-mx6-dbg = "${libdir}/.debug/libVDK${SOLIBS}"
> 
> -FILES_libvivante-fb-mx6 = "${libdir}/libVIVANTE-fb${SOLIBS}"
> -FILES_libvivante-fb-mx6-dev = "${libdir}/libVIVANTE-fb${SOLIBSDEV}"
> -FILES_libvivante-fb-mx6-dbg = "${libdir}/.debug/libVIVANTE-fb${SOLIBS}"
> -
> -FILES_libvivante-x11-mx6 = "${libdir}/libVIVANTE-x11${SOLIBS}"
> -FILES_libvivante-x11-mx6-dev = "${libdir}/libVIVANTE-x11${SOLIBSDEV}"
> -FILES_libvivante-x11-mx6-dbg = "${libdir}/.debug/libVIVANTE-x11${SOLIBS}"
> -
> -FILES_libvivante-dfb-mx6 = "${libdir}/libVIVANTE-dfb${SOLIBS}"
> -FILES_libvivante-dfb-mx6-dev = "${libdir}/libVIVANTE-dfb${SOLIBSDEV}"
> -FILES_libvivante-dfb-mx6-dbg = "${libdir}/.debug/libVIVANTE-dfb${SOLIBS}"
> +FILES_libvivante-mx6 = "${libdir}/libVIVANTE${SOLIBS}"
> +FILES_libvivante-mx6-dev = "${libdir}/libVIVANTE${SOLIBSDEV}"
> +FILES_libvivante-mx6-dbg = "${libdir}/.debug/libVIVANTE${SOLIBS}"
> 
>  PACKAGE_ARCH = "${MACHINE_ARCH}"
>  COMPATIBLE_MACHINE = "(mx6)"
> diff --git a/recipes-graphics/xorg-driver/xf86-video-imxfb-vivante_1.1.0.bb
> b/recipes-graphics/xorg-driver/xf86-video-imxfb-vivante_1.1.0.bb index
> 28491c9..6cd8a5e 100644
> --- a/recipes-graphics/xorg-driver/xf86-video-imxfb-vivante_1.1.0.bb
> +++ b/recipes-graphics/xorg-driver/xf86-video-imxfb-vivante_1.1.0.bb
> @@ -5,7 +5,7 @@
>  require recipes-graphics/xorg-driver/xorg-driver-video.inc
> 
>  PE = "3"
> -PR = "${INC_PR}.2"
> +PR = "${INC_PR}.3"
> 
>  DEPENDS += "virtual/libx11 virtual/libgal-x11 gpu-viv-bin-mx6q"
> 
> @@ -18,7 +18,6 @@ SRC_URI[sha256sum] =
> "d53216d5f9e3f7803983ac1577d83985dfda33145e4711300f4ad5cbbe
> 
>  EXTRA_OECONF_armv7a = " --enable-neon --disable-static"
>  CFLAGS += " -I${STAGING_INCDIR}/xorg -I${STAGING_INCDIR}/drm"
> -LDFLAGS += "-lm -ldl -lX11 -lGAL-x11"
> 
>  S = "${WORKDIR}/xserver-xorg-video-imx-viv-${PV}/EXA/"



More information about the meta-freescale mailing list