We were using nested functions inadvertantly and they were compiling fine
with gcc but clang doesnt support nested functions hence configure tests for
cogl started to fail, but it was a test error not compiler error
which was undetected thus far

Backport a fix from upstream to help clang compile clutter

Signed-off-by: Khem Raj <raj.k...@gmail.com>
---
Changed-since-v1:

- Selectively backport needed patch instead of package upgrade

 .../0001-build-Use-AC_COMPILE_IFELSE.patch         | 105 +++++++++++++++++++++
 .../recipes-graphics/clutter/clutter-1.0_1.24.2.bb |   1 +
 2 files changed, 106 insertions(+)
 create mode 100644 
meta/recipes-graphics/clutter/clutter-1.0/0001-build-Use-AC_COMPILE_IFELSE.patch

diff --git 
a/meta/recipes-graphics/clutter/clutter-1.0/0001-build-Use-AC_COMPILE_IFELSE.patch
 
b/meta/recipes-graphics/clutter/clutter-1.0/0001-build-Use-AC_COMPILE_IFELSE.patch
new file mode 100644
index 0000000..c4edff3
--- /dev/null
+++ 
b/meta/recipes-graphics/clutter/clutter-1.0/0001-build-Use-AC_COMPILE_IFELSE.patch
@@ -0,0 +1,105 @@
+From 483a4bb00e7dd2f14d86e167c8013c8638723c33 Mon Sep 17 00:00:00 2001
+From: Emmanuele Bassi <eba...@gnome.org>
+Date: Thu, 18 Feb 2016 17:19:09 +0000
+Subject: [PATCH] build: Use AC_COMPILE_IFELSE
+
+Instead of AC_TRY_COMPILE, which has been deprecated by newer autoconf.
+---
+Upstream-Status: Backport
+Signed-off-by: Khem Raj <raj.k...@gmail.com>
+
+ configure.ac | 66 ++++++++++++++++++++++++++++++------------------------------
+ 1 file changed, 33 insertions(+), 33 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 4d72e0c..8ca3f94 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -348,24 +348,25 @@ AS_IF([test "x$enable_wayland" != xno],
+         # We need to manually check for Wayland support in Cogl because
+         # the windowing systems are not exposed in the pkg-config file
+         saved_CFLAGS="${CFLAGS}"
+-        CFLAGS="`$PKG_CONFIG --cflags $CLUTTER_BASE_PC_FILES`"
++        CFLAGS="`$PKG_CONFIG --cflags cogl-1.0`"
+ 
+         AC_MSG_CHECKING([for Wayland Cogl backend])
+-        AC_TRY_COMPILE([#include <cogl/cogl.h>],
+-                       [
+-                         #ifndef COGL_HAS_EGL_PLATFORM_WAYLAND_SUPPORT
+-                         #error "No Wayland support in Cogl"
+-                         #endif
+-                         int main (void) { return 0; }
+-                       ],
+-                       [
+-                         AC_MSG_RESULT(yes)
+-                         have_cogl_wayland=yes
+-                       ],
+-                       [
+-                         AC_MSG_RESULT(no)
+-                         have_cogl_wayland=no
+-                       ])
++
++        AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
++#include <cogl/cogl.h>
++]],
++[[
++#ifndef COGL_HAS_EGL_PLATFORM_WAYLAND_SUPPORT
++#error Cogl compiled without Wayland support
++#endif
++]])], [
++          AC_MSG_RESULT(yes)
++          have_cogl_wayland=yes
++        ], [
++          AC_MSG_RESULT(no)
++          have_cogl_wayland=no
++        ])
++
+         CFLAGS="${saved_CFLAGS}"
+         AS_IF([test "x$have_cogl_wayland" = xyes],
+               [
+@@ -499,26 +500,25 @@ AS_IF([test "x$enable_mir" = "xyes"],
+         # We need to manually check for Mir support in Cogl because
+         # the windowing systems are not exposed in the pkg-config file
+         saved_CFLAGS="${CFLAGS}"
+-        CFLAGS="`$PKG_CONFIG --cflags $CLUTTER_BASE_PC_FILES`"
++        CFLAGS="`$PKG_CONFIG --cflags cogl-1.0`"
+ 
+         AC_MSG_CHECKING([for Mir Cogl backend])
+-        AC_TRY_COMPILE([#include <cogl/cogl.h>],
+-                       [
+-                        #ifndef COGL_HAS_EGL_PLATFORM_MIR_SUPPORT
+-                        #error "No Mir support in Cogl"
+-                        #endif
+-                        int main (void) { return 0; }
+-                       ],
+-                       [
+-                         AC_MSG_RESULT(yes)
+-                         have_cogl_mir=yes
+-                       ],
+-                       [
+-                         AC_MSG_RESULT(no)
+-                         have_cogl_mir=no
+-                       ])
+ 
+-        CFLAGS="${saved_CFLAGS}"
++        AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
++#include <cogl/cogl.h>
++]],
++[[
++#ifndef COGL_HAS_EGL_PLATFORM_MIR_SUPPORT
++#error Cogl compiled without Mir support
++#endif
++]])], [
++          AC_MSG_RESULT(yes)
++          have_cogl_mir=yes
++        ], [
++          AC_MSG_RESULT(no)
++          have_cogl_mir=no
++        ])
++
+         AS_IF([test "x$have_cogl_mir" = xno], [AC_MSG_ERROR("*** Cogl is 
missing Mir support.")])
+ 
+         PKG_CHECK_EXISTS([mirclient],
+-- 
+1.9.1
+
diff --git a/meta/recipes-graphics/clutter/clutter-1.0_1.24.2.bb 
b/meta/recipes-graphics/clutter/clutter-1.0_1.24.2.bb
index 093bf6e..c53b3e7 100644
--- a/meta/recipes-graphics/clutter/clutter-1.0_1.24.2.bb
+++ b/meta/recipes-graphics/clutter/clutter-1.0_1.24.2.bb
@@ -6,4 +6,5 @@ SRC_URI[archive.md5sum] = "3b98e1b33719982a5736ae42cbf7183e"
 SRC_URI[archive.sha256sum] = 
"9631c98cb4bcbfec15e1bbe9eaa6eef0f127201552fce40d7d28f2133803cd63"
 SRC_URI += "file://install-examples.patch \
             file://run-installed-tests-with-tap-output.patch \
+            file://0001-build-Use-AC_COMPILE_IFELSE.patch \
             file://run-ptest"
-- 
1.9.1

-- 
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Reply via email to