diff mbox

[[imx,v2] 2/2] gpu-viv-bin-mx6q: add vivante blobs

Message ID 1403002849-28470-3-git-send-email-jabk@prevas.dk
State New
Headers show

Commit Message

Jacob Kjaergaard June 17, 2014, 11 a.m. UTC
From: Jacob Kjaergaard <jacob.kjaergaard@prevas.dk>

---
 recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.inc      |  207 ++++++++++++++++++++
 .../0001-change-header-path-to-HAL.patch           |   30 +++
 .../gpu-viv-bin-mx6q/gpu-viv-bin-mx6q/directfbrc   |   10 +
 recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q/egl.pc   |   12 ++
 .../gpu-viv-bin-mx6q/gpu-viv-bin-mx6q/egl_x11.pc   |   12 ++
 .../fix-conflicting-TLS-definition.patch           |   31 +++
 .../gc_hal_eglplatform-remove-xlib-undefs.patch    |   34 ++++
 .../gpu-viv-bin-mx6q/gc_wayland_protocol.pc        |   10 +
 .../gpu-viv-bin-mx6q/gpu-viv-bin-mx6q/glesv1_cm.pc |   12 ++
 .../gpu-viv-bin-mx6q/glesv1_cm_x11.pc              |   12 ++
 .../gpu-viv-bin-mx6q/gpu-viv-bin-mx6q/glesv2.pc    |   12 ++
 .../gpu-viv-bin-mx6q/glesv2_x11.pc                 |   12 ++
 recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q/vg.pc    |   12 ++
 .../gpu-viv-bin-mx6q/gpu-viv-bin-mx6q/vg_x11.pc    |   12 ++
 .../gpu-viv-bin-mx6q/wayland-egl.pc                |   10 +
 .../gpu-viv-bin-mx6q/wayland-viv.pc                |   10 +
 .../gpu-viv-bin-mx6q_3.10.17-1.0.0-hfp.oe          |    5 +
 .../gpu-viv-bin-mx6q_3.10.17-1.0.0-hfp.oe.sig      |    1 +
 18 files changed, 444 insertions(+)
 create mode 100644 recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.inc
 create mode 100644 recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q/0001-change-header-path-to-HAL.patch
 create mode 100644 recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q/directfbrc
 create mode 100644 recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q/egl.pc
 create mode 100644 recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q/egl_x11.pc
 create mode 100644 recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q/fix-conflicting-TLS-definition.patch
 create mode 100644 recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q/gc_hal_eglplatform-remove-xlib-undefs.patch
 create mode 100644 recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q/gc_wayland_protocol.pc
 create mode 100644 recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q/glesv1_cm.pc
 create mode 100644 recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q/glesv1_cm_x11.pc
 create mode 100644 recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q/glesv2.pc
 create mode 100644 recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q/glesv2_x11.pc
 create mode 100644 recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q/vg.pc
 create mode 100644 recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q/vg_x11.pc
 create mode 100644 recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q/wayland-egl.pc
 create mode 100644 recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q/wayland-viv.pc
 create mode 100644 recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q_3.10.17-1.0.0-hfp.oe
 create mode 100644 recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q_3.10.17-1.0.0-hfp.oe.sig
diff mbox

Patch

diff --git a/recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.inc b/recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.inc
new file mode 100644
index 0000000..4dc2e3f
--- /dev/null
+++ b/recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.inc
@@ -0,0 +1,207 @@ 
+# Copyright (C) 2012-2013 Freescale Semiconductor
+# Copyright (C) 2012-2014 O.S. Systems Software LTDA.
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+inherit fsl-eula-unpack 
+
+ACCEPT_FSL_EULA = "1"
+
+DESCRIPTION = "GPU driver and apps for imx6"
+
+DEPENDS_${PN}:>USE_x11 = " libx11 libxdamage libxext libxfixes" 
+RDEPENDS_${PN}:>USE_x11 = " libx11 libxdamage libxext libxfixes"
+
+SRC_URI = "${FSL_MIRROR}/${PN}-${PV}.bin;fsl-eula=true;unpack=fsl \
+           file://egl.pc \
+           file://egl_x11.pc \
+           file://glesv1_cm.pc \
+           file://glesv1_cm_x11.pc \
+           file://glesv2.pc \
+           file://glesv2_x11.pc \
+           file://vg.pc \
+           file://vg_x11.pc \
+           file://gc_wayland_protocol.pc \
+           file://wayland-egl.pc \
+           file://wayland-viv.pc \
+           file://directfbrc \
+          "
+
+PACKAGES =+ "libclc libclc-dev libclc-dbg \
+	libgl libgl-dev libgl-dbg \
+	libgles libgles-dev libgles-dbg \
+	libgles2 libgles2-dev libgles2-dbg \
+	libglslc libglslc-dev libglslc-dbg \
+	libopencl libopencl-dev libopencl-dbg \
+	libopenvg libopenvg-dev libopenvg-dbg \
+	libvdk libvdk-dev libvdk-dbg \
+	libegl libegl-dev libegl-dbg \
+	libgal libgal-dev libgal-dbg \
+	libvivante libvivante-dev libvivante-dbg \
+	libvivante-dri \
+	libvivante-dfb \
+	libwayland-viv libwayland-viv-dev libwayland-viv-dbg \
+	libgc-wayland-protocol libgc-wayland-protocol-dev libgc-wayland-protocol-dbg \
+	libwayland-egl-dev \
+"
+
+# FIXME: The provided binary doesn't provide soname. If in future BSP
+  # release the libraries are fixed, we can drop this hack.
+REALSOLIBS = "${SOLIBS}"
+SOLIBS = "${SOLIBSDEV}"
+ALLSOLIBS = ".so*"
+
+do_install () {
+    install -d ${D}${libdir}
+    install -d ${D}${includedir}
+
+    cp -a ${S}/usr/lib/*.so* ${D}${libdir}
+    cp -axr ${S}/usr/include/* ${D}${includedir}
+
+    #we need GL headers from mesa in stage
+    cp -axr ${HOST_SYSROOT}/usr/include/GL ${D}${includedir}/.
+    cp -axr ${S}/opt ${D}
+
+    install -d ${D}${libdir}/pkgconfig
+
+    if [ -n "$USE_x11" ]; then
+        cp -r ${S}/usr/lib/dri ${D}${libdir}
+        backend=x11
+
+        install -m 0644 ${SRCDIR}/egl_x11.pc ${D}${libdir}/pkgconfig/egl.pc
+        install -m 0644 ${SRCDIR}/glesv1_cm_x11.pc ${D}${libdir}/pkgconfig/glesv1_cm.pc
+        install -m 0644 ${SRCDIR}/glesv2_x11.pc ${D}${libdir}/pkgconfig/glesv2.pc
+        install -m 0644 ${SRCDIR}/vg_x11.pc ${D}${libdir}/pkgconfig/vg.pc
+        #FIXME: WL & X11 is not currently functional
+        #if [ -n "$USE_wl" ]; then
+        #    install -m 0644 ${SRCDIR}/gc_wayland_protocol.pc ${D}${libdir}/pkgconfig/gc_wayland_protocol.pc
+        #    install -m 0644 ${SRCDIR}/wayland-egl.pc ${D}${libdir}/pkgconfig/wayland-egl.pc
+        #    install -m 0644 ${SRCDIR}/wayland-viv.pc ${D}${libdir}/pkgconfig/wayland-viv.pc
+        #fi
+    elif [ -n "$USE_wayland" ]; then
+        backend=wl
+
+        install -m 0644 ${SRCDIR}/egl.pc ${D}${libdir}/pkgconfig/egl.pc
+        install -m 0644 ${SRCDIR}/glesv1_cm.pc ${D}${libdir}/pkgconfig/glesv1_cm.pc
+        install -m 0644 ${SRCDIR}/glesv2.pc ${D}${libdir}/pkgconfig/glesv2.pc
+        install -m 0644 ${SRCDIR}/vg.pc ${D}${libdir}/pkgconfig/vg.pc
+        install -m 0644 ${SRCDIR}/gc_wayland_protocol.pc ${D}${libdir}/pkgconfig/gc_wayland_protocol.pc
+        install -m 0644 ${SRCDIR}/wayland-egl.pc ${D}${libdir}/pkgconfig/wayland-egl.pc
+        install -m 0644 ${SRCDIR}/wayland-viv.pc ${D}${libdir}/pkgconfig/wayland-viv.pc
+    else
+        install -m 0644 ${SRCDIR}/egl.pc ${D}${libdir}/pkgconfig/egl.pc
+        install -m 0644 ${SRCDIR}/glesv1_cm.pc ${D}${libdir}/pkgconfig/glesv1_cm.pc
+        install -m 0644 ${SRCDIR}/glesv2.pc ${D}${libdir}/pkgconfig/glesv2.pc
+        install -m 0644 ${SRCDIR}/vg.pc ${D}${libdir}/pkgconfig/vg.pc
+
+        if [ "$USE_directfb" ]; then
+            install -d ${D}/${sysconfdir}
+            install -m 644 ${SRCDIR}/directfbrc ${D}/${sysconfdir}/directfbrc
+
+            cp -r ${S}/usr/lib/directfb-1.6-0 ${D}${libdir}
+            backend=dfb
+        else
+            # Regular framebuffer
+            backend=fb
+        fi
+    fi
+
+    # We'll only have one backend here so we rename it to generic name
+    # and avoid rework in other packages, when possible
+    mv ${D}${libdir}/libGL.so.1.2 ${D}${libdir}/libGL.so.1.2.0
+    ln -sf libGL.so.1.2.0 ${D}${libdir}/libGL.so.1.2
+    ln -sf libGL.so.1.2.0 ${D}${libdir}/libGL.so
+    mv ${D}${libdir}/libEGL-$backend.so ${D}${libdir}/libEGL.so.1.0
+    ln -sf libEGL.so.1.0 ${D}${libdir}/libEGL.so.1
+    ln -sf libEGL.so.1.0 ${D}${libdir}/libEGL.so
+    mv ${D}${libdir}/libGAL-$backend.so ${D}${libdir}/libGAL.so
+    mv ${D}${libdir}/libVIVANTE-$backend.so ${D}${libdir}/libVIVANTE.so
+
+    # update libglesv2 as backend dependent
+    rm -rf ${D}${libdir}/libGLESv2*
+    cp -a ${S}/usr/lib/libGLESv2-$backend.so ${D}${libdir}/libGLESv2.so.2.0.0
+    ln -sf libGLESv2.so.2.0.0 ${D}${libdir}/libGLESv2.so.2
+    ln -sf libGLESv2.so.2.0.0 ${D}${libdir}/libGLESv2.so
+
+    for backend in wl x11 fb dfb; do
+        find ${D}${libdir} -name "*-$backend.so" -exec rm '{}' ';'
+    done
+
+    find ${D}${libdir} -type f -exec chmod 644 {} \;
+    find ${D}${includedir} -type f -exec chmod 644 {} \;
+}
+
+FILES_${PN} += "/opt"
+FILES_${PN}-dev = "${includedir}"
+FILES_${PN}-dbg = "${libdir}/.debug /opt/viv_samples/*/*/.debug"
+
+FILES_libclc = "${libdir}/libCLC${SOLIBS}"
+FILES_libclc-dev = "${includedir}/CL ${libdir}/libCLC${SOLIBSDEV}"
+FILES_libclc-dbg = "${libdir}/.debug/libCLC${SOLIBS}"
+
+# libEGL.so is used by some demo apps from Freescale
+FILES_libegl = "${libdir}/libEGL${REALSOLIBS} ${libdir}/libEGL${SOLIBSDEV} ${libdir}/libEGL${ALLSOLIBS}"
+FILES_libegl-dev = "${includedir}/EGL ${includedir}/KHR ${libdir}/pkgconfig/egl.pc"
+FILES_libegl-dbg = "${libdir}/.debug/libEGL${SOLIBS}"
+
+FILES_libgal = "${libdir}/libGAL${SOLIBS}"
+FILES_libgal-dev = "${libdir}/libGAL${SOLIBSDEV}"
+FILES_libgal-dbg = "${libdir}/.debug/libGAL${SOLIBS}"
+
+FILES_libgl = "${libdir}/libGL${REALSOLIBS} ${libdir}/libGL${SOLIBS} ${libdir}/libGL${ALLSOLIBS}"
+FILES_libgl-dev = "${includedir}/GL ${libdir}/libGL${SOLIBSDEV}"
+FILES_libgl-dbg = "${libdir}/.debug/libGL.${SOLIBS}"
+DEPENDS_libgl += "libgl-dev libgal"
+RDEPENDS_libgl += "libgal"
+
+# libEGL needs to open libGLESv1.so
+FILES_libgles = "${libdir}/libGLESv1*${REALSOLIBS} ${libdir}/libGLESv1*${SOLIBS} ${libdir}/libGLES_*${SOLIBS} ${libdir}/libGLES_*${ALLSOLIBS} ${libdir}/libGLESv1_*${ALLSOLIBS}"
+FILES_libgles-dev = "${includedir}/GLES ${libdir}/libGLESv1*${SOLIBS} ${libdir}/libGLES_*${SOLIBSDEV} ${libdir}/pkgconfig/glesv1_cm.pc"
+FILES_libgles-dbg = "${libdir}/.debug/libGLESv1*${SOLIBS} ${libdir}/.debug/libGLES_*${SOLIBS}"
+
+# libEGL needs to open libGLESv2.so
+FILES_libgles2 = "${libdir}/libGLESv2${REALSOLIBS} ${libdir}/libGLESv2${SOLIBS} ${libdir}/libGLESv2${ALLSOLIBS}"
+FILES_libgles2-dev = "${includedir}/GLES2 ${libdir}/libGLESv2${SOLIBSDEV} ${libdir}/pkgconfig/glesv2.pc"
+FILES_libgles2-dbg = "${libdir}/.debug/libGLESv2${SOLIBS}"
+RDEPENDS_libgles2 = "libglslc"
+
+FILES_libglslc = "${libdir}/libGLSLC${SOLIBS}"
+FILES_libglslc-dev = "${includedir}/CL ${libdir}/libGLSLC${SOLIBSDEV}"
+FILES_libglslc-dbg = "${libdir}/.debug/libGLSLC${SOLIBS}"
+
+FILES_libopencl = "${libdir}/libOpenCL${SOLIBS}"
+FILES_libopencl-dev = "${includedir}/CL ${libdir}/libOpenCL${SOLIBSDEV}"
+FILES_libopencl-dbg = "${libdir}/.debug/libOpenCL${SOLIBS}"
+RDEPENDS_libopencl = "libclc"
+
+FILES_libopenvg = "${libdir}/libOpenVG*${SOLIBS}"
+FILES_libopenvg-dev = "${includedir}/VG ${libdir}/libOpenVG*${SOLIBSDEV} ${libdir}/pkgconfig/vg.pc"
+FILES_libopenvg-dbg = "${libdir}/.debug/libOpenVG*${SOLIBS}"
+
+FILES_libvdk = "${libdir}/libVDK${SOLIBS}"
+FILES_libvdk-dev = "${includedir}/*vdk.h ${libdir}/libVDK${SOLIBSDEV}"
+FILES_libvdk-dbg = "${libdir}/.debug/libVDK${SOLIBS}"
+
+FILES_libvivante = "${libdir}/libVIVANTE${SOLIBS}"
+FILES_libvivante-dev = "${libdir}/libVIVANTE${SOLIBSDEV}"
+FILES_libvivante-dbg = "${libdir}/.debug/libVIVANTE${SOLIBS}"
+
+FILES_libvivante-dri = "${libdir}/dri/vivante_dri.so"
+
+FILES_libvivante-dfb = "${libdir}/directfb-1.6-0/gfxdrivers/libdirectfb_gal.so"
+
+FILES_libwayland-viv =  "${libdir}/libwayland-viv${REALSOLIBS}  ${libdir}/libwayland-viv${SOLIBS} ${libdir}/libwayland-viv${ALLSOLIBS}"
+FILES_libwayland-viv-dev = "${libdir})/libwayland-viv${SOLIBSDEV} ${libdir}/pkgconfig/wayland-viv.pc"
+FILES_libwayland-viv-dbg = "${libdir}/.debug/libwayland-viv${SOLIBS}"
+
+FILES_libgc-wayland-protocol = "${libdir}/libgc_wayland_protocol${REALSOLIBS} ${libdir}/libgc_wayland_protocol${SOLIBS} ${libdir}/libgc_wayland_protocol${ALLSOLIBS}"
+FILES_libgc-wayland-protocol-dev = "${libdir}/libgc_wayland_protocol${SOLIBSDEV} ${libdir}/pkgconfig/gc_wayland_protocol.pc"
+FILES_libgc-wayland-protocol-dbg = "${libdir}/libgc_wayland_protocol${SOLIBS}"
+
+FILES_libwayland-egl-dev = "${libdir}/pkgconfig/wayland-egl.pc"
+
+FILES_libvivante-dfb += "${sysconfdir}/directfbrc"
+
+COMPATIBLE_MACHINES = ".*"
+RECIPE_FLAGS = "mx6"
+COMPATIBLE_IF_FLAGS = "mx6"
+
diff --git a/recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q/0001-change-header-path-to-HAL.patch b/recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q/0001-change-header-path-to-HAL.patch
new file mode 100644
index 0000000..dc91d7c
--- /dev/null
+++ b/recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q/0001-change-header-path-to-HAL.patch
@@ -0,0 +1,30 @@ 
+From 1a4a35678ef70283d1a31835deecd39711a9db86 Mon Sep 17 00:00:00 2001
+From: Jeremy Stashluk <jstashluk@dekaresearch.com>
+Date: Wed, 30 Jan 2013 13:16:53 -0500
+Subject: [PATCH] change header path to HAL
+
+The gpu-viv-bin-mx6q package from Freescale puts this header in the HAL
+directory under the system. I think this is a problem in the LTIB release as
+well.
+
+Upstream-Status: Pending
+
+Signed-off-by: Jeremy Stashluk <jstashluk@dekaresearch.com>
+
+---
+ usr/include/gc_vdk_types.h |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: gpu-viv-bin-mx6q-1.1.0/usr/include/gc_vdk_types.h
+===================================================================
+--- gpu-viv-bin-mx6q-1.1.0.orig/usr/include/gc_vdk_types.h
++++ gpu-viv-bin-mx6q-1.1.0/usr/include/gc_vdk_types.h
+@@ -39,7 +39,7 @@ extern "C" {
+ #endif
+ 
+ #include <EGL/egl.h>
+-#include "gc_hal_eglplatform_type.h"
++#include <HAL/gc_hal_eglplatform_type.h>
+ 
+ 
+ /*******************************************************************************
diff --git a/recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q/directfbrc b/recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q/directfbrc
new file mode 100644
index 0000000..bae398c
--- /dev/null
+++ b/recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q/directfbrc
@@ -0,0 +1,10 @@ 
+# directfbrc begin
+system=fbdev
+mode=1024x768		# display size (change to fit your needs)
+desktop-buffer-mode=frontonly		# if no double buffering in framebuffer driver
+depth=16
+pixelformat=RGB16
+#no-hardware		# disable hardware acceleration
+#no-software		# disable software fallbacks
+# directfbrc end
+
diff --git a/recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q/egl.pc b/recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q/egl.pc
new file mode 100644
index 0000000..a21922d
--- /dev/null
+++ b/recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q/egl.pc
@@ -0,0 +1,12 @@ 
+prefix=/usr
+exec_prefix=${prefix}
+libdir=/usr/lib
+includedir=/usr/include
+
+Name: egl
+Description: Vivante EGL library
+Requires.private:
+Version: 8.0
+Libs: -L${libdir} -lEGL
+Libs.private: -lm -lpthread -ldl
+Cflags: -I${includedir} -DLINUX
diff --git a/recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q/egl_x11.pc b/recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q/egl_x11.pc
new file mode 100644
index 0000000..5921583
--- /dev/null
+++ b/recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q/egl_x11.pc
@@ -0,0 +1,12 @@ 
+prefix=/usr
+exec_prefix=${prefix}
+libdir=/usr/lib
+includedir=/usr/include
+
+Name: egl
+Description: Vivante EGL library
+Requires.private: libdrm x11 xext xdamage xfixes xcb
+Version: 8.0
+Libs: -L${libdir} -lEGL
+Libs.private: -lm -lpthread -ldl
+Cflags: -I${includedir} -DLINUX
diff --git a/recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q/fix-conflicting-TLS-definition.patch b/recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q/fix-conflicting-TLS-definition.patch
new file mode 100644
index 0000000..3eac116
--- /dev/null
+++ b/recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q/fix-conflicting-TLS-definition.patch
@@ -0,0 +1,31 @@ 
+Avoid conflicting types with Xorg newer code
+
+Upstream-Status: Pending
+Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
+
+Index: gpu-viv-bin-mx6q-1.1.0/usr/include/HAL/gc_hal_base.h
+===================================================================
+--- gpu-viv-bin-mx6q-1.1.0.orig/usr/include/HAL/gc_hal_base.h
++++ gpu-viv-bin-mx6q-1.1.0/usr/include/HAL/gc_hal_base.h
+@@ -101,7 +101,7 @@ extern gcsPLS gcPLS;
+ typedef struct _gcsTLS * gcsTLS_PTR;
+ 
+ typedef void (* gctTLS_DESTRUCTOR) (
+-    gcsTLS_PTR TLS
++    gcsTLS_PTR pTLS
+     );
+ 
+ typedef struct _gcsTLS
+@@ -648,10 +648,10 @@ gcoOS_SetPLSValue(
+ /* Get access to the thread local storage. */
+ gceSTATUS
+ gcoOS_GetTLS(
+-    OUT gcsTLS_PTR * TLS
++    OUT gcsTLS_PTR * pTLS
+     );
+ 
+-    /* Copy the TLS from a source thread. */
++    /* Copy the pTLS from a source thread. */
+     gceSTATUS gcoOS_CopyTLS(IN gcsTLS_PTR Source);
+ 
+ /* Destroy the objects associated with the current thread. */
diff --git a/recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q/gc_hal_eglplatform-remove-xlib-undefs.patch b/recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q/gc_hal_eglplatform-remove-xlib-undefs.patch
new file mode 100644
index 0000000..732a073
--- /dev/null
+++ b/recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q/gc_hal_eglplatform-remove-xlib-undefs.patch
@@ -0,0 +1,34 @@ 
+From c59f9640d185759208f9d55a93b6602936dcb5e8 Mon Sep 17 00:00:00 2001
+From: Adrian Alonso <aalonso00@gmail.com>
+Date: Sat, 26 Jan 2013 17:52:04 -0600
+Subject: [PATCH 2/2] gc_hal_eglplatform: remove xlib undefs
+
+* Remove header undefs for Always and Status definitions
+
+Signed-off-by: Adrian Alonso <aalonso00@gmail.com>
+---
+ usr/include/HAL/gc_hal_eglplatform.h | 3 ---
+ 1 file changed, 3 deletions(-)
+
+diff --git a/usr/include/HAL/gc_hal_eglplatform.h b/usr/include/HAL/gc_hal_eglplatform.h
+index a968fe7..e80c65a 100644
+--- a/usr/include/HAL/gc_hal_eglplatform.h
++++ b/usr/include/HAL/gc_hal_eglplatform.h
+@@ -341,14 +341,11 @@ typedef Pixmap      HALNativePixmapType;
+ /* Rename some badly named X defines. */
+ #ifdef Status
+ #   define XStatus      int
+-#   undef Status
+ #endif
+ #ifdef Always
+ #   define XAlways      2
+-#   undef Always
+ #endif
+ #ifdef CurrentTime
+-#   undef CurrentTime
+ #   define XCurrentTime 0
+ #endif
+ 
+-- 
+1.8.1
+
diff --git a/recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q/gc_wayland_protocol.pc b/recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q/gc_wayland_protocol.pc
new file mode 100644
index 0000000..f4610ea
--- /dev/null
+++ b/recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q/gc_wayland_protocol.pc
@@ -0,0 +1,10 @@ 
+prefix=/usr
+exec_prefix=${prefix}
+libdir=${exec_prefix}/lib
+includedir=${prefix}/include
+
+Name: gc_wayland_protocol
+Description: Vivante Wayland Protocol Extension Library
+Version: 0.1
+Cflags: -I${includedir}
+Libs: -L${libdir} -lgc_wayland_protocol
diff --git a/recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q/glesv1_cm.pc b/recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q/glesv1_cm.pc
new file mode 100644
index 0000000..d97b067
--- /dev/null
+++ b/recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q/glesv1_cm.pc
@@ -0,0 +1,12 @@ 
+prefix=/usr
+exec_prefix=${prefix}
+libdir=/usr/lib
+includedir=/usr/include
+
+Name: glesv1_cm
+Description: Vivante OpenGL ES 1.1 CM library
+Requires.private:
+Version: 8.0
+Libs: -L${libdir} -lGLESv1_CM -lEGL -lGAL
+Libs.private: -lm -lpthread -ldl
+Cflags: -I${includedir}
diff --git a/recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q/glesv1_cm_x11.pc b/recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q/glesv1_cm_x11.pc
new file mode 100644
index 0000000..e801633
--- /dev/null
+++ b/recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q/glesv1_cm_x11.pc
@@ -0,0 +1,12 @@ 
+prefix=/usr
+exec_prefix=${prefix}
+libdir=/usr/lib
+includedir=/usr/include
+
+Name: glesv1_cm
+Description: Vivante OpenGL ES 1.1 CM library
+Requires.private: libdrm x11 xext xdamage xfixes xcb
+Version: 8.0
+Libs: -L${libdir} -lGLESv1_CM -lEGL -lGAL
+Libs.private: -lm -lpthread -ldl
+Cflags: -I${includedir}
diff --git a/recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q/glesv2.pc b/recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q/glesv2.pc
new file mode 100644
index 0000000..9be46f2
--- /dev/null
+++ b/recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q/glesv2.pc
@@ -0,0 +1,12 @@ 
+prefix=/usr
+exec_prefix=${prefix}
+libdir=/usr/lib
+includedir=/usr/include
+
+Name: glesv2
+Description: Vivante OpenGL ES 2.0 library
+Requires.private:
+Version: 8.0
+Libs: -L${libdir} -lGLESv2 -lEGL -lGAL
+Libs.private: -lpthread -lrt
+Cflags: -I${includedir}
diff --git a/recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q/glesv2_x11.pc b/recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q/glesv2_x11.pc
new file mode 100644
index 0000000..57ad807
--- /dev/null
+++ b/recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q/glesv2_x11.pc
@@ -0,0 +1,12 @@ 
+prefix=/usr
+exec_prefix=${prefix}
+libdir=/usr/lib
+includedir=/usr/include
+
+Name: glesv2
+Description: Vivante OpenGL ES 2.0 library
+Requires.private: libdrm x11 xext xdamage xfixes xcb
+Version: 8.0
+Libs: -L${libdir} -lGLESv2 -lEGL -lGAL
+Libs.private: -lpthread -lrt
+Cflags: -I${includedir}
diff --git a/recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q/vg.pc b/recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q/vg.pc
new file mode 100644
index 0000000..7c00def
--- /dev/null
+++ b/recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q/vg.pc
@@ -0,0 +1,12 @@ 
+prefix=/usr
+exec_prefix=${prefix}
+libdir=/usr/lib
+includedir=/usr/include
+
+Name: vg
+Description: Vivante OpenVG 1.1 library
+Requires.private:
+Version: 8.0
+Libs: -L${libdir} -lOpenVG -lEGL -lGAL
+Libs.private: -lpthread -lrt
+Cflags: -I${includedir}
diff --git a/recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q/vg_x11.pc b/recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q/vg_x11.pc
new file mode 100644
index 0000000..94fb91e
--- /dev/null
+++ b/recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q/vg_x11.pc
@@ -0,0 +1,12 @@ 
+prefix=/usr
+exec_prefix=${prefix}
+libdir=/usr/lib
+includedir=/usr/include
+
+Name: vg
+Description: Vivante OpenVG 1.1 library
+Requires.private: libdrm x11 xext xdamage xfixes xcb
+Version: 8.0
+Libs: -L${libdir} -lOpenVG -lEGL -lGAL
+Libs.private: -lpthread -lrt
+Cflags: -I${includedir}
diff --git a/recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q/wayland-egl.pc b/recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q/wayland-egl.pc
new file mode 100644
index 0000000..ba1b898
--- /dev/null
+++ b/recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q/wayland-egl.pc
@@ -0,0 +1,10 @@ 
+prefix=/usr
+exec_prefix=${prefix}
+libdir=${exec_prefix}/lib
+includedir=${prefix}/include
+
+Name: wayland-egl
+Description: Bind the driver EGL to the Wayland API
+Version: 1.0.0
+Libs: -L${libdir} -lEGL
+Cflags: -I${includedir}
diff --git a/recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q/wayland-viv.pc b/recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q/wayland-viv.pc
new file mode 100644
index 0000000..3fdedd0
--- /dev/null
+++ b/recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q/wayland-viv.pc
@@ -0,0 +1,10 @@ 
+prefix=/usr
+exec_prefix=${prefix}
+libdir=${exec_prefix}/lib
+includedir=${prefix}/include
+
+Name: Wayland Vivante Lib
+Description: Wayland server side library for Vivante's EGL driver
+Version: 0.1
+Cflags: -I${includedir}/wayland-viv
+Libs: -L${libdir} -lwayland-viv
diff --git a/recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q_3.10.17-1.0.0-hfp.oe b/recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q_3.10.17-1.0.0-hfp.oe
new file mode 100644
index 0000000..07d7203
--- /dev/null
+++ b/recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q_3.10.17-1.0.0-hfp.oe
@@ -0,0 +1,5 @@ 
+# Copyright (C) 2013, 2014 Freescale Semiconductor
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+require gpu-viv-bin-mx6q.inc
+
diff --git a/recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q_3.10.17-1.0.0-hfp.oe.sig b/recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q_3.10.17-1.0.0-hfp.oe.sig
new file mode 100644
index 0000000..670490a
--- /dev/null
+++ b/recipes/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q_3.10.17-1.0.0-hfp.oe.sig
@@ -0,0 +1 @@ 
+f7d1aac06f22c9d13914ac34a1da12d32de5feeb  gpu-viv-bin-mx6q-3.10.17-1.0.0-hfp.bin