All of lore.kernel.org
 help / color / mirror / Atom feed
* [dora][PATCH] mesa: build fix for gallium-egl
@ 2014-02-26 15:30 Valentin Popa
  2014-02-26 15:52 ` Nicolas Dechesne
  2014-02-26 16:29 ` Valentin Popa
  0 siblings, 2 replies; 3+ messages in thread
From: Valentin Popa @ 2014-02-26 15:30 UTC (permalink / raw)
  To: openembedded-core

Avoid altering eglplatform.h from {top_srcdir}/include
using an alternative to
0003-EGL-Mutate-NativeDisplayType-depending-on-config
patch.

[YOCTO #5882]
Signed-off-by: Valentin Popa <valentin.popa@intel.com>
---
 ...ate-NativeDisplayType-depending-on-config.patch | 359 ---------------------
 meta/recipes-graphics/mesa/mesa_9.1.6.bb           |   9 +-
 meta/recipes-graphics/mesa/mesa_git.bb             |   8 +
 3 files changed, 16 insertions(+), 360 deletions(-)
 delete mode 100644 meta/recipes-graphics/mesa/mesa/0003-EGL-Mutate-NativeDisplayType-depending-on-config.patch

diff --git a/meta/recipes-graphics/mesa/mesa/0003-EGL-Mutate-NativeDisplayType-depending-on-config.patch b/meta/recipes-graphics/mesa/mesa/0003-EGL-Mutate-NativeDisplayType-depending-on-config.patch
deleted file mode 100644
index 8a83f4b..0000000
--- a/meta/recipes-graphics/mesa/mesa/0003-EGL-Mutate-NativeDisplayType-depending-on-config.patch
+++ /dev/null
@@ -1,359 +0,0 @@
-From 8d31ae23683394617c49301b039b3a069b9ea436 Mon Sep 17 00:00:00 2001
-From: Daniel Stone <daniel@fooishbar.org>
-Date: Fri, 24 May 2013 17:20:27 +0100
-Subject: [PATCH 3/4] 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.
-
-Upstream-Status: Backport (slightly different solution was applied in master
-https://bugs.freedesktop.org/show_bug.cgi?id=64959)
-
-Signed-off-by: Daniel Stone <daniel@fooishbar.org>
-Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
----
- configure.ac                 |   5 ++
- include/EGL/eglplatform.h    | 146 -------------------------------------------
- include/EGL/eglplatform.h.in | 146 +++++++++++++++++++++++++++++++++++++++++++
- 3 files changed, 151 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 67b8c40..afc3217 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -1499,6 +1499,9 @@ EGL_PLATFORMS="$egl_platforms"
- 
- if echo "$egl_platforms" | grep 'x11' >/dev/null 2>&1; then
-     NEED_WINSYS_XLIB=yes
-+    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)
-@@ -1512,6 +1515,7 @@ AM_CONDITIONAL(HAVE_EGL_DRIVER_GLX, test "x$HAVE_EGL_DRIVER_GLX" != "x")
- AC_SUBST([EGL_NATIVE_PLATFORM])
- AC_SUBST([EGL_PLATFORMS])
- AC_SUBST([EGL_CFLAGS])
-+AC_SUBST([MESA_EGL_NO_X11_HEADERS])
- 
- AC_ARG_WITH([egl-driver-dir],
-     [AS_HELP_STRING([--with-egl-driver-dir=DIR],
-@@ -1991,6 +1995,7 @@ CXXFLAGS="$CXXFLAGS $USER_CXXFLAGS"
- 
- dnl Substitute the config
- AC_CONFIG_FILES([Makefile
-+		include/EGL/eglplatform.h
- 		src/Makefile
- 		src/egl/Makefile
- 		src/egl/drivers/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.2.1
-
diff --git a/meta/recipes-graphics/mesa/mesa_9.1.6.bb b/meta/recipes-graphics/mesa/mesa_9.1.6.bb
index b55fa02..9a9d405 100644
--- a/meta/recipes-graphics/mesa/mesa_9.1.6.bb
+++ b/meta/recipes-graphics/mesa/mesa_9.1.6.bb
@@ -3,7 +3,6 @@ require ${BPN}.inc
 SRC_URI = "ftp://ftp.freedesktop.org/pub/mesa/${PV}/MesaLib-${PV}.tar.bz2 \
            file://0001-configure-Avoid-use-of-AC_CHECK_FILE-for-cross-compi.patch \
            file://0002-pipe_loader_sw-include-xlib_sw_winsys.h-only-when-HA.patch \
-           file://0003-EGL-Mutate-NativeDisplayType-depending-on-config.patch \
            file://0004-glsl-fix-builtin_compiler-cross-compilation.patch \
            file://0005-llvmpipe-remove-the-power-of-two-sizeof-struct-cmd_b.patch \
            file://0005-fix-out-of-tree-builds-gallium.patch \
@@ -14,3 +13,11 @@ SRC_URI[md5sum] = "443a2a352667294b53d56cb1a74114e9"
 SRC_URI[sha256sum] = "e632dff0acafad0a59dc208d16dedb37f7bd58f94c5d58c4b51912e41d005e3d"
 
 S = "${WORKDIR}/Mesa-${PV}"
+
+#because we cannot rely on the fact that all apps will use pkgconfig,
+#make eglplatform.h independent of MESA_EGL_NO_X11_HEADER
+do_install_append() {
+    if ${@base_contains('PACKAGECONFIG', 'egl', 'true', 'false', d)}; then
+        sed -i -e 's/^#ifdef MESA_EGL_NO_X11_HEADERS/#if ${@base_contains('DISTRO_FEATURES', 'x11', '0', '1', d)}/' ${D}${includedir}/EGL/eglplatform.h
+    fi
+}
\ No newline at end of file
diff --git a/meta/recipes-graphics/mesa/mesa_git.bb b/meta/recipes-graphics/mesa/mesa_git.bb
index 6397ece..98cea2f 100644
--- a/meta/recipes-graphics/mesa/mesa_git.bb
+++ b/meta/recipes-graphics/mesa/mesa_git.bb
@@ -18,3 +18,11 @@ SRC_URI = "git://anongit.freedesktop.org/git/mesa/mesa \
            "
 
 S = "${WORKDIR}/git"
+
+#because we cannot rely on the fact that all apps will use pkgconfig,
+#make eglplatform.h independent of MESA_EGL_NO_X11_HEADER
+do_install_append() {
+    if ${@base_contains('PACKAGECONFIG', 'egl', 'true', 'false', d)}; then
+        sed -i -e 's/^#ifdef MESA_EGL_NO_X11_HEADERS/#if ${@base_contains('DISTRO_FEATURES', 'x11', '0', '1', d)}/' ${D}${includedir}/EGL/eglplatform.h
+    fi
+}
-- 
1.8.3.2



^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [dora][PATCH] mesa: build fix for gallium-egl
  2014-02-26 15:30 [dora][PATCH] mesa: build fix for gallium-egl Valentin Popa
@ 2014-02-26 15:52 ` Nicolas Dechesne
  2014-02-26 16:29 ` Valentin Popa
  1 sibling, 0 replies; 3+ messages in thread
From: Nicolas Dechesne @ 2014-02-26 15:52 UTC (permalink / raw)
  To: Valentin Popa; +Cc: Patches and discussions about the oe-core layer

On Wed, Feb 26, 2014 at 4:30 PM, Valentin Popa <valentin.popa@intel.com> wrote:
> Avoid altering eglplatform.h from {top_srcdir}/include
> using an alternative to
> 0003-EGL-Mutate-NativeDisplayType-depending-on-config
> patch.

i don't think this is the right fix. i get the following build failures now:

| i586-rdk-linux-libtool: compile:  i586-rdk-linux-gcc -m32
-march=i586 --sysroot=/work/rdk-dora/build-qemux86/tmp/sysroots/qemux86
-DPACKAGE_NAME=\"Mesa\" -DPACKAGE_TARNAME=\"mesa\"
-DPACKAGE_VERSION=\"9.1.6\" "-DPACKAGE_STRING=\"Mesa 9.1.6\""
"-DPACKAGE_BUGREPORT=\"https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa\""
-DPACKAGE_URL=\"\" -DPACKAGE=\"mesa\" -DVERSION=\"9.1.6\"
-DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1
-DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1
-DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1
-DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\"
-DHAVE_CLOCK_GETTIME=1 -DHAVE_PTHREAD=1 -DHAVE_LIBEXPAT=1 -I.
-I/work/rdk-dora/build-qemux86/tmp/work/i586-rdk-linux/mesa/2_9.1.6-r0/Mesa-9.1.6/src/egl/main
-I/work/rdk-dora/build-qemux86/tmp/work/i586-rdk-linux/mesa/2_9.1.6-r0/Mesa-9.1.6/include
-I../../../include
-I/work/rdk-dora/build-qemux86/tmp/work/i586-rdk-linux/mesa/2_9.1.6-r0/Mesa-9.1.6/src/gbm/main
-D_GNU_SOURCE -DHAVE_PTHREAD -DHAVE_DLOPEN -DHAVE_POSIX_MEMALIGN
-DIN_DRI_DRIVER -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER -DHAVE_ALIAS
-DHAVE_MINCORE -DHAVE_LIBUDEV -DHAVE_LLVM=0x0303
-D_EGL_NATIVE_PLATFORM=_EGL_PLATFORM_DRM
-D_EGL_DRIVER_SEARCH_DIR=\"/usr/lib/egl\" -D_EGL_OS_UNIX=1
-DHAVE_DRM_PLATFORM -DHAVE_FBDEV_PLATFORM -D_EGL_BUILT_IN_DRIVER_DRI2
-DHAVE_XCB_DRI2 -O2 -pipe -g -feliminate-unused-debug-types
-fno-omit-frame-pointer -Wall -std=c99
-Werror=implicit-function-declaration -Werror=missing-prototypes
-fno-strict-aliasing -fno-builtin-memcmp -c
/work/rdk-dora/build-qemux86/tmp/work/i586-rdk-linux/mesa/2_9.1.6-r0/Mesa-9.1.6/src/egl/main/eglconfig.c
 -fPIC -DPIC -o .libs/eglconfig.o
| make[3]: *** [eglapi.lo] Error 1
| In file included from
/work/rdk-dora/build-qemux86/tmp/work/i586-rdk-linux/mesa/2_9.1.6-r0/Mesa-9.1.6/include/EGL/egl.h:36:0,
|                  from
/work/rdk-dora/build-qemux86/tmp/work/i586-rdk-linux/mesa/2_9.1.6-r0/Mesa-9.1.6/src/egl/main/egltypedefs.h:36,
|                  from
/work/rdk-dora/build-qemux86/tmp/work/i586-rdk-linux/mesa/2_9.1.6-r0/Mesa-9.1.6/src/egl/main/egllog.h:34,
|                  from
/work/rdk-dora/build-qemux86/tmp/work/i586-rdk-linux/mesa/2_9.1.6-r0/Mesa-9.1.6/src/egl/main/eglarray.c:32:
| /work/rdk-dora/build-qemux86/tmp/work/i586-rdk-linux/mesa/2_9.1.6-r0/Mesa-9.1.6/include/EGL/eglplatform.h:118:22:
fatal error: X11/Xlib.h: No such file or directory
|  #include <X11/Xlib.h>

I am building with x11 removed from DISTRO_FEATURES, btw.


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [dora][PATCH] mesa: build fix for gallium-egl
  2014-02-26 15:30 [dora][PATCH] mesa: build fix for gallium-egl Valentin Popa
  2014-02-26 15:52 ` Nicolas Dechesne
@ 2014-02-26 16:29 ` Valentin Popa
  1 sibling, 0 replies; 3+ messages in thread
From: Valentin Popa @ 2014-02-26 16:29 UTC (permalink / raw)
  To: openembedded-core

On 02/26/2014 05:30 PM, Valentin Popa wrote:
> Avoid altering eglplatform.h from {top_srcdir}/include
> using an alternative to
> 0003-EGL-Mutate-NativeDisplayType-depending-on-config
> patch.
>
> [YOCTO #5882]
> Signed-off-by: Valentin Popa <valentin.popa@intel.com>
> ---
>   ...ate-NativeDisplayType-depending-on-config.patch | 359 ---------------------
>   meta/recipes-graphics/mesa/mesa_9.1.6.bb           |   9 +-
>   meta/recipes-graphics/mesa/mesa_git.bb             |   8 +
>   3 files changed, 16 insertions(+), 360 deletions(-)
>   delete mode 100644 meta/recipes-graphics/mesa/mesa/0003-EGL-Mutate-NativeDisplayType-depending-on-config.patch
>
> diff --git a/meta/recipes-graphics/mesa/mesa/0003-EGL-Mutate-NativeDisplayType-depending-on-config.patch b/meta/recipes-graphics/mesa/mesa/0003-EGL-Mutate-NativeDisplayType-depending-on-config.patch
> deleted file mode 100644
> index 8a83f4b..0000000
> --- a/meta/recipes-graphics/mesa/mesa/0003-EGL-Mutate-NativeDisplayType-depending-on-config.patch
> +++ /dev/null
> @@ -1,359 +0,0 @@
> -From 8d31ae23683394617c49301b039b3a069b9ea436 Mon Sep 17 00:00:00 2001
> -From: Daniel Stone <daniel@fooishbar.org>
> -Date: Fri, 24 May 2013 17:20:27 +0100
> -Subject: [PATCH 3/4] 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.
> -
> -Upstream-Status: Backport (slightly different solution was applied in master
> -https://bugs.freedesktop.org/show_bug.cgi?id=64959)
> -
> -Signed-off-by: Daniel Stone <daniel@fooishbar.org>
> -Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
> ----
> - configure.ac                 |   5 ++
> - include/EGL/eglplatform.h    | 146 -------------------------------------------
> - include/EGL/eglplatform.h.in | 146 +++++++++++++++++++++++++++++++++++++++++++
> - 3 files changed, 151 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 67b8c40..afc3217 100644
> ---- a/configure.ac
> -+++ b/configure.ac
> -@@ -1499,6 +1499,9 @@ EGL_PLATFORMS="$egl_platforms"
> -
> - if echo "$egl_platforms" | grep 'x11' >/dev/null 2>&1; then
> -     NEED_WINSYS_XLIB=yes
> -+    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)
> -@@ -1512,6 +1515,7 @@ AM_CONDITIONAL(HAVE_EGL_DRIVER_GLX, test "x$HAVE_EGL_DRIVER_GLX" != "x")
> - AC_SUBST([EGL_NATIVE_PLATFORM])
> - AC_SUBST([EGL_PLATFORMS])
> - AC_SUBST([EGL_CFLAGS])
> -+AC_SUBST([MESA_EGL_NO_X11_HEADERS])
> -
> - AC_ARG_WITH([egl-driver-dir],
> -     [AS_HELP_STRING([--with-egl-driver-dir=DIR],
> -@@ -1991,6 +1995,7 @@ CXXFLAGS="$CXXFLAGS $USER_CXXFLAGS"
> -
> - dnl Substitute the config
> - AC_CONFIG_FILES([Makefile
> -+		include/EGL/eglplatform.h
> - 		src/Makefile
> - 		src/egl/Makefile
> - 		src/egl/drivers/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.2.1
> -
> diff --git a/meta/recipes-graphics/mesa/mesa_9.1.6.bb b/meta/recipes-graphics/mesa/mesa_9.1.6.bb
> index b55fa02..9a9d405 100644
> --- a/meta/recipes-graphics/mesa/mesa_9.1.6.bb
> +++ b/meta/recipes-graphics/mesa/mesa_9.1.6.bb
> @@ -3,7 +3,6 @@ require ${BPN}.inc
>   SRC_URI = "ftp://ftp.freedesktop.org/pub/mesa/${PV}/MesaLib-${PV}.tar.bz2 \
>              file://0001-configure-Avoid-use-of-AC_CHECK_FILE-for-cross-compi.patch \
>              file://0002-pipe_loader_sw-include-xlib_sw_winsys.h-only-when-HA.patch \
> -           file://0003-EGL-Mutate-NativeDisplayType-depending-on-config.patch \
>              file://0004-glsl-fix-builtin_compiler-cross-compilation.patch \
>              file://0005-llvmpipe-remove-the-power-of-two-sizeof-struct-cmd_b.patch \
>              file://0005-fix-out-of-tree-builds-gallium.patch \
> @@ -14,3 +13,11 @@ SRC_URI[md5sum] = "443a2a352667294b53d56cb1a74114e9"
>   SRC_URI[sha256sum] = "e632dff0acafad0a59dc208d16dedb37f7bd58f94c5d58c4b51912e41d005e3d"
>   
>   S = "${WORKDIR}/Mesa-${PV}"
> +
> +#because we cannot rely on the fact that all apps will use pkgconfig,
> +#make eglplatform.h independent of MESA_EGL_NO_X11_HEADER
> +do_install_append() {
> +    if ${@base_contains('PACKAGECONFIG', 'egl', 'true', 'false', d)}; then
> +        sed -i -e 's/^#ifdef MESA_EGL_NO_X11_HEADERS/#if ${@base_contains('DISTRO_FEATURES', 'x11', '0', '1', d)}/' ${D}${includedir}/EGL/eglplatform.h
> +    fi
> +}
> \ No newline at end of file
> diff --git a/meta/recipes-graphics/mesa/mesa_git.bb b/meta/recipes-graphics/mesa/mesa_git.bb
> index 6397ece..98cea2f 100644
> --- a/meta/recipes-graphics/mesa/mesa_git.bb
> +++ b/meta/recipes-graphics/mesa/mesa_git.bb
> @@ -18,3 +18,11 @@ SRC_URI = "git://anongit.freedesktop.org/git/mesa/mesa \
>              "
>   
>   S = "${WORKDIR}/git"
> +
> +#because we cannot rely on the fact that all apps will use pkgconfig,
> +#make eglplatform.h independent of MESA_EGL_NO_X11_HEADER
> +do_install_append() {
> +    if ${@base_contains('PACKAGECONFIG', 'egl', 'true', 'false', d)}; then
> +        sed -i -e 's/^#ifdef MESA_EGL_NO_X11_HEADERS/#if ${@base_contains('DISTRO_FEATURES', 'x11', '0', '1', d)}/' ${D}${includedir}/EGL/eglplatform.h
> +    fi
> +}

Ignore this please, I need also to delete the reference to the removed 
patch in mesa_git.bb .


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2014-02-26 16:30 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-02-26 15:30 [dora][PATCH] mesa: build fix for gallium-egl Valentin Popa
2014-02-26 15:52 ` Nicolas Dechesne
2014-02-26 16:29 ` Valentin Popa

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.