From d7033f4441183e53bf7fc8aa2293a9ec156a28dd Mon Sep 17 00:00:00 2001 From: Ross Burton Date: Wed, 29 May 2013 15:57:06 +0100 Subject: mesa: upgrade to 9.1.3 Merge mesa-PV.bb and mesa-PV.inc as the is no point to the split now we're only building one variant of Mesa. Drop 0002-cross-compile.patch isn't needed as libtool is used instead of mklib. However, as libtool is used instead of mklib add fix-glsl-cross.patch to work around build failures caused by the cross libtool being used to build host binaries. Add EGL-Mutate-NativeDisplayType-depending-on-config.patch to build correctly in a non-X11 environment. Drop dont-fail-if-libX11-isnt-installed.patch and fix-egl-compilation-without-x11-headers.patch as they were backports. license.html had some formatting and typo fixes, update the checksum. Signed-off-by: Ross Burton Signed-off-by: Saul Wold --- meta/recipes-graphics/mesa/mesa-9.0.2.inc | 13 - .../mesa/mesa/0002-cross-compile.patch | 94 --- ...ate-NativeDisplayType-depending-on-config.patch | 358 ++++++++++++ meta/recipes-graphics/mesa/mesa/cross-glsl.patch | 632 --------------------- .../mesa/dont-fail-if-libX11-isnt-installed.patch | 36 -- .../fix-egl-compilation-without-x11-headers.patch | 32 -- .../mesa/mesa/fix-glsl-cross.patch | 43 ++ meta/recipes-graphics/mesa/mesa_9.0.2.bb | 4 - meta/recipes-graphics/mesa/mesa_9.1.3.bb | 14 + 9 files changed, 415 insertions(+), 811 deletions(-) delete mode 100644 meta/recipes-graphics/mesa/mesa-9.0.2.inc delete mode 100644 meta/recipes-graphics/mesa/mesa/0002-cross-compile.patch create mode 100644 meta/recipes-graphics/mesa/mesa/EGL-Mutate-NativeDisplayType-depending-on-config.patch delete mode 100644 meta/recipes-graphics/mesa/mesa/cross-glsl.patch delete mode 100644 meta/recipes-graphics/mesa/mesa/dont-fail-if-libX11-isnt-installed.patch delete mode 100644 meta/recipes-graphics/mesa/mesa/fix-egl-compilation-without-x11-headers.patch create mode 100644 meta/recipes-graphics/mesa/mesa/fix-glsl-cross.patch delete mode 100644 meta/recipes-graphics/mesa/mesa_9.0.2.bb create mode 100644 meta/recipes-graphics/mesa/mesa_9.1.3.bb (limited to 'meta/recipes-graphics/mesa') diff --git a/meta/recipes-graphics/mesa/mesa-9.0.2.inc b/meta/recipes-graphics/mesa/mesa-9.0.2.inc deleted file mode 100644 index b88bc42e05..0000000000 --- a/meta/recipes-graphics/mesa/mesa-9.0.2.inc +++ /dev/null @@ -1,13 +0,0 @@ -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 \ - " - -SRC_URI[md5sum] = "dc45d1192203e418163e0017640e1cfc" -SRC_URI[sha256sum] = "75bf31f26c6e7b5515e610c1005fd1be1f7eeb2c9e6859848dab879c355ad64e" - -LIC_FILES_CHKSUM = "file://docs/license.html;md5=012f69938d81b766472fd0d240df38a4" - -S = "${WORKDIR}/Mesa-${PV}" diff --git a/meta/recipes-graphics/mesa/mesa/0002-cross-compile.patch b/meta/recipes-graphics/mesa/mesa/0002-cross-compile.patch deleted file mode 100644 index dc8e9948a3..0000000000 --- a/meta/recipes-graphics/mesa/mesa/0002-cross-compile.patch +++ /dev/null @@ -1,94 +0,0 @@ -cross compile - -This patch is ported from WindRiver linux and to fix cross compile -failure. - -And original commits are: -commit 8d5ccc8113e1b51b0529a00c18a4aba956247e1b -commit 5c4212084b871a0c0fb7d174280ec9a634637deb - -Upstream-Status: Pending - -Signed-off-by: Kang Kai ---- - bin/mklib | 24 ++++++++++++------------ - 1 file changed, 12 insertions(+), 12 deletions(-) - -diff --git a/bin/mklib b/bin/mklib -index 9bac29e..b33aa90 100755 ---- a/bin/mklib -+++ b/bin/mklib -@@ -49,8 +49,8 @@ expand_archives() { - /*) ;; - *) FILE="$ORIG_DIR/$FILE" ;; - esac -- MEMBERS=`ar t $FILE` -- ar x $FILE -+ MEMBERS=`${AR} t $FILE` -+ ${AR} x $FILE - for MEMBER in $MEMBERS ; do - NEWFILES="$NEWFILES $DIR/$MEMBER" - done -@@ -77,7 +77,7 @@ expand_archives() { - make_ar_static_lib() { - OPTS=$1 - shift; -- RANLIB=$1 -+ USE_RANLIB=$1 - shift; - LIBNAME=$1 - shift; -@@ -87,11 +87,11 @@ make_ar_static_lib() { - rm -f ${LIBNAME} - - # make static lib -- ar ${OPTS} ${LIBNAME} ${OBJECTS} -+ ${AR} ${OPTS} ${LIBNAME} ${OBJECTS} - - # run ranlib -- if [ ${RANLIB} = 1 ] ; then -- ranlib ${LIBNAME} -+ if [ ${USE_RANLIB} = 1 ] ; then -+ ${RANLIB} ${LIBNAME} - fi - - echo ${LIBNAME} -@@ -313,9 +313,9 @@ case $ARCH in - if [ "x$LINK" = "x" ] ; then - # -linker was not specified so set default link command now - if [ $CPLUSPLUS = 1 ] ; then -- LINK=g++ -+ LINK=$CXX - else -- LINK=gcc -+ LINK=$CC - fi - fi - -@@ -535,9 +535,9 @@ case $ARCH in - if [ "x$LINK" = "x" ] ; then - # -linker was not specified so set default link command now - if [ $CPLUSPLUS = 1 ] ; then -- LINK=g++ -+ LINK=$CXX - else -- LINK=gcc -+ LINK=$CC - fi - fi - -@@ -903,9 +903,9 @@ case $ARCH in - if [ "x$LINK" = "x" ] ; then - # -linker was not specified so set default link command now - if [ $CPLUSPLUS = 1 ] ; then -- LINK=g++ -+ LINK=${CXX} - else -- LINK=gcc -+ LINK=${CC} - fi - fi - --- -1.7.10.4 - 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 0000000000..47ba1671bc --- /dev/null +++ b/meta/recipes-graphics/mesa/mesa/EGL-Mutate-NativeDisplayType-depending-on-config.patch @@ -0,0 +1,358 @@ +From d52a7ec5dcdf3936bd727b854831efb90acfd2ba Mon Sep 17 00:00:00 2001 +From: Daniel Stone +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 +--- + 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 4a98996..6fa77da 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1576,12 +1576,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") + +@@ -2053,6 +2061,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 +- +-/* 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 +- +-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 +-#include +- +-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 ++ ++/* 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 ++ ++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 ++#include ++ ++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.7.10.4 + diff --git a/meta/recipes-graphics/mesa/mesa/cross-glsl.patch b/meta/recipes-graphics/mesa/mesa/cross-glsl.patch deleted file mode 100644 index 2e7929738d..0000000000 --- a/meta/recipes-graphics/mesa/mesa/cross-glsl.patch +++ /dev/null @@ -1,632 +0,0 @@ -Respect CC_FOR_BUILD when building glsl_compiler, so we don't need a -mesa-dri-glsl-native anymore. - -Upstream-Status: Backport (from master) -Signed-off-by: Ross Burton - -diff --git a/configure.ac b/configure.ac -index b46f897..3765cd3 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -10,7 +10,7 @@ AC_INIT([Mesa], [9.0.1], - [https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa]) - AC_CONFIG_AUX_DIR([bin]) - AC_CONFIG_MACRO_DIR([m4]) --AC_CANONICAL_HOST -+AC_CANONICAL_SYSTEM - AM_INIT_AUTOMAKE([foreign]) - - dnl http://people.gnome.org/~walters/docs/build-api.txt -@@ -24,9 +24,6 @@ m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) - - m4_ifdef([AM_PROG_AR], [AM_PROG_AR]) - --LT_PREREQ([2.2]) --LT_INIT([disable-static]) -- - dnl Set internal versions - OSMESA_VERSION=8 - AC_SUBST([OSMESA_VERSION]) -@@ -45,7 +42,9 @@ LIBKMS_XORG_REQUIRED=1.0.0 - dnl Check for progs - AC_PROG_CPP - AC_PROG_CC -+AX_PROG_CC_FOR_BUILD - AC_PROG_CXX -+AX_PROG_CXX_FOR_BUILD - AM_PROG_CC_C_O - AM_PROG_AS - AC_CHECK_PROGS([MAKE], [gmake make]) -@@ -54,6 +53,9 @@ AC_PROG_SED - AC_PROG_MKDIR_P - AC_PATH_PROG([MKDEP], [makedepend]) - -+LT_PREREQ([2.2]) -+LT_INIT([disable-static]) -+ - if test "x$MKDEP" = "x"; then - AC_MSG_ERROR([makedepend is required to build Mesa]) - fi -@@ -155,6 +157,21 @@ dnl Cache LDFLAGS and CPPFLAGS so we can add to them and restore later - _SAVE_LDFLAGS="$LDFLAGS" - _SAVE_CPPFLAGS="$CPPFLAGS" - -+dnl build host compiler macros -+DEFINES_FOR_BUILD="" -+AC_SUBST([DEFINES_FOR_BUILD]) -+case "$build_os" in -+linux*|*-gnu*|gnu*) -+ DEFINES_FOR_BUILD="$DEFINES_FOR_BUILD -D_GNU_SOURCE" -+ ;; -+solaris*) -+ DEFINES_FOR_BUILD="$DEFINES_FOR_BUILD -DSVR4" -+ ;; -+cygwin*) -+ DEFINES_FOR_BUILD="$DEFINES_FOR_BUILD" -+ ;; -+esac -+ - dnl Compiler macros - DEFINES="" - AC_SUBST([DEFINES]) -@@ -172,6 +189,7 @@ esac - - dnl Add flags for gcc and g++ - if test "x$GCC" = xyes; then -+ CFLAGS_FOR_BUILD="$CFLAGS_FOR_BUILD -Wall -std=c99" - CFLAGS="$CFLAGS -Wall -std=c99" - - # Enable -Werror=implicit-function-declaration and -@@ -199,13 +217,16 @@ if test "x$GCC" = xyes; then - CFLAGS=$save_CFLAGS - - # Work around aliasing bugs - developers should comment this out -+ CFLAGS_FOR_BUILD="$CFLAGS_FOR_BUILD -fno-strict-aliasing" - CFLAGS="$CFLAGS -fno-strict-aliasing" - - # gcc's builtin memcmp is slower than glibc's - # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43052 -+ CFLAGS_FOR_BUILD="$CFLAGS_FOR_BUILD -fno-builtin-memcmp" - CFLAGS="$CFLAGS -fno-builtin-memcmp" - fi - if test "x$GXX" = xyes; then -+ CXXFLAGS_FOR_BUILD="$CXXFLAGS_FOR_BUILD -Wall" - CXXFLAGS="$CXXFLAGS -Wall" - - # Enable -fvisibility=hidden if using a gcc that supports it -@@ -222,10 +243,12 @@ if test "x$GXX" = xyes; then - CXXFLAGS=$save_CXXFLAGS - - # Work around aliasing bugs - developers should comment this out -+ CXXFLAGS_FOR_BUILD="$CXXFLAGS_FOR_BUILD -fno-strict-aliasing" - CXXFLAGS="$CXXFLAGS -fno-strict-aliasing" - - # gcc's builtin memcmp is slower than glibc's - # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43052 -+ CXXFLAGS_FOR_BUILD="$CXXFLAGS_FOR_BUILD -fno-builtin-memcmp" - CXXFLAGS="$CXXFLAGS -fno-builtin-memcmp" - fi - -@@ -309,6 +332,14 @@ AC_ARG_ENABLE([debug], - [enable_debug=no] - ) - if test "x$enable_debug" = xyes; then -+ DEFINES_FOR_BUILD="$DEFINES_FOR_BUILD -DDEBUG" -+ if test "x$GCC_FOR_BUILD" = xyes; then -+ CFLAGS_FOR_BUILD="$CFLAGS_FOR_BUILD -g" -+ fi -+ if test "x$GXX_FOR_BUILD" = xyes; then -+ CXXFLAGS_FOR_BUILD="$CXXFLAGS_FOR_BUILD -g" -+ fi -+ - DEFINES="$DEFINES -DDEBUG" - if test "x$GCC" = xyes; then - CFLAGS="$CFLAGS -g" -@@ -1960,6 +1991,7 @@ AC_CONFIG_FILES([configs/current - src/gbm/Makefile - src/gbm/main/gbm.pc - src/glsl/Makefile -+ src/glsl/builtin_compiler/Makefile - src/glsl/glcpp/Makefile - src/glsl/tests/Makefile - src/glx/Makefile -diff --git a/m4/ax_prog_cc_for_build.m4 b/m4/ax_prog_cc_for_build.m4 -new file mode 100644 -index 0000000..6369809 ---- /dev/null -+++ b/m4/ax_prog_cc_for_build.m4 -@@ -0,0 +1,125 @@ -+# =========================================================================== -+# http://www.gnu.org/software/autoconf-archive/ax_prog_cc_for_build.html -+# =========================================================================== -+# -+# SYNOPSIS -+# -+# AX_PROG_CC_FOR_BUILD -+# -+# DESCRIPTION -+# -+# This macro searches for a C compiler that generates native executables, -+# that is a C compiler that surely is not a cross-compiler. This can be -+# useful if you have to generate source code at compile-time like for -+# example GCC does. -+# -+# The macro sets the CC_FOR_BUILD and CPP_FOR_BUILD macros to anything -+# needed to compile or link (CC_FOR_BUILD) and preprocess (CPP_FOR_BUILD). -+# The value of these variables can be overridden by the user by specifying -+# a compiler with an environment variable (like you do for standard CC). -+# -+# It also sets BUILD_EXEEXT and BUILD_OBJEXT to the executable and object -+# file extensions for the build platform, and GCC_FOR_BUILD to `yes' if -+# the compiler we found is GCC. All these variables but GCC_FOR_BUILD are -+# substituted in the Makefile. -+# -+# LICENSE -+# -+# Copyright (c) 2008 Paolo Bonzini -+# -+# Copying and distribution of this file, with or without modification, are -+# permitted in any medium without royalty provided the copyright notice -+# and this notice are preserved. This file is offered as-is, without any -+# warranty. -+ -+#serial 5 -+ -+AU_ALIAS([AC_PROG_CC_FOR_BUILD], [AX_PROG_CC_FOR_BUILD]) -+AC_DEFUN([AX_PROG_CC_FOR_BUILD], [dnl -+AC_REQUIRE([AC_PROG_CC])dnl -+AC_REQUIRE([AC_PROG_CPP])dnl -+AC_REQUIRE([AC_EXEEXT])dnl -+AC_REQUIRE([AC_CANONICAL_SYSTEM])dnl -+ -+dnl Use the standard macros, but make them use other variable names -+dnl -+pushdef([ac_cv_prog_CPP], ac_cv_build_prog_CPP)dnl -+pushdef([ac_cv_prog_gcc], ac_cv_build_prog_gcc)dnl -+pushdef([ac_cv_prog_cc_works], ac_cv_build_prog_cc_works)dnl -+pushdef([ac_cv_prog_cc_cross], ac_cv_build_prog_cc_cross)dnl -+pushdef([ac_cv_prog_cc_g], ac_cv_build_prog_cc_g)dnl -+pushdef([ac_cv_exeext], ac_cv_build_exeext)dnl -+pushdef([ac_cv_objext], ac_cv_build_objext)dnl -+pushdef([ac_exeext], ac_build_exeext)dnl -+pushdef([ac_objext], ac_build_objext)dnl -+pushdef([CC], CC_FOR_BUILD)dnl -+pushdef([CPP], CPP_FOR_BUILD)dnl -+pushdef([CFLAGS], CFLAGS_FOR_BUILD)dnl -+pushdef([CPPFLAGS], CPPFLAGS_FOR_BUILD)dnl -+pushdef([LDFLAGS], LDFLAGS_FOR_BUILD)dnl -+pushdef([host], build)dnl -+pushdef([host_alias], build_alias)dnl -+pushdef([host_cpu], build_cpu)dnl -+pushdef([host_vendor], build_vendor)dnl -+pushdef([host_os], build_os)dnl -+pushdef([ac_cv_host], ac_cv_build)dnl -+pushdef([ac_cv_host_alias], ac_cv_build_alias)dnl -+pushdef([ac_cv_host_cpu], ac_cv_build_cpu)dnl -+pushdef([ac_cv_host_vendor], ac_cv_build_vendor)dnl -+pushdef([ac_cv_host_os], ac_cv_build_os)dnl -+pushdef([ac_cpp], ac_build_cpp)dnl -+pushdef([ac_compile], ac_build_compile)dnl -+pushdef([ac_link], ac_build_link)dnl -+ -+save_cross_compiling=$cross_compiling -+save_ac_tool_prefix=$ac_tool_prefix -+cross_compiling=no -+ac_tool_prefix= -+ -+AC_PROG_CC -+AC_PROG_CPP -+AC_EXEEXT -+ -+ac_tool_prefix=$save_ac_tool_prefix -+cross_compiling=$save_cross_compiling -+ -+dnl Restore the old definitions -+dnl -+popdef([ac_link])dnl -+popdef([ac_compile])dnl -+popdef([ac_cpp])dnl -+popdef([ac_cv_host_os])dnl -+popdef([ac_cv_host_vendor])dnl -+popdef([ac_cv_host_cpu])dnl -+popdef([ac_cv_host_alias])dnl -+popdef([ac_cv_host])dnl -+popdef([host_os])dnl -+popdef([host_vendor])dnl -+popdef([host_cpu])dnl -+popdef([host_alias])dnl -+popdef([host])dnl -+popdef([LDFLAGS])dnl -+popdef([CPPFLAGS])dnl -+popdef([CFLAGS])dnl -+popdef([CPP])dnl -+popdef([CC])dnl -+popdef([ac_objext])dnl -+popdef([ac_exeext])dnl -+popdef([ac_cv_objext])dnl -+popdef([ac_cv_exeext])dnl -+popdef([ac_cv_prog_cc_g])dnl -+popdef([ac_cv_prog_cc_cross])dnl -+popdef([ac_cv_prog_cc_works])dnl -+popdef([ac_cv_prog_gcc])dnl -+popdef([ac_cv_prog_CPP])dnl -+ -+dnl Finally, set Makefile variables -+dnl -+BUILD_EXEEXT=$ac_build_exeext -+BUILD_OBJEXT=$ac_build_objext -+AC_SUBST(BUILD_EXEEXT)dnl -+AC_SUBST(BUILD_OBJEXT)dnl -+AC_SUBST([CFLAGS_FOR_BUILD])dnl -+AC_SUBST([CPPFLAGS_FOR_BUILD])dnl -+AC_SUBST([LDFLAGS_FOR_BUILD])dnl -+]) -diff --git a/m4/ax_prog_cxx_for_build.m4 b/m4/ax_prog_cxx_for_build.m4 -new file mode 100644 -index 0000000..ecf8db9 ---- /dev/null -+++ b/m4/ax_prog_cxx_for_build.m4 -@@ -0,0 +1,109 @@ -+# =========================================================================== -+# http://www.gnu.org/software/autoconf-archive/ax_prog_cxx_for_build.html -+# =========================================================================== -+# -+# SYNOPSIS -+# -+# AX_PROG_CXX_FOR_BUILD -+# -+# DESCRIPTION -+# -+# This macro searches for a C++ compiler that generates native executables, -+# that is a C++ compiler that surely is not a cross-compiler. This can be -+# useful if you have to generate source code at compile-time like for -+# example GCC does. -+# -+# The macro sets the CXX_FOR_BUILD and CXXCPP_FOR_BUILD macros to anything -+# needed to compile or link (CXX_FOR_BUILD) and preprocess (CXXCPP_FOR_BUILD). -+# The value of these variables can be overridden by the user by specifying -+# a compiler with an environment variable (like you do for standard CXX). -+# -+# LICENSE -+# -+# Copyright (c) 2008 Paolo Bonzini -+# Copyright (c) 2012 Avionic Design GmbH -+# -+# Based on the AX_PROG_CC_FOR_BUILD macro by Paolo Bonzini. -+# -+# Copying and distribution of this file, with or without modification, are -+# permitted in any medium without royalty provided the copyright notice -+# and this notice are preserved. This file is offered as-is, without any -+# warranty. -+ -+#serial 5 -+ -+AU_ALIAS([AC_PROG_CXX_FOR_BUILD], [AX_PROG_CXX_FOR_BUILD]) -+AC_DEFUN([AX_PROG_CXX_FOR_BUILD], [dnl -+AC_REQUIRE([AX_PROG_CC_FOR_BUILD])dnl -+AC_REQUIRE([AC_PROG_CXX])dnl -+AC_REQUIRE([AC_PROG_CXXCPP])dnl -+AC_REQUIRE([AC_CANONICAL_SYSTEM])dnl -+ -+dnl Use the standard macros, but make them use other variable names -+dnl -+pushdef([ac_cv_prog_CXXCPP], ac_cv_build_prog_CXXCPP)dnl -+pushdef([ac_cv_prog_gxx], ac_cv_build_prog_gxx)dnl -+pushdef([ac_cv_prog_cxx_works], ac_cv_build_prog_cxx_works)dnl -+pushdef([ac_cv_prog_cxx_cross], ac_cv_build_prog_cxx_cross)dnl -+pushdef([ac_cv_prog_cxx_g], ac_cv_build_prog_cxx_g)dnl -+pushdef([CXX], CXX_FOR_BUILD)dnl -+pushdef([CXXCPP], CXXCPP_FOR_BUILD)dnl -+pushdef([CXXFLAGS], CXXFLAGS_FOR_BUILD)dnl -+pushdef([CPPFLAGS], CPPFLAGS_FOR_BUILD)dnl -+pushdef([CXXCPPFLAGS], CXXCPPFLAGS_FOR_BUILD)dnl -+pushdef([host], build)dnl -+pushdef([host_alias], build_alias)dnl -+pushdef([host_cpu], build_cpu)dnl -+pushdef([host_vendor], build_vendor)dnl -+pushdef([host_os], build_os)dnl -+pushdef([ac_cv_host], ac_cv_build)dnl -+pushdef([ac_cv_host_alias], ac_cv_build_alias)dnl -+pushdef([ac_cv_host_cpu], ac_cv_build_cpu)dnl -+pushdef([ac_cv_host_vendor], ac_cv_build_vendor)dnl -+pushdef([ac_cv_host_os], ac_cv_build_os)dnl -+pushdef([ac_cxxcpp], ac_build_cxxcpp)dnl -+pushdef([ac_compile], ac_build_compile)dnl -+pushdef([ac_link], ac_build_link)dnl -+ -+save_cross_compiling=$cross_compiling -+save_ac_tool_prefix=$ac_tool_prefix -+cross_compiling=no -+ac_tool_prefix= -+ -+AC_PROG_CXX -+AC_PROG_CXXCPP -+ -+ac_tool_prefix=$save_ac_tool_prefix -+cross_compiling=$save_cross_compiling -+ -+dnl Restore the old definitions -+dnl -+popdef([ac_link])dnl -+popdef([ac_compile])dnl -+popdef([ac_cxxcpp])dnl -+popdef([ac_cv_host_os])dnl -+popdef([ac_cv_host_vendor])dnl -+popdef([ac_cv_host_cpu])dnl -+popdef([ac_cv_host_alias])dnl -+popdef([ac_cv_host])dnl -+popdef([host_os])dnl -+popdef([host_vendor])dnl -+popdef([host_cpu])dnl -+popdef([host_alias])dnl -+popdef([host])dnl -+popdef([CXXCPPFLAGS])dnl -+popdef([CPPFLAGS])dnl -+popdef([CXXFLAGS])dnl -+popdef([CXXCPP])dnl -+popdef([CXX])dnl -+popdef([ac_cv_prog_cxx_g])dnl -+popdef([ac_cv_prog_cxx_cross])dnl -+popdef([ac_cv_prog_cxx_works])dnl -+popdef([ac_cv_prog_gxx])dnl -+popdef([ac_cv_prog_CXXCPP])dnl -+ -+dnl Finally, set Makefile variables -+dnl -+AC_SUBST([CXXFLAGS_FOR_BUILD])dnl -+AC_SUBST([CXXCPPFLAGS_FOR_BUILD])dnl -+]) -diff --git a/src/glsl/Makefile.am b/src/glsl/Makefile.am -index 1ecc003..6fb3d2d 100644 ---- a/src/glsl/Makefile.am -+++ b/src/glsl/Makefile.am -@@ -19,9 +19,7 @@ - # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - # IN THE SOFTWARE. - -- --# builtin_compiler is built before libglsl to generate builtin_function.cpp for libglsl. --# For this to work, a dummy version of builtin_function.cpp, builtin_stubs.cpp, is used. -+SUBDIRS = builtin_compiler glcpp - - AM_CPPFLAGS = \ - -I$(top_srcdir)/include \ -@@ -38,32 +36,23 @@ AM_LFLAGS = --nounistd -o$(LEX_OUTPUT_ROOT).c - - include Makefile.sources - --noinst_LTLIBRARIES = libglslcommon.la libglsl.la --noinst_PROGRAMS = glsl_compiler glsl_test builtin_compiler -+noinst_LTLIBRARIES = libglsl.la -+noinst_PROGRAMS = glsl_compiler glsl_test - --# common sources for builtin_compiler and libglsl --libglslcommon_la_SOURCES = \ -+libglsl_la_SOURCES = \ - glsl_lexer.ll \ - glsl_parser.cc \ - $(LIBGLSL_FILES) \ -- $(LIBGLSL_CXX_FILES) -- --libglslcommon_la_LIBADD = glcpp/libglcpp.la -- --# common sources for builtin_compiler and glsl_compiler --GLSL2_SOURCES = \ -- $(top_srcdir)/src/mesa/program/hash_table.c \ -- $(top_srcdir)/src/mesa/program/symbol_table.c \ -- $(GLSL_COMPILER_CXX_FILES) -- --libglsl_la_SOURCES = \ -+ $(LIBGLSL_CXX_FILES) \ - builtin_function.cpp - --libglsl_la_LIBADD = libglslcommon.la -+libglsl_la_LIBADD = glcpp/libglcpp.la - libglsl_la_LDFLAGS = - - glsl_compiler_SOURCES = \ -- $(GLSL2_SOURCES) -+ $(top_srcdir)/src/mesa/program/hash_table.c \ -+ $(top_srcdir)/src/mesa/program/symbol_table.c \ -+ $(GLSL_COMPILER_CXX_FILES) - - glsl_compiler_LDADD = libglsl.la - -@@ -76,12 +65,6 @@ glsl_test_SOURCES = \ - - glsl_test_LDADD = libglsl.la - --builtin_compiler_SOURCES = \ -- $(GLSL2_SOURCES) \ -- builtin_stubs.cpp -- --builtin_compiler_LDADD = libglslcommon.la -- - # automake <=1.11 and automake >=1.12 have different conventions for naming C++ header files - # made by yacc. To work with both, we write our own rule rather than using automake's. - # When (if) we require automake >=1.12 in configure.ac, this can be removed, and we can use -@@ -89,16 +72,11 @@ builtin_compiler_LDADD = libglslcommon.la - glsl_parser.cc glsl_parser.h: glsl_parser.yy - $(AM_V_GEN) $(YACC) -v -o glsl_parser.cc -p "_mesa_glsl_" --defines=glsl_parser.h $< - --BUILT_SOURCES = glsl_parser.h builtin_function.cpp --CLEANFILES = glsl_lexer.cc glsl_parser.cc $(BUILT_SOURCES) -- --builtin_function.cpp: $(srcdir)/builtins/profiles/* $(srcdir)/builtins/ir/* $(srcdir)/builtins/glsl/* $(srcdir)/builtins/tools/generate_builtins.py $(srcdir)/builtins/tools/texture_builtins.py builtin_compiler$(EXEEXT) -- $(AM_V_GEN) $(PYTHON2) $(PYTHON_FLAGS) $(srcdir)/builtins/tools/generate_builtins.py ./builtin_compiler > builtin_function.cpp || rm -f builtin_function.cpp -- --glcpp/libglcpp.la: -- cd glcpp ; $(MAKE) $(AM_MAKEFLAGS) -+BUILT_SOURCES = glsl_parser.h -+CLEANFILES = glsl_lexer.cc glsl_parser.cc $(BUILT_SOURCES) builtin_function.cpp - --SUBDIRS = glcpp -+builtin_function.cpp: $(srcdir)/builtins/profiles/* $(srcdir)/builtins/ir/* $(srcdir)/builtins/glsl/* $(srcdir)/builtins/tools/generate_builtins.py $(srcdir)/builtins/tools/texture_builtins.py builtin_compiler/builtin_compiler$(BUILD_EXEEXT) -+ $(AM_V_GEN) $(PYTHON2) $(PYTHON_FLAGS) $(srcdir)/builtins/tools/generate_builtins.py builtin_compiler/builtin_compiler$(BUILD_EXEEXT) > builtin_function.cpp || rm -f builtin_function.cpp - - # Provide compatibility with scripts for the old Mesa build system for - # a while by putting a link to the library in the current directory. -diff --git a/src/glsl/builtin_compiler/Makefile.am b/src/glsl/builtin_compiler/Makefile.am -new file mode 100644 -index 0000000..72032b5 ---- /dev/null -+++ b/src/glsl/builtin_compiler/Makefile.am -@@ -0,0 +1,68 @@ -+# Copyright © 2012 Jon TURNEY -+# Copyright © 2012 Thierry Reding -+# -+# Permission is hereby granted, free of charge, to any person obtaining a -+# copy of this software and associated documentation files (the "Software"), -+# to deal in the Software without restriction, including without limitation -+# the rights to use, copy, modify, merge, publish, distribute, sublicense, -+# and/or sell copies of the Software, and to permit persons to whom the -+# Software is furnished to do so, subject to the following conditions: -+# -+# The above copyright notice and this permission notice (including the next -+# paragraph) shall be included in all copies or substantial portions of the -+# Software. -+# -+# THE SOFTWARE IS 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 SOFTWARE OR THE USE OR OTHER DEALINGS -+# IN THE SOFTWARE. -+ -+CC = @CC_FOR_BUILD@ -+CFLAGS = @CFLAGS_FOR_BUILD@ -+CPP = @CPP_FOR_BUILD@ -+CPPFLAGS = @CPPFLAGS_FOR_BUILD@ -+CXX = @CXX_FOR_BUILD@ -+CXXFLAGS = @CXXFLAGS_FOR_BUILD@ -+LD = @LD_FOR_BUILD@ -+LDFLAGS = @LDFLAGS_FOR_BUILD@ -+ -+AM_CFLAGS = \ -+ -I $(top_srcdir)/include \ -+ -I $(top_srcdir)/src/mapi \ -+ -I $(top_srcdir)/src/mesa \ -+ -I $(GLSL_SRCDIR) \ -+ -I $(GLSL_SRCDIR)/glcpp \ -+ $(DEFINES_FOR_BUILD) -+ -+AM_CXXFLAGS = $(AM_CFLAGS) -+ -+AM_YFLAGS = -v -d -p "glcpp_parser_" -+AM_LFLAGS = --nounistd -o$(LEX_OUTPUT_ROOT).c -+ -+include ../Makefile.sources -+ -+noinst_PROGRAMS = builtin_compiler -+ -+builtin_compiler_SOURCES = \ -+ $(GLSL_SRCDIR)/glcpp/glcpp-lex.l \ -+ $(GLSL_SRCDIR)/glcpp/glcpp-parse.y \ -+ $(LIBGLCPP_FILES) \ -+ $(GLSL_SRCDIR)/glsl_lexer.ll \ -+ $(GLSL_SRCDIR)/glsl_parser.cc \ -+ $(LIBGLSL_FILES) \ -+ $(LIBGLSL_CXX_FILES) \ -+ $(top_srcdir)/src/mesa/program/hash_table.c \ -+ $(top_srcdir)/src/mesa/program/symbol_table.c \ -+ $(GLSL_COMPILER_CXX_FILES) \ -+ builtin_stubs.cpp -+ -+BUILT_SOURCES = \ -+ glcpp-lex.c \ -+ glcpp-parse.c \ -+ glcpp-parse.h \ -+ glsl_lexer.cc -+ -+CLEANFILES = $(BUILT_SOURCES) -diff --git a/src/glsl/builtin_compiler/builtin_stubs.cpp b/src/glsl/builtin_compiler/builtin_stubs.cpp -new file mode 100644 -index 0000000..dfa5d32 ---- /dev/null -+++ b/src/glsl/builtin_compiler/builtin_stubs.cpp -@@ -0,0 +1,39 @@ -+/* -+ * Copyright © 2010 Intel Corporation -+ * -+ * Permission is hereby granted, free of charge, to any person obtaining a -+ * copy of this software and associated documentation files (the "Software"), -+ * to deal in the Software without restriction, including without limitation -+ * the rights to use, copy, modify, merge, publish, distribute, sublicense, -+ * and/or sell copies of the Software, and to permit persons to whom the -+ * Software is furnished to do so, subject to the following conditions: -+ * -+ * The above copyright notice and this permission notice (including the next -+ * paragraph) shall be included in all copies or substantial portions of the -+ * Software. -+ * -+ * THE SOFTWARE IS 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 SOFTWARE OR THE USE OR OTHER -+ * DEALINGS IN THE SOFTWARE. -+ */ -+ -+#include -+#include "glsl_parser_extras.h" -+ -+/* A dummy file. When compiling prototypes, we don't care about builtins. -+ * We really don't want to half-compile builtin_functions.cpp and fail, though. -+ */ -+void -+_mesa_glsl_release_functions(void) -+{ -+} -+ -+void -+_mesa_glsl_initialize_functions(_mesa_glsl_parse_state *state) -+{ -+ (void) state; -+} -diff --git a/src/glsl/builtin_stubs.cpp b/src/glsl/builtin_stubs.cpp -deleted file mode 100644 -index dfa5d32..0000000 ---- a/src/glsl/builtin_stubs.cpp -+++ /dev/null -@@ -1,39 +0,0 @@ --/* -- * Copyright © 2010 Intel Corporation -- * -- * Permission is hereby granted, free of charge, to any person obtaining a -- * copy of this software and associated documentation files (the "Software"), -- * to deal in the Software without restriction, including without limitation -- * the rights to use, copy, modify, merge, publish, distribute, sublicense, -- * and/or sell copies of the Software, and to permit persons to whom the -- * Software is furnished to do so, subject to the following conditions: -- * -- * The above copyright notice and this permission notice (including the next -- * paragraph) shall be included in all copies or substantial portions of the -- * Software. -- * -- * THE SOFTWARE IS 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 SOFTWARE OR THE USE OR OTHER -- * DEALINGS IN THE SOFTWARE. -- */ -- --#include --#include "glsl_parser_extras.h" -- --/* A dummy file. When compiling prototypes, we don't care about builtins. -- * We really don't want to half-compile builtin_functions.cpp and fail, though. -- */ --void --_mesa_glsl_release_functions(void) --{ --} -- --void --_mesa_glsl_initialize_functions(_mesa_glsl_parse_state *state) --{ -- (void) state; --} diff --git a/meta/recipes-graphics/mesa/mesa/dont-fail-if-libX11-isnt-installed.patch b/meta/recipes-graphics/mesa/mesa/dont-fail-if-libX11-isnt-installed.patch deleted file mode 100644 index 80735a65e9..0000000000 --- a/meta/recipes-graphics/mesa/mesa/dont-fail-if-libX11-isnt-installed.patch +++ /dev/null @@ -1,36 +0,0 @@ -Upstream-Status: Backport - -From d6b06474f69129eb41ecd85d6b3bb0eb7b9dccb3 Mon Sep 17 00:00:00 2001 -From: Daniel Stone -Date: Tue, 9 Oct 2012 14:27:06 +1100 -Subject: [PATCH] build: Don't fail if libX11 isn't installed - -configure.ac would previously refuse to complete if libX11 wasn't -installed, even if we'd disabled GLX and weren't building an X11 EGL -platform. Make the check simply set the no_x variable that's used (but -never set) immediately below for what looks like this very case. - -Signed-off-by: Daniel Stone -Reviewed-by: Matt Turner -Reviewed-by: Dan Nicholson -(cherry picked from commit 4004620d34a580c8fdb965d9b640e97453fc8b28) ---- - configure.ac | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/configure.ac b/configure.ac -index eb273b9..b384b44 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -836,7 +836,7 @@ if test "x$enable_dri" = xyes; then - fi - - dnl Find out if X is available. --PKG_CHECK_MODULES([X11], [x11]) -+PKG_CHECK_MODULES([X11], [x11], [no_x=no], [no_x=yes]) - - dnl Try to tell the user that the --x-* options are only used when - dnl pkg-config is not available. This must be right after AC_PATH_XTRA. --- -1.7.10.4 - diff --git a/meta/recipes-graphics/mesa/mesa/fix-egl-compilation-without-x11-headers.patch b/meta/recipes-graphics/mesa/mesa/fix-egl-compilation-without-x11-headers.patch deleted file mode 100644 index 6436b592b4..0000000000 --- a/meta/recipes-graphics/mesa/mesa/fix-egl-compilation-without-x11-headers.patch +++ /dev/null @@ -1,32 +0,0 @@ -Upstream-Status: Submitted - -Picked from mesa-dev mailing list: http://marc.info/?l=mesa3d-dev&m=133053004130468 - -From: Benjamin Franzke -Date: Wed, 29 Feb 2012 15:36:23 +0100 -Subject: [PATCH] configure: Fix egl compilation without x11 headers - -We dont want eglplatform.h to typedef egl native types -to x11 types, when x11 headers are not available. ---- - configure.ac | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/configure.ac b/configure.ac -index b384b44..8eb8459 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -1262,6 +1262,10 @@ if test "x$enable_egl" = xyes; then - - AC_CHECK_FUNC(mincore, [DEFINES="$DEFINES -DHAVE_MINCORE"]) - -+ if test "$have_x" != yes; then -+ DEFINES="$DEFINES -DMESA_EGL_NO_X11_HEADERS" -+ fi -+ - if test "$enable_static" != yes; then - # build egl_glx when libGL is built - if test "x$enable_glx" = xyes; then --- -1.7.10.4 - diff --git a/meta/recipes-graphics/mesa/mesa/fix-glsl-cross.patch b/meta/recipes-graphics/mesa/mesa/fix-glsl-cross.patch new file mode 100644 index 0000000000..34226ea58b --- /dev/null +++ b/meta/recipes-graphics/mesa/mesa/fix-glsl-cross.patch @@ -0,0 +1,43 @@ +The target libtool is used when building host binaries, which predictably +doesn't work. + +Upstream-Status: Submitted (https://bugs.freedesktop.org/show_bug.cgi?id=44618) +Signed-off-by: Jonathan Liu +Signed-off-by: Ross Burton + +diff --git a/src/glsl/builtin_compiler/Makefile.am b/src/glsl/builtin_compiler/Makefile.am +index e11a17f..8ebe0a2 100644 +--- a/src/glsl/builtin_compiler/Makefile.am ++++ b/src/glsl/builtin_compiler/Makefile.am +@@ -64,6 +64,8 @@ AM_CXXFLAGS = $(AM_CFLAGS) + include ../Makefile.sources + + noinst_PROGRAMS = builtin_compiler ++ ++if !CROSS_COMPILING + noinst_LTLIBRARIES = libglslcore.la libglcpp.la + + libglcpp_la_SOURCES = \ +@@ -73,6 +75,7 @@ libglcpp_la_SOURCES = \ + libglslcore_la_SOURCES = \ + $(BUILTIN_COMPILER_GENERATED_CXX_FILES) \ + $(LIBGLSL_FILES) ++endif + + builtin_compiler_SOURCES = \ + $(top_srcdir)/src/mesa/main/hash_table.c \ +@@ -81,4 +84,14 @@ builtin_compiler_SOURCES = \ + $(top_srcdir)/src/mesa/program/symbol_table.c \ + $(BUILTIN_COMPILER_CXX_FILES) \ + $(GLSL_COMPILER_CXX_FILES) ++ ++if CROSS_COMPILING ++builtin_compiler_SOURCES += \ ++ $(LIBGLCPP_GENERATED_FILES) \ ++ $(LIBGLCPP_FILES) \ ++ $(BUILTIN_COMPILER_GENERATED_CXX_FILES) \ ++ $(LIBGLSL_FILES) ++builtin_compiler_CPPFLAGS = $(AM_CPPFLAGS) ++else + builtin_compiler_LDADD = libglslcore.la libglcpp.la ++endif diff --git a/meta/recipes-graphics/mesa/mesa_9.0.2.bb b/meta/recipes-graphics/mesa/mesa_9.0.2.bb deleted file mode 100644 index 6671f994b0..0000000000 --- a/meta/recipes-graphics/mesa/mesa_9.0.2.bb +++ /dev/null @@ -1,4 +0,0 @@ -require mesa-common.inc -require mesa-${PV}.inc -require mesa.inc -PR = "${INC_PR}.1" diff --git a/meta/recipes-graphics/mesa/mesa_9.1.3.bb b/meta/recipes-graphics/mesa/mesa_9.1.3.bb new file mode 100644 index 0000000000..60a90a3c73 --- /dev/null +++ b/meta/recipes-graphics/mesa/mesa_9.1.3.bb @@ -0,0 +1,14 @@ +SRC_URI = "ftp://ftp.freedesktop.org/pub/mesa/${PV}/MesaLib-${PV}.tar.bz2 \ + file://EGL-Mutate-NativeDisplayType-depending-on-config.patch \ + file://fix-glsl-cross.patch \ + " + +SRC_URI[md5sum] = "952ccd03547ed72333b64e1746cf8ada" +SRC_URI[sha256sum] = "8d5dac2202d0355bff5cfd183582ec8167d1d1227b7bb7a669acecbeaa52d766" + +LIC_FILES_CHKSUM = "file://docs/license.html;md5=42d77d95cba529a3637129be87d6555d" + +S = "${WORKDIR}/Mesa-${PV}" + +require mesa-common.inc +require mesa.inc -- cgit 1.2.3-korg