Message ID | 1372174723-24943-1-git-send-email-nicolas.dechesne@linaro.org |
---|---|
State | New |
Headers | show |
On Tue, Jun 25, 2013 at 05:38:43PM +0200, Nicolas Dechesne wrote: > Extracted from "d7033f4 mesa: upgrade to 9.1.3", already merged in master: > > -- > Add EGL-Mutate-NativeDisplayType-depending-on-config.patch to build correctly in > a non-X11 environment. > > Drop fix-egl-compilation-without-x11-headers.patch as they were backports. > -- > > The new patch was also backported (trivial) to mesa 9.0.2 which is in > dylan. > > Signed-off-by: Nicolas Dechesne <nicolas.dechesne@linaro.org> > --- > meta/recipes-graphics/mesa/mesa-9.0.2.inc | 2 +- > ...ate-NativeDisplayType-depending-on-config.patch | 361 +++++++++++++++++++++ > 2 files changed, 362 insertions(+), 1 deletion(-) > create mode 100644 meta/recipes-graphics/mesa/mesa/EGL-Mutate-NativeDisplayType-depending-on-config.patch > > diff --git a/meta/recipes-graphics/mesa/mesa-9.0.2.inc b/meta/recipes-graphics/mesa/mesa-9.0.2.inc > index b88bc42..e2dcfdb 100644 > --- a/meta/recipes-graphics/mesa/mesa-9.0.2.inc > +++ b/meta/recipes-graphics/mesa/mesa-9.0.2.inc > @@ -2,7 +2,7 @@ SRC_URI = "ftp://ftp.freedesktop.org/pub/mesa/${PV}/MesaLib-${PV}.tar.bz2 \ > file://0002-cross-compile.patch \ > file://cross-glsl.patch \ > file://dont-fail-if-libX11-isnt-installed.patch \ > - file://fix-egl-compilation-without-x11-headers.patch \ > + file://EGL-Mutate-NativeDisplayType-depending-on-config.patch \ > " EGL-Mutate-NativeDisplayType-depending-on-config.patch does not cover #include "state_tracker/xlib_sw_winsys.h" in src/gallium/auxiliary/pipe-loader/pipe_loader_sw.c so builds with pipe-loader enabled and without x11 headers are still failing, the same issue is in master. > SRC_URI[md5sum] = "dc45d1192203e418163e0017640e1cfc" > diff --git a/meta/recipes-graphics/mesa/mesa/EGL-Mutate-NativeDisplayType-depending-on-config.patch b/meta/recipes-graphics/mesa/mesa/EGL-Mutate-NativeDisplayType-depending-on-config.patch > new file mode 100644 > index 0000000..98c4095 > --- /dev/null > +++ b/meta/recipes-graphics/mesa/mesa/EGL-Mutate-NativeDisplayType-depending-on-config.patch > @@ -0,0 +1,361 @@ > +From 7e5846aa52c7cb00b0db9fa393975880371d2620 Mon Sep 17 00:00:00 2001 > +From: Daniel Stone <daniel@fooishbar.org> > +Date: Fri, 24 May 2013 17:20:27 +0100 > +Subject: [PATCH] EGL: Mutate NativeDisplayType depending on config > + > +If we go through ./configure without enabling X11 anywhere, then set the > +fallback types for EGL NativeDisplay and friends, rather than assuming > +X11/Xlib. > + > +Signed-off-by: Daniel Stone <daniel@fooishbar.org> > + > +Conflicts: > + configure.ac > +--- > + configure.ac | 9 +++ > + include/EGL/eglplatform.h | 146 ------------------------------------------- > + include/EGL/eglplatform.h.in | 146 +++++++++++++++++++++++++++++++++++++++++++ > + 3 files changed, 155 insertions(+), 146 deletions(-) > + delete mode 100644 include/EGL/eglplatform.h > + create mode 100644 include/EGL/eglplatform.h.in > + > +diff --git a/configure.ac b/configure.ac > +index 682e0a5..a8a485d 100644 > +--- a/configure.ac > ++++ b/configure.ac > +@@ -1577,12 +1577,20 @@ fi > + > + EGL_PLATFORMS="$egl_platforms" > + > ++if echo "$egl_platforms" | grep 'x11' >/dev/null 2>&1; then > ++ MESA_EGL_NO_X11_HEADERS=0 > ++else > ++ MESA_EGL_NO_X11_HEADERS=1 > ++fi > ++ > + AM_CONDITIONAL(HAVE_EGL_PLATFORM_X11, echo "$egl_platforms" | grep 'x11' >/dev/null 2>&1) > + AM_CONDITIONAL(HAVE_EGL_PLATFORM_WAYLAND, echo "$egl_platforms" | grep 'wayland' >/dev/null 2>&1) > + AM_CONDITIONAL(HAVE_EGL_PLATFORM_DRM, echo "$egl_platforms" | grep 'drm' >/dev/null 2>&1) > + AM_CONDITIONAL(HAVE_EGL_PLATFORM_FBDEV, echo "$egl_platforms" | grep 'fbdev' >/dev/null 2>&1) > + AM_CONDITIONAL(HAVE_EGL_PLATFORM_NULL, echo "$egl_platforms" | grep 'null' >/dev/null 2>&1) > + > ++AC_SUBST([MESA_EGL_NO_X11_HEADERS]) > ++ > + AM_CONDITIONAL(HAVE_EGL_DRIVER_DRI2, test "x$HAVE_EGL_DRIVER_DRI2" != "x") > + AM_CONDITIONAL(HAVE_EGL_DRIVER_GLX, test "x$HAVE_EGL_DRIVER_GLX" != "x") > + > +@@ -1953,6 +1961,7 @@ CXXFLAGS="$CXXFLAGS $USER_CXXFLAGS" > + dnl Substitute the config > + AC_CONFIG_FILES([configs/current > + Makefile > ++ include/EGL/eglplatform.h > + src/egl/Makefile > + src/egl/drivers/Makefile > + src/egl/drivers/dri2/Makefile > +diff --git a/include/EGL/eglplatform.h b/include/EGL/eglplatform.h > +deleted file mode 100644 > +index 17fdc61..0000000 > +--- a/include/EGL/eglplatform.h > ++++ /dev/null > +@@ -1,146 +0,0 @@ > +-#ifndef __eglplatform_h_ > +-#define __eglplatform_h_ > +- > +-/* > +-** Copyright (c) 2007-2009 The Khronos Group Inc. > +-** > +-** Permission is hereby granted, free of charge, to any person obtaining a > +-** copy of this software and/or associated documentation files (the > +-** "Materials"), to deal in the Materials without restriction, including > +-** without limitation the rights to use, copy, modify, merge, publish, > +-** distribute, sublicense, and/or sell copies of the Materials, and to > +-** permit persons to whom the Materials are furnished to do so, subject to > +-** the following conditions: > +-** > +-** The above copyright notice and this permission notice shall be included > +-** in all copies or substantial portions of the Materials. > +-** > +-** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, > +-** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF > +-** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. > +-** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY > +-** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, > +-** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE > +-** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. > +-*/ > +- > +-/* Platform-specific types and definitions for egl.h > +- * $Revision: 12306 $ on $Date: 2010-08-25 09:51:28 -0700 (Wed, 25 Aug 2010) $ > +- * > +- * Adopters may modify khrplatform.h and this file to suit their platform. > +- * You are encouraged to submit all modifications to the Khronos group so that > +- * they can be included in future versions of this file. Please submit changes > +- * by sending them to the public Khronos Bugzilla (http://khronos.org/bugzilla) > +- * by filing a bug against product "EGL" component "Registry". > +- */ > +- > +-#include <KHR/khrplatform.h> > +- > +-/* Macros used in EGL function prototype declarations. > +- * > +- * EGL functions should be prototyped as: > +- * > +- * EGLAPI return-type EGLAPIENTRY eglFunction(arguments); > +- * typedef return-type (EXPAPIENTRYP PFNEGLFUNCTIONPROC) (arguments); > +- * > +- * KHRONOS_APICALL and KHRONOS_APIENTRY are defined in KHR/khrplatform.h > +- */ > +- > +-#ifndef EGLAPI > +-#define EGLAPI KHRONOS_APICALL > +-#endif > +- > +-#ifndef EGLAPIENTRY > +-#define EGLAPIENTRY KHRONOS_APIENTRY > +-#endif > +-#define EGLAPIENTRYP EGLAPIENTRY* > +- > +-/* The types NativeDisplayType, NativeWindowType, and NativePixmapType > +- * are aliases of window-system-dependent types, such as X Display * or > +- * Windows Device Context. They must be defined in platform-specific > +- * code below. The EGL-prefixed versions of Native*Type are the same > +- * types, renamed in EGL 1.3 so all types in the API start with "EGL". > +- * > +- * Khronos STRONGLY RECOMMENDS that you use the default definitions > +- * provided below, since these changes affect both binary and source > +- * portability of applications using EGL running on different EGL > +- * implementations. > +- */ > +- > +-#if defined(_WIN32) || defined(__VC32__) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) /* Win32 and WinCE */ > +-#ifndef WIN32_LEAN_AND_MEAN > +-#define WIN32_LEAN_AND_MEAN 1 > +-#endif > +-#include <windows.h> > +- > +-typedef HDC EGLNativeDisplayType; > +-typedef HBITMAP EGLNativePixmapType; > +-typedef HWND EGLNativeWindowType; > +- > +-#elif defined(__WINSCW__) || defined(__SYMBIAN32__) /* Symbian */ > +- > +-typedef int EGLNativeDisplayType; > +-typedef void *EGLNativeWindowType; > +-typedef void *EGLNativePixmapType; > +- > +-#elif defined(WL_EGL_PLATFORM) > +- > +-typedef struct wl_display *EGLNativeDisplayType; > +-typedef struct wl_egl_pixmap *EGLNativePixmapType; > +-typedef struct wl_egl_window *EGLNativeWindowType; > +- > +-#elif defined(__GBM__) > +- > +-typedef struct gbm_device *EGLNativeDisplayType; > +-typedef struct gbm_bo *EGLNativePixmapType; > +-typedef void *EGLNativeWindowType; > +- > +-#elif defined(ANDROID) /* Android */ > +- > +-struct ANativeWindow; > +-struct egl_native_pixmap_t; > +- > +-typedef struct ANativeWindow *EGLNativeWindowType; > +-typedef struct egl_native_pixmap_t *EGLNativePixmapType; > +-typedef void *EGLNativeDisplayType; > +- > +-#elif defined(__unix__) > +- > +-#ifdef MESA_EGL_NO_X11_HEADERS > +- > +-typedef void *EGLNativeDisplayType; > +-typedef khronos_uint32_t EGLNativePixmapType; > +-typedef khronos_uint32_t EGLNativeWindowType; > +- > +-#else > +- > +-/* X11 (tentative) */ > +-#include <X11/Xlib.h> > +-#include <X11/Xutil.h> > +- > +-typedef Display *EGLNativeDisplayType; > +-typedef Pixmap EGLNativePixmapType; > +-typedef Window EGLNativeWindowType; > +- > +-#endif /* MESA_EGL_NO_X11_HEADERS */ > +- > +-#else > +-#error "Platform not recognized" > +-#endif > +- > +-/* EGL 1.2 types, renamed for consistency in EGL 1.3 */ > +-typedef EGLNativeDisplayType NativeDisplayType; > +-typedef EGLNativePixmapType NativePixmapType; > +-typedef EGLNativeWindowType NativeWindowType; > +- > +- > +-/* Define EGLint. This must be a signed integral type large enough to contain > +- * all legal attribute names and values passed into and out of EGL, whether > +- * their type is boolean, bitmask, enumerant (symbolic constant), integer, > +- * handle, or other. While in general a 32-bit integer will suffice, if > +- * handles are 64 bit types, then EGLint should be defined as a signed 64-bit > +- * integer type. > +- */ > +-typedef khronos_int32_t EGLint; > +- > +-#endif /* __eglplatform_h */ > +diff --git a/include/EGL/eglplatform.h.in b/include/EGL/eglplatform.h.in > +new file mode 100644 > +index 0000000..5126c92 > +--- /dev/null > ++++ b/include/EGL/eglplatform.h.in > +@@ -0,0 +1,146 @@ > ++#ifndef __eglplatform_h_ > ++#define __eglplatform_h_ > ++ > ++/* > ++** Copyright (c) 2007-2009 The Khronos Group Inc. > ++** > ++** Permission is hereby granted, free of charge, to any person obtaining a > ++** copy of this software and/or associated documentation files (the > ++** "Materials"), to deal in the Materials without restriction, including > ++** without limitation the rights to use, copy, modify, merge, publish, > ++** distribute, sublicense, and/or sell copies of the Materials, and to > ++** permit persons to whom the Materials are furnished to do so, subject to > ++** the following conditions: > ++** > ++** The above copyright notice and this permission notice shall be included > ++** in all copies or substantial portions of the Materials. > ++** > ++** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, > ++** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF > ++** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. > ++** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY > ++** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, > ++** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE > ++** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. > ++*/ > ++ > ++/* Platform-specific types and definitions for egl.h > ++ * $Revision: 12306 $ on $Date: 2010-08-25 09:51:28 -0700 (Wed, 25 Aug 2010) $ > ++ * > ++ * Adopters may modify khrplatform.h and this file to suit their platform. > ++ * You are encouraged to submit all modifications to the Khronos group so that > ++ * they can be included in future versions of this file. Please submit changes > ++ * by sending them to the public Khronos Bugzilla (http://khronos.org/bugzilla) > ++ * by filing a bug against product "EGL" component "Registry". > ++ */ > ++ > ++#include <KHR/khrplatform.h> > ++ > ++/* Macros used in EGL function prototype declarations. > ++ * > ++ * EGL functions should be prototyped as: > ++ * > ++ * EGLAPI return-type EGLAPIENTRY eglFunction(arguments); > ++ * typedef return-type (EXPAPIENTRYP PFNEGLFUNCTIONPROC) (arguments); > ++ * > ++ * KHRONOS_APICALL and KHRONOS_APIENTRY are defined in KHR/khrplatform.h > ++ */ > ++ > ++#ifndef EGLAPI > ++#define EGLAPI KHRONOS_APICALL > ++#endif > ++ > ++#ifndef EGLAPIENTRY > ++#define EGLAPIENTRY KHRONOS_APIENTRY > ++#endif > ++#define EGLAPIENTRYP EGLAPIENTRY* > ++ > ++/* The types NativeDisplayType, NativeWindowType, and NativePixmapType > ++ * are aliases of window-system-dependent types, such as X Display * or > ++ * Windows Device Context. They must be defined in platform-specific > ++ * code below. The EGL-prefixed versions of Native*Type are the same > ++ * types, renamed in EGL 1.3 so all types in the API start with "EGL". > ++ * > ++ * Khronos STRONGLY RECOMMENDS that you use the default definitions > ++ * provided below, since these changes affect both binary and source > ++ * portability of applications using EGL running on different EGL > ++ * implementations. > ++ */ > ++ > ++#if defined(_WIN32) || defined(__VC32__) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) /* Win32 and WinCE */ > ++#ifndef WIN32_LEAN_AND_MEAN > ++#define WIN32_LEAN_AND_MEAN 1 > ++#endif > ++#include <windows.h> > ++ > ++typedef HDC EGLNativeDisplayType; > ++typedef HBITMAP EGLNativePixmapType; > ++typedef HWND EGLNativeWindowType; > ++ > ++#elif defined(__WINSCW__) || defined(__SYMBIAN32__) /* Symbian */ > ++ > ++typedef int EGLNativeDisplayType; > ++typedef void *EGLNativeWindowType; > ++typedef void *EGLNativePixmapType; > ++ > ++#elif defined(WL_EGL_PLATFORM) > ++ > ++typedef struct wl_display *EGLNativeDisplayType; > ++typedef struct wl_egl_pixmap *EGLNativePixmapType; > ++typedef struct wl_egl_window *EGLNativeWindowType; > ++ > ++#elif defined(__GBM__) > ++ > ++typedef struct gbm_device *EGLNativeDisplayType; > ++typedef struct gbm_bo *EGLNativePixmapType; > ++typedef void *EGLNativeWindowType; > ++ > ++#elif defined(ANDROID) /* Android */ > ++ > ++struct ANativeWindow; > ++struct egl_native_pixmap_t; > ++ > ++typedef struct ANativeWindow *EGLNativeWindowType; > ++typedef struct egl_native_pixmap_t *EGLNativePixmapType; > ++typedef void *EGLNativeDisplayType; > ++ > ++#elif defined(__unix__) > ++ > ++#if @MESA_EGL_NO_X11_HEADERS@ > ++ > ++typedef void *EGLNativeDisplayType; > ++typedef khronos_uint32_t EGLNativePixmapType; > ++typedef khronos_uint32_t EGLNativeWindowType; > ++ > ++#else > ++ > ++/* X11 (tentative) */ > ++#include <X11/Xlib.h> > ++#include <X11/Xutil.h> > ++ > ++typedef Display *EGLNativeDisplayType; > ++typedef Pixmap EGLNativePixmapType; > ++typedef Window EGLNativeWindowType; > ++ > ++#endif /* MESA_EGL_NO_X11_HEADERS */ > ++ > ++#else > ++#error "Platform not recognized" > ++#endif > ++ > ++/* EGL 1.2 types, renamed for consistency in EGL 1.3 */ > ++typedef EGLNativeDisplayType NativeDisplayType; > ++typedef EGLNativePixmapType NativePixmapType; > ++typedef EGLNativeWindowType NativeWindowType; > ++ > ++ > ++/* Define EGLint. This must be a signed integral type large enough to contain > ++ * all legal attribute names and values passed into and out of EGL, whether > ++ * their type is boolean, bitmask, enumerant (symbolic constant), integer, > ++ * handle, or other. While in general a 32-bit integer will suffice, if > ++ * handles are 64 bit types, then EGLint should be defined as a signed 64-bit > ++ * integer type. > ++ */ > ++typedef khronos_int32_t EGLint; > ++ > ++#endif /* __eglplatform_h */ > +-- > +1.8.1.2 > + > -- > 1.8.1.2 > > _______________________________________________ > Openembedded-core mailing list > Openembedded-core@lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-core
I'm actively fixing this upstream now, so I will make sure this is sorted. What PACKAGECONFIG are you using? Ross On Thursday, 27 June 2013, Martin Jansa wrote: > On Tue, Jun 25, 2013 at 05:38:43PM +0200, Nicolas Dechesne wrote: > > Extracted from "d7033f4 mesa: upgrade to 9.1.3", already merged in > master: > > > > -- > > Add EGL-Mutate-NativeDisplayType-depending-on-config.patch to build > correctly in > > a non-X11 environment. > > > > Drop fix-egl-compilation-without-x11-headers.patch as they were > backports. > > -- > > > > The new patch was also backported (trivial) to mesa 9.0.2 which is in > > dylan. > > > > Signed-off-by: Nicolas Dechesne <nicolas.dechesne@linaro.org<javascript:;> > > > > --- > > meta/recipes-graphics/mesa/mesa-9.0.2.inc | 2 +- > > ...ate-NativeDisplayType-depending-on-config.patch | 361 > +++++++++++++++++++++ > > 2 files changed, 362 insertions(+), 1 deletion(-) > > create mode 100644 > meta/recipes-graphics/mesa/mesa/EGL-Mutate-NativeDisplayType-depending-on-config.patch > > > > diff --git a/meta/recipes-graphics/mesa/mesa-9.0.2.inc > b/meta/recipes-graphics/mesa/mesa-9.0.2.inc > > index b88bc42..e2dcfdb 100644 > > --- a/meta/recipes-graphics/mesa/mesa-9.0.2.inc > > +++ b/meta/recipes-graphics/mesa/mesa-9.0.2.inc > > @@ -2,7 +2,7 @@ SRC_URI = " > ftp://ftp.freedesktop.org/pub/mesa/${PV}/MesaLib-${PV}.tar.bz2 \ > > file://0002-cross-compile.patch \ > > file://cross-glsl.patch \ > > file://dont-fail-if-libX11-isnt-installed.patch \ > > - file://fix-egl-compilation-without-x11-headers.patch \ > > + > file://EGL-Mutate-NativeDisplayType-depending-on-config.patch \ > > " > > EGL-Mutate-NativeDisplayType-depending-on-config.patch does not cover > > #include "state_tracker/xlib_sw_winsys.h" > in > src/gallium/auxiliary/pipe-loader/pipe_loader_sw.c > > so builds with pipe-loader enabled and without x11 headers are still > failing, the same issue is in master. > > > SRC_URI[md5sum] = "dc45d1192203e418163e0017640e1cfc" > > diff --git > a/meta/recipes-graphics/mesa/mesa/EGL-Mutate-NativeDisplayType-depending-on-config.patch > b/meta/recipes-graphics/mesa/mesa/EGL-Mutate-NativeDisplayType-depending-on-config.patch > > new file mode 100644 > > index 0000000..98c4095 > > --- /dev/null > > +++ > b/meta/recipes-graphics/mesa/mesa/EGL-Mutate-NativeDisplayType-depending-on-config.patch > > @@ -0,0 +1,361 @@ > > +From 7e5846aa52c7cb00b0db9fa393975880371d2620 Mon Sep 17 00:00:00 2001 > > +From: Daniel Stone <daniel@fooishbar.org> > > +Date: Fri, 24 May 2013 17:20:27 +0100 > > +Subject: [PATCH] EGL: Mutate NativeDisplayType depending on config > > + > > +If we go through ./configure without enabling X11 anywhere, then set the > > +fallback types for EGL NativeDisplay and friends, rather than assuming > > +X11/Xlib. > > + > > +Signed-off-by: Daniel Stone <daniel@fooishbar.org> > > + > > +Conflicts: > > + configure.ac > > +--- > > + configure.ac | 9 +++ > > + include/EGL/eglplatform.h | 146 > ------------------------------------------- > > + include/EGL/eglplatform.h.in | 146 > +++++++++++++++++++++++++++++++++++++++++++ > > + 3 files changed, 155 insertions(+), 146 deletions(-) > > + delete mode 100644 include/EGL/eglplatform.h > > + create mode 100644 include/EGL/eglplatform.h.in > > + > > +diff --git a/configure.ac b/configure.ac > > +index 682e0a5..a8a485d 100644 > > +--- a/configure.ac > > ++++ b/configure.ac > > +@@ -1577,12 +1577,20 @@ fi > > + > > + EGL_PLATFORMS="$egl_platforms" > > + > > ++if echo "$egl_platforms" | grep 'x11' >/dev/null 2>&1; then > > ++ MESA_EGL_NO_X11_HEADERS=0 > > ++else > > ++ MESA_EGL_NO_X11_HEADERS=1 > > ++fi > > ++ > > + AM_CONDITIONAL(HAVE_EGL_PLATFORM_X11, echo "$egl_platforms" | grep > 'x11' >/dev/null 2>&1) > > + AM_CONDITIONAL(HAVE_EGL_PLATFORM_WAYLAND, echo "$egl_platforms" | grep > 'wayland' >/dev/null 2>&1) > > + AM_CONDITIONAL(HAVE_EGL_PLATFORM_DRM, echo "$egl_platforms" | grep > 'drm' >/dev/null 2>&1) > > + AM_CONDITIONAL(HAVE_EGL_PLATFORM_FBDEV, echo "$egl_platforms" | grep > 'fbdev' >/dev/null 2>&1) > > + AM_CONDITIONAL(HAVE_EGL_PLATFORM_NULL, echo "$egl_platforms" | grep > 'null' >/dev/null 2>&1) > > + > > ++AC_SUBST([MESA_EGL_NO_X11_HEADERS]) > > ++ > > + AM_CONDITIONAL(HAVE_EGL_DRIVER_DRI2, test "x$HAVE_EGL_DRIVER_DRI2" != > "x") > > + AM_CONDITIONAL(HAVE_EGL_DRIVER_GLX, test "x$HAVE_EGL_DRIVER_GLX" != > "x") > > + > > +@@ -1953,6 +1961,7 @@ CXXFLAGS="$CXXFLAGS $USER_CXXFLAGS" > > + dnl Substitute the config > > + AC_CONFIG_FILES([configs/current > > + Makefile > > ++ include/EGL/eglplatform.h > > + src/egl/Makefile > > + src/egl/drivers/Makefile > > + src/egl/drivers/dri2/Makefile > > +diff --git a/include/EGL/eglplatform.h b/include/EGL/eglplatform.h > > +deleted file mode 100644 > > +index 17fdc61..0000000 > > +--- a/include/EGL/eglplatform.h > > ++++ /dev/null > > +@@ -1,146 +0,0 @@ > > +-#ifndef __eglplatform_h_ > > +-#define __eglplatform_h_ > > +- > > +-/* > > +-** Copyright (c) 2007-2009 The Khronos Group Inc. > > +-** > > +-** Permission is hereby granted, free of charge, to any person > obtaining a > > +-** copy of this software and/or associated documentation files (the > > +-** "Materials"), to deal in the Materials without restriction, > including > > +-** without limitation the rights t-- > Martin 'JaMa' Jansa jabber: Martin.Jansa@gmail.com <javascript:;> >
Almost all of them :) PACKAGECONFIG = "egl gles dri wayland gallium gallium-llvmpipe openvg" On Thu, Jun 27, 2013 at 11:00 PM, Burton, Ross <ross.burton@intel.com>wrote: > I'm actively fixing this upstream now, so I will make sure this is sorted. > What PACKAGECONFIG are you using? > > Ross > > > On Thursday, 27 June 2013, Martin Jansa wrote: > >> On Tue, Jun 25, 2013 at 05:38:43PM +0200, Nicolas Dechesne wrote: >> > Extracted from "d7033f4 mesa: upgrade to 9.1.3", already merged in >> master: >> > >> > -- >> > Add EGL-Mutate-NativeDisplayType-depending-on-config.patch to build >> correctly in >> > a non-X11 environment. >> > >> > Drop fix-egl-compilation-without-x11-headers.patch as they were >> backports. >> > -- >> > >> > The new patch was also backported (trivial) to mesa 9.0.2 which is in >> > dylan. >> > >> > Signed-off-by: Nicolas Dechesne <nicolas.dechesne@linaro.org> >> > --- >> > meta/recipes-graphics/mesa/mesa-9.0.2.inc | 2 +- >> > ...ate-NativeDisplayType-depending-on-config.patch | 361 >> +++++++++++++++++++++ >> > 2 files changed, 362 insertions(+), 1 deletion(-) >> > create mode 100644 >> meta/recipes-graphics/mesa/mesa/EGL-Mutate-NativeDisplayType-depending-on-config.patch >> > >> > diff --git a/meta/recipes-graphics/mesa/mesa-9.0.2.inc >> b/meta/recipes-graphics/mesa/mesa-9.0.2.inc >> > index b88bc42..e2dcfdb 100644 >> > --- a/meta/recipes-graphics/mesa/mesa-9.0.2.inc >> > +++ b/meta/recipes-graphics/mesa/mesa-9.0.2.inc >> > @@ -2,7 +2,7 @@ SRC_URI = " >> ftp://ftp.freedesktop.org/pub/mesa/${PV}/MesaLib-${PV}.tar.bz2 \ >> > file://0002-cross-compile.patch \ >> > file://cross-glsl.patch \ >> > file://dont-fail-if-libX11-isnt-installed.patch \ >> > - file://fix-egl-compilation-without-x11-headers.patch \ >> > + >> file://EGL-Mutate-NativeDisplayType-depending-on-config.patch \ >> > " >> >> EGL-Mutate-NativeDisplayType-depending-on-config.patch does not cover >> >> #include "state_tracker/xlib_sw_winsys.h" >> in >> src/gallium/auxiliary/pipe-loader/pipe_loader_sw.c >> >> so builds with pipe-loader enabled and without x11 headers are still >> failing, the same issue is in master. >> >> > SRC_URI[md5sum] = "dc45d1192203e418163e0017640e1cfc" >> > diff --git >> a/meta/recipes-graphics/mesa/mesa/EGL-Mutate-NativeDisplayType-depending-on-config.patch >> b/meta/recipes-graphics/mesa/mesa/EGL-Mutate-NativeDisplayType-depending-on-config.patch >> > new file mode 100644 >> > index 0000000..98c4095 >> > --- /dev/null >> > +++ >> b/meta/recipes-graphics/mesa/mesa/EGL-Mutate-NativeDisplayType-depending-on-config.patch >> > @@ -0,0 +1,361 @@ >> > +From 7e5846aa52c7cb00b0db9fa393975880371d2620 Mon Sep 17 00:00:00 2001 >> > +From: Daniel Stone <daniel@fooishbar.org> >> > +Date: Fri, 24 May 2013 17:20:27 +0100 >> > +Subject: [PATCH] EGL: Mutate NativeDisplayType depending on config >> > + >> > +If we go through ./configure without enabling X11 anywhere, then set >> the >> > +fallback types for EGL NativeDisplay and friends, rather than assuming >> > +X11/Xlib. >> > + >> > +Signed-off-by: Daniel Stone <daniel@fooishbar.org> >> > + >> > +Conflicts: >> > + configure.ac >> > +--- >> > + configure.ac | 9 +++ >> > + include/EGL/eglplatform.h | 146 >> ------------------------------------------- >> > + include/EGL/eglplatform.h.in | 146 >> +++++++++++++++++++++++++++++++++++++++++++ >> > + 3 files changed, 155 insertions(+), 146 deletions(-) >> > + delete mode 100644 include/EGL/eglplatform.h >> > + create mode 100644 include/EGL/eglplatform.h.in >> > + >> > +diff --git a/configure.ac b/configure.ac >> > +index 682e0a5..a8a485d 100644 >> > +--- a/configure.ac >> > ++++ b/configure.ac >> > +@@ -1577,12 +1577,20 @@ fi >> > + >> > + EGL_PLATFORMS="$egl_platforms" >> > + >> > ++if echo "$egl_platforms" | grep 'x11' >/dev/null 2>&1; then >> > ++ MESA_EGL_NO_X11_HEADERS=0 >> > ++else >> > ++ MESA_EGL_NO_X11_HEADERS=1 >> > ++fi >> > ++ >> > + AM_CONDITIONAL(HAVE_EGL_PLATFORM_X11, echo "$egl_platforms" | grep >> 'x11' >/dev/null 2>&1) >> > + AM_CONDITIONAL(HAVE_EGL_PLATFORM_WAYLAND, echo "$egl_platforms" | >> grep 'wayland' >/dev/null 2>&1) >> > + AM_CONDITIONAL(HAVE_EGL_PLATFORM_DRM, echo "$egl_platforms" | grep >> 'drm' >/dev/null 2>&1) >> > + AM_CONDITIONAL(HAVE_EGL_PLATFORM_FBDEV, echo "$egl_platforms" | grep >> 'fbdev' >/dev/null 2>&1) >> > + AM_CONDITIONAL(HAVE_EGL_PLATFORM_NULL, echo "$egl_platforms" | grep >> 'null' >/dev/null 2>&1) >> > + >> > ++AC_SUBST([MESA_EGL_NO_X11_HEADERS]) >> > ++ >> > + AM_CONDITIONAL(HAVE_EGL_DRIVER_DRI2, test "x$HAVE_EGL_DRIVER_DRI2" != >> "x") >> > + AM_CONDITIONAL(HAVE_EGL_DRIVER_GLX, test "x$HAVE_EGL_DRIVER_GLX" != >> "x") >> > + >> > +@@ -1953,6 +1961,7 @@ CXXFLAGS="$CXXFLAGS $USER_CXXFLAGS" >> > + dnl Substitute the config >> > + AC_CONFIG_FILES([configs/current >> > + Makefile >> > ++ include/EGL/eglplatform.h >> > + src/egl/Makefile >> > + src/egl/drivers/Makefile >> > + src/egl/drivers/dri2/Makefile >> > +diff --git a/include/EGL/eglplatform.h b/include/EGL/eglplatform.h >> > +deleted file mode 100644 >> > +index 17fdc61..0000000 >> > +--- a/include/EGL/eglplatform.h >> > ++++ /dev/null >> > +@@ -1,146 +0,0 @@ >> > +-#ifndef __eglplatform_h_ >> > +-#define __eglplatform_h_ >> > +- >> > +-/* >> > +-** Copyright (c) 2007-2009 The Khronos Group Inc. >> > +-** >> > +-** Permission is hereby granted, free of charge, to any person >> obtaining a >> > +-** copy of this software and/or associated documentation files (the >> > +-** "Materials"), to deal in the Materials without restriction, >> including >> > +-** without limitation the rights t-- >> >> Martin 'JaMa' Jansa jabber: Martin.Jansa@gmail.com >> >
On Thu, Jun 27, 2013 at 11:11:20PM +0200, Martin Jansa wrote: > Almost all of them :) > > PACKAGECONFIG = "egl gles dri wayland gallium gallium-llvmpipe openvg" I've updated http://git.openembedded.org/openembedded-core-contrib/log/?h=jansa/mesa http://git.openembedded.org/openembedded-core-contrib/commit/?h=jansa/mesa&id=b141f10bbd59c38419c25f6aa88b6fd293d981ae should fix the issue with state_tracker/xlib_sw_winsys.h I'll send this patchset to master after few more tests. > On Thu, Jun 27, 2013 at 11:00 PM, Burton, Ross <ross.burton@intel.com>wrote: > > > I'm actively fixing this upstream now, so I will make sure this is sorted. > > What PACKAGECONFIG are you using? > > > > Ross > > > > > > On Thursday, 27 June 2013, Martin Jansa wrote: > > > >> On Tue, Jun 25, 2013 at 05:38:43PM +0200, Nicolas Dechesne wrote: > >> > Extracted from "d7033f4 mesa: upgrade to 9.1.3", already merged in > >> master: > >> > > >> > -- > >> > Add EGL-Mutate-NativeDisplayType-depending-on-config.patch to build > >> correctly in > >> > a non-X11 environment. > >> > > >> > Drop fix-egl-compilation-without-x11-headers.patch as they were > >> backports. > >> > -- > >> > > >> > The new patch was also backported (trivial) to mesa 9.0.2 which is in > >> > dylan. > >> > > >> > Signed-off-by: Nicolas Dechesne <nicolas.dechesne@linaro.org> > >> > --- > >> > meta/recipes-graphics/mesa/mesa-9.0.2.inc | 2 +- > >> > ...ate-NativeDisplayType-depending-on-config.patch | 361 > >> +++++++++++++++++++++ > >> > 2 files changed, 362 insertions(+), 1 deletion(-) > >> > create mode 100644 > >> meta/recipes-graphics/mesa/mesa/EGL-Mutate-NativeDisplayType-depending-on-config.patch > >> > > >> > diff --git a/meta/recipes-graphics/mesa/mesa-9.0.2.inc > >> b/meta/recipes-graphics/mesa/mesa-9.0.2.inc > >> > index b88bc42..e2dcfdb 100644 > >> > --- a/meta/recipes-graphics/mesa/mesa-9.0.2.inc > >> > +++ b/meta/recipes-graphics/mesa/mesa-9.0.2.inc > >> > @@ -2,7 +2,7 @@ SRC_URI = " > >> ftp://ftp.freedesktop.org/pub/mesa/${PV}/MesaLib-${PV}.tar.bz2 \ > >> > file://0002-cross-compile.patch \ > >> > file://cross-glsl.patch \ > >> > file://dont-fail-if-libX11-isnt-installed.patch \ > >> > - file://fix-egl-compilation-without-x11-headers.patch \ > >> > + > >> file://EGL-Mutate-NativeDisplayType-depending-on-config.patch \ > >> > " > >> > >> EGL-Mutate-NativeDisplayType-depending-on-config.patch does not cover > >> > >> #include "state_tracker/xlib_sw_winsys.h" > >> in > >> src/gallium/auxiliary/pipe-loader/pipe_loader_sw.c > >> > >> so builds with pipe-loader enabled and without x11 headers are still > >> failing, the same issue is in master. > >> > >> > SRC_URI[md5sum] = "dc45d1192203e418163e0017640e1cfc" > >> > diff --git > >> a/meta/recipes-graphics/mesa/mesa/EGL-Mutate-NativeDisplayType-depending-on-config.patch > >> b/meta/recipes-graphics/mesa/mesa/EGL-Mutate-NativeDisplayType-depending-on-config.patch > >> > new file mode 100644 > >> > index 0000000..98c4095 > >> > --- /dev/null > >> > +++ > >> b/meta/recipes-graphics/mesa/mesa/EGL-Mutate-NativeDisplayType-depending-on-config.patch > >> > @@ -0,0 +1,361 @@ > >> > +From 7e5846aa52c7cb00b0db9fa393975880371d2620 Mon Sep 17 00:00:00 2001 > >> > +From: Daniel Stone <daniel@fooishbar.org> > >> > +Date: Fri, 24 May 2013 17:20:27 +0100 > >> > +Subject: [PATCH] EGL: Mutate NativeDisplayType depending on config > >> > + > >> > +If we go through ./configure without enabling X11 anywhere, then set > >> the > >> > +fallback types for EGL NativeDisplay and friends, rather than assuming > >> > +X11/Xlib. > >> > + > >> > +Signed-off-by: Daniel Stone <daniel@fooishbar.org> > >> > + > >> > +Conflicts: > >> > + configure.ac > >> > +--- > >> > + configure.ac | 9 +++ > >> > + include/EGL/eglplatform.h | 146 > >> ------------------------------------------- > >> > + include/EGL/eglplatform.h.in | 146 > >> +++++++++++++++++++++++++++++++++++++++++++ > >> > + 3 files changed, 155 insertions(+), 146 deletions(-) > >> > + delete mode 100644 include/EGL/eglplatform.h > >> > + create mode 100644 include/EGL/eglplatform.h.in > >> > + > >> > +diff --git a/configure.ac b/configure.ac > >> > +index 682e0a5..a8a485d 100644 > >> > +--- a/configure.ac > >> > ++++ b/configure.ac > >> > +@@ -1577,12 +1577,20 @@ fi > >> > + > >> > + EGL_PLATFORMS="$egl_platforms" > >> > + > >> > ++if echo "$egl_platforms" | grep 'x11' >/dev/null 2>&1; then > >> > ++ MESA_EGL_NO_X11_HEADERS=0 > >> > ++else > >> > ++ MESA_EGL_NO_X11_HEADERS=1 > >> > ++fi > >> > ++ > >> > + AM_CONDITIONAL(HAVE_EGL_PLATFORM_X11, echo "$egl_platforms" | grep > >> 'x11' >/dev/null 2>&1) > >> > + AM_CONDITIONAL(HAVE_EGL_PLATFORM_WAYLAND, echo "$egl_platforms" | > >> grep 'wayland' >/dev/null 2>&1) > >> > + AM_CONDITIONAL(HAVE_EGL_PLATFORM_DRM, echo "$egl_platforms" | grep > >> 'drm' >/dev/null 2>&1) > >> > + AM_CONDITIONAL(HAVE_EGL_PLATFORM_FBDEV, echo "$egl_platforms" | grep > >> 'fbdev' >/dev/null 2>&1) > >> > + AM_CONDITIONAL(HAVE_EGL_PLATFORM_NULL, echo "$egl_platforms" | grep > >> 'null' >/dev/null 2>&1) > >> > + > >> > ++AC_SUBST([MESA_EGL_NO_X11_HEADERS]) > >> > ++ > >> > + AM_CONDITIONAL(HAVE_EGL_DRIVER_DRI2, test "x$HAVE_EGL_DRIVER_DRI2" != > >> "x") > >> > + AM_CONDITIONAL(HAVE_EGL_DRIVER_GLX, test "x$HAVE_EGL_DRIVER_GLX" != > >> "x") > >> > + > >> > +@@ -1953,6 +1961,7 @@ CXXFLAGS="$CXXFLAGS $USER_CXXFLAGS" > >> > + dnl Substitute the config > >> > + AC_CONFIG_FILES([configs/current > >> > + Makefile > >> > ++ include/EGL/eglplatform.h > >> > + src/egl/Makefile > >> > + src/egl/drivers/Makefile > >> > + src/egl/drivers/dri2/Makefile > >> > +diff --git a/include/EGL/eglplatform.h b/include/EGL/eglplatform.h > >> > +deleted file mode 100644 > >> > +index 17fdc61..0000000 > >> > +--- a/include/EGL/eglplatform.h > >> > ++++ /dev/null > >> > +@@ -1,146 +0,0 @@ > >> > +-#ifndef __eglplatform_h_ > >> > +-#define __eglplatform_h_ > >> > +- > >> > +-/* > >> > +-** Copyright (c) 2007-2009 The Khronos Group Inc. > >> > +-** > >> > +-** Permission is hereby granted, free of charge, to any person > >> obtaining a > >> > +-** copy of this software and/or associated documentation files (the > >> > +-** "Materials"), to deal in the Materials without restriction, > >> including > >> > +-** without limitation the rights t-- > >> > >> Martin 'JaMa' Jansa jabber: Martin.Jansa@gmail.com > >> > >
diff --git a/meta/recipes-graphics/mesa/mesa-9.0.2.inc b/meta/recipes-graphics/mesa/mesa-9.0.2.inc index b88bc42..e2dcfdb 100644 --- a/meta/recipes-graphics/mesa/mesa-9.0.2.inc +++ b/meta/recipes-graphics/mesa/mesa-9.0.2.inc @@ -2,7 +2,7 @@ SRC_URI = "ftp://ftp.freedesktop.org/pub/mesa/${PV}/MesaLib-${PV}.tar.bz2 \ file://0002-cross-compile.patch \ file://cross-glsl.patch \ file://dont-fail-if-libX11-isnt-installed.patch \ - file://fix-egl-compilation-without-x11-headers.patch \ + file://EGL-Mutate-NativeDisplayType-depending-on-config.patch \ " SRC_URI[md5sum] = "dc45d1192203e418163e0017640e1cfc" diff --git a/meta/recipes-graphics/mesa/mesa/EGL-Mutate-NativeDisplayType-depending-on-config.patch b/meta/recipes-graphics/mesa/mesa/EGL-Mutate-NativeDisplayType-depending-on-config.patch new file mode 100644 index 0000000..98c4095 --- /dev/null +++ b/meta/recipes-graphics/mesa/mesa/EGL-Mutate-NativeDisplayType-depending-on-config.patch @@ -0,0 +1,361 @@ +From 7e5846aa52c7cb00b0db9fa393975880371d2620 Mon Sep 17 00:00:00 2001 +From: Daniel Stone <daniel@fooishbar.org> +Date: Fri, 24 May 2013 17:20:27 +0100 +Subject: [PATCH] EGL: Mutate NativeDisplayType depending on config + +If we go through ./configure without enabling X11 anywhere, then set the +fallback types for EGL NativeDisplay and friends, rather than assuming +X11/Xlib. + +Signed-off-by: Daniel Stone <daniel@fooishbar.org> + +Conflicts: + configure.ac +--- + configure.ac | 9 +++ + include/EGL/eglplatform.h | 146 ------------------------------------------- + include/EGL/eglplatform.h.in | 146 +++++++++++++++++++++++++++++++++++++++++++ + 3 files changed, 155 insertions(+), 146 deletions(-) + delete mode 100644 include/EGL/eglplatform.h + create mode 100644 include/EGL/eglplatform.h.in + +diff --git a/configure.ac b/configure.ac +index 682e0a5..a8a485d 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1577,12 +1577,20 @@ fi + + EGL_PLATFORMS="$egl_platforms" + ++if echo "$egl_platforms" | grep 'x11' >/dev/null 2>&1; then ++ MESA_EGL_NO_X11_HEADERS=0 ++else ++ MESA_EGL_NO_X11_HEADERS=1 ++fi ++ + AM_CONDITIONAL(HAVE_EGL_PLATFORM_X11, echo "$egl_platforms" | grep 'x11' >/dev/null 2>&1) + AM_CONDITIONAL(HAVE_EGL_PLATFORM_WAYLAND, echo "$egl_platforms" | grep 'wayland' >/dev/null 2>&1) + AM_CONDITIONAL(HAVE_EGL_PLATFORM_DRM, echo "$egl_platforms" | grep 'drm' >/dev/null 2>&1) + AM_CONDITIONAL(HAVE_EGL_PLATFORM_FBDEV, echo "$egl_platforms" | grep 'fbdev' >/dev/null 2>&1) + AM_CONDITIONAL(HAVE_EGL_PLATFORM_NULL, echo "$egl_platforms" | grep 'null' >/dev/null 2>&1) + ++AC_SUBST([MESA_EGL_NO_X11_HEADERS]) ++ + AM_CONDITIONAL(HAVE_EGL_DRIVER_DRI2, test "x$HAVE_EGL_DRIVER_DRI2" != "x") + AM_CONDITIONAL(HAVE_EGL_DRIVER_GLX, test "x$HAVE_EGL_DRIVER_GLX" != "x") + +@@ -1953,6 +1961,7 @@ CXXFLAGS="$CXXFLAGS $USER_CXXFLAGS" + dnl Substitute the config + AC_CONFIG_FILES([configs/current + Makefile ++ include/EGL/eglplatform.h + src/egl/Makefile + src/egl/drivers/Makefile + src/egl/drivers/dri2/Makefile +diff --git a/include/EGL/eglplatform.h b/include/EGL/eglplatform.h +deleted file mode 100644 +index 17fdc61..0000000 +--- a/include/EGL/eglplatform.h ++++ /dev/null +@@ -1,146 +0,0 @@ +-#ifndef __eglplatform_h_ +-#define __eglplatform_h_ +- +-/* +-** Copyright (c) 2007-2009 The Khronos Group Inc. +-** +-** Permission is hereby granted, free of charge, to any person obtaining a +-** copy of this software and/or associated documentation files (the +-** "Materials"), to deal in the Materials without restriction, including +-** without limitation the rights to use, copy, modify, merge, publish, +-** distribute, sublicense, and/or sell copies of the Materials, and to +-** permit persons to whom the Materials are furnished to do so, subject to +-** the following conditions: +-** +-** The above copyright notice and this permission notice shall be included +-** in all copies or substantial portions of the Materials. +-** +-** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +-** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +-** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +-** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +-** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +-** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +-** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. +-*/ +- +-/* Platform-specific types and definitions for egl.h +- * $Revision: 12306 $ on $Date: 2010-08-25 09:51:28 -0700 (Wed, 25 Aug 2010) $ +- * +- * Adopters may modify khrplatform.h and this file to suit their platform. +- * You are encouraged to submit all modifications to the Khronos group so that +- * they can be included in future versions of this file. Please submit changes +- * by sending them to the public Khronos Bugzilla (http://khronos.org/bugzilla) +- * by filing a bug against product "EGL" component "Registry". +- */ +- +-#include <KHR/khrplatform.h> +- +-/* Macros used in EGL function prototype declarations. +- * +- * EGL functions should be prototyped as: +- * +- * EGLAPI return-type EGLAPIENTRY eglFunction(arguments); +- * typedef return-type (EXPAPIENTRYP PFNEGLFUNCTIONPROC) (arguments); +- * +- * KHRONOS_APICALL and KHRONOS_APIENTRY are defined in KHR/khrplatform.h +- */ +- +-#ifndef EGLAPI +-#define EGLAPI KHRONOS_APICALL +-#endif +- +-#ifndef EGLAPIENTRY +-#define EGLAPIENTRY KHRONOS_APIENTRY +-#endif +-#define EGLAPIENTRYP EGLAPIENTRY* +- +-/* The types NativeDisplayType, NativeWindowType, and NativePixmapType +- * are aliases of window-system-dependent types, such as X Display * or +- * Windows Device Context. They must be defined in platform-specific +- * code below. The EGL-prefixed versions of Native*Type are the same +- * types, renamed in EGL 1.3 so all types in the API start with "EGL". +- * +- * Khronos STRONGLY RECOMMENDS that you use the default definitions +- * provided below, since these changes affect both binary and source +- * portability of applications using EGL running on different EGL +- * implementations. +- */ +- +-#if defined(_WIN32) || defined(__VC32__) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) /* Win32 and WinCE */ +-#ifndef WIN32_LEAN_AND_MEAN +-#define WIN32_LEAN_AND_MEAN 1 +-#endif +-#include <windows.h> +- +-typedef HDC EGLNativeDisplayType; +-typedef HBITMAP EGLNativePixmapType; +-typedef HWND EGLNativeWindowType; +- +-#elif defined(__WINSCW__) || defined(__SYMBIAN32__) /* Symbian */ +- +-typedef int EGLNativeDisplayType; +-typedef void *EGLNativeWindowType; +-typedef void *EGLNativePixmapType; +- +-#elif defined(WL_EGL_PLATFORM) +- +-typedef struct wl_display *EGLNativeDisplayType; +-typedef struct wl_egl_pixmap *EGLNativePixmapType; +-typedef struct wl_egl_window *EGLNativeWindowType; +- +-#elif defined(__GBM__) +- +-typedef struct gbm_device *EGLNativeDisplayType; +-typedef struct gbm_bo *EGLNativePixmapType; +-typedef void *EGLNativeWindowType; +- +-#elif defined(ANDROID) /* Android */ +- +-struct ANativeWindow; +-struct egl_native_pixmap_t; +- +-typedef struct ANativeWindow *EGLNativeWindowType; +-typedef struct egl_native_pixmap_t *EGLNativePixmapType; +-typedef void *EGLNativeDisplayType; +- +-#elif defined(__unix__) +- +-#ifdef MESA_EGL_NO_X11_HEADERS +- +-typedef void *EGLNativeDisplayType; +-typedef khronos_uint32_t EGLNativePixmapType; +-typedef khronos_uint32_t EGLNativeWindowType; +- +-#else +- +-/* X11 (tentative) */ +-#include <X11/Xlib.h> +-#include <X11/Xutil.h> +- +-typedef Display *EGLNativeDisplayType; +-typedef Pixmap EGLNativePixmapType; +-typedef Window EGLNativeWindowType; +- +-#endif /* MESA_EGL_NO_X11_HEADERS */ +- +-#else +-#error "Platform not recognized" +-#endif +- +-/* EGL 1.2 types, renamed for consistency in EGL 1.3 */ +-typedef EGLNativeDisplayType NativeDisplayType; +-typedef EGLNativePixmapType NativePixmapType; +-typedef EGLNativeWindowType NativeWindowType; +- +- +-/* Define EGLint. This must be a signed integral type large enough to contain +- * all legal attribute names and values passed into and out of EGL, whether +- * their type is boolean, bitmask, enumerant (symbolic constant), integer, +- * handle, or other. While in general a 32-bit integer will suffice, if +- * handles are 64 bit types, then EGLint should be defined as a signed 64-bit +- * integer type. +- */ +-typedef khronos_int32_t EGLint; +- +-#endif /* __eglplatform_h */ +diff --git a/include/EGL/eglplatform.h.in b/include/EGL/eglplatform.h.in +new file mode 100644 +index 0000000..5126c92 +--- /dev/null ++++ b/include/EGL/eglplatform.h.in +@@ -0,0 +1,146 @@ ++#ifndef __eglplatform_h_ ++#define __eglplatform_h_ ++ ++/* ++** Copyright (c) 2007-2009 The Khronos Group Inc. ++** ++** Permission is hereby granted, free of charge, to any person obtaining a ++** copy of this software and/or associated documentation files (the ++** "Materials"), to deal in the Materials without restriction, including ++** without limitation the rights to use, copy, modify, merge, publish, ++** distribute, sublicense, and/or sell copies of the Materials, and to ++** permit persons to whom the Materials are furnished to do so, subject to ++** the following conditions: ++** ++** The above copyright notice and this permission notice shall be included ++** in all copies or substantial portions of the Materials. ++** ++** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, ++** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF ++** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. ++** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY ++** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, ++** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE ++** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. ++*/ ++ ++/* Platform-specific types and definitions for egl.h ++ * $Revision: 12306 $ on $Date: 2010-08-25 09:51:28 -0700 (Wed, 25 Aug 2010) $ ++ * ++ * Adopters may modify khrplatform.h and this file to suit their platform. ++ * You are encouraged to submit all modifications to the Khronos group so that ++ * they can be included in future versions of this file. Please submit changes ++ * by sending them to the public Khronos Bugzilla (http://khronos.org/bugzilla) ++ * by filing a bug against product "EGL" component "Registry". ++ */ ++ ++#include <KHR/khrplatform.h> ++ ++/* Macros used in EGL function prototype declarations. ++ * ++ * EGL functions should be prototyped as: ++ * ++ * EGLAPI return-type EGLAPIENTRY eglFunction(arguments); ++ * typedef return-type (EXPAPIENTRYP PFNEGLFUNCTIONPROC) (arguments); ++ * ++ * KHRONOS_APICALL and KHRONOS_APIENTRY are defined in KHR/khrplatform.h ++ */ ++ ++#ifndef EGLAPI ++#define EGLAPI KHRONOS_APICALL ++#endif ++ ++#ifndef EGLAPIENTRY ++#define EGLAPIENTRY KHRONOS_APIENTRY ++#endif ++#define EGLAPIENTRYP EGLAPIENTRY* ++ ++/* The types NativeDisplayType, NativeWindowType, and NativePixmapType ++ * are aliases of window-system-dependent types, such as X Display * or ++ * Windows Device Context. They must be defined in platform-specific ++ * code below. The EGL-prefixed versions of Native*Type are the same ++ * types, renamed in EGL 1.3 so all types in the API start with "EGL". ++ * ++ * Khronos STRONGLY RECOMMENDS that you use the default definitions ++ * provided below, since these changes affect both binary and source ++ * portability of applications using EGL running on different EGL ++ * implementations. ++ */ ++ ++#if defined(_WIN32) || defined(__VC32__) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) /* Win32 and WinCE */ ++#ifndef WIN32_LEAN_AND_MEAN ++#define WIN32_LEAN_AND_MEAN 1 ++#endif ++#include <windows.h> ++ ++typedef HDC EGLNativeDisplayType; ++typedef HBITMAP EGLNativePixmapType; ++typedef HWND EGLNativeWindowType; ++ ++#elif defined(__WINSCW__) || defined(__SYMBIAN32__) /* Symbian */ ++ ++typedef int EGLNativeDisplayType; ++typedef void *EGLNativeWindowType; ++typedef void *EGLNativePixmapType; ++ ++#elif defined(WL_EGL_PLATFORM) ++ ++typedef struct wl_display *EGLNativeDisplayType; ++typedef struct wl_egl_pixmap *EGLNativePixmapType; ++typedef struct wl_egl_window *EGLNativeWindowType; ++ ++#elif defined(__GBM__) ++ ++typedef struct gbm_device *EGLNativeDisplayType; ++typedef struct gbm_bo *EGLNativePixmapType; ++typedef void *EGLNativeWindowType; ++ ++#elif defined(ANDROID) /* Android */ ++ ++struct ANativeWindow; ++struct egl_native_pixmap_t; ++ ++typedef struct ANativeWindow *EGLNativeWindowType; ++typedef struct egl_native_pixmap_t *EGLNativePixmapType; ++typedef void *EGLNativeDisplayType; ++ ++#elif defined(__unix__) ++ ++#if @MESA_EGL_NO_X11_HEADERS@ ++ ++typedef void *EGLNativeDisplayType; ++typedef khronos_uint32_t EGLNativePixmapType; ++typedef khronos_uint32_t EGLNativeWindowType; ++ ++#else ++ ++/* X11 (tentative) */ ++#include <X11/Xlib.h> ++#include <X11/Xutil.h> ++ ++typedef Display *EGLNativeDisplayType; ++typedef Pixmap EGLNativePixmapType; ++typedef Window EGLNativeWindowType; ++ ++#endif /* MESA_EGL_NO_X11_HEADERS */ ++ ++#else ++#error "Platform not recognized" ++#endif ++ ++/* EGL 1.2 types, renamed for consistency in EGL 1.3 */ ++typedef EGLNativeDisplayType NativeDisplayType; ++typedef EGLNativePixmapType NativePixmapType; ++typedef EGLNativeWindowType NativeWindowType; ++ ++ ++/* Define EGLint. This must be a signed integral type large enough to contain ++ * all legal attribute names and values passed into and out of EGL, whether ++ * their type is boolean, bitmask, enumerant (symbolic constant), integer, ++ * handle, or other. While in general a 32-bit integer will suffice, if ++ * handles are 64 bit types, then EGLint should be defined as a signed 64-bit ++ * integer type. ++ */ ++typedef khronos_int32_t EGLint; ++ ++#endif /* __eglplatform_h */ +-- +1.8.1.2 +
Extracted from "d7033f4 mesa: upgrade to 9.1.3", already merged in master: -- Add EGL-Mutate-NativeDisplayType-depending-on-config.patch to build correctly in a non-X11 environment. Drop fix-egl-compilation-without-x11-headers.patch as they were backports. -- The new patch was also backported (trivial) to mesa 9.0.2 which is in dylan. Signed-off-by: Nicolas Dechesne <nicolas.dechesne@linaro.org> --- meta/recipes-graphics/mesa/mesa-9.0.2.inc | 2 +- ...ate-NativeDisplayType-depending-on-config.patch | 361 +++++++++++++++++++++ 2 files changed, 362 insertions(+), 1 deletion(-) create mode 100644 meta/recipes-graphics/mesa/mesa/EGL-Mutate-NativeDisplayType-depending-on-config.patch