pinentry: fix build issue with gcc 5.x
authorThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Sat, 20 Aug 2016 14:00:36 +0000 (16:00 +0200)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Sat, 20 Aug 2016 20:40:17 +0000 (22:40 +0200)
pinentry currently fails to build with gcc 5.x, because it uses some
functionality from std::string that requires C++11 without passing the
appropriate -std= value. We fix this by passing a proper -std= option
when gcc >= 5.x. Note that this can be removed once pinentry is bumped
to the newest version (currently 0.9.7) because they no longer use
std::string in the Qt part.

Fixes:

  http://autobuild.buildroot.net/results/6ea64f692acaebc4d58f3371c632b5121500f17e/
  (and many, many similar build failures)

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
One-beer-granted-to: Yann E. MORIN <yann.morin.1998@free.fr>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
package/pinentry/pinentry.mk

index 09a7705c2765cd356607ac8181527ec20a696bd6..bcb910a0e2ef9fd38826bbe2392c3388ef1b8285 100644 (file)
@@ -14,6 +14,13 @@ PINENTRY_DEPENDENCIES = \
        host-pkgconf
 PINENTRY_CONF_OPTS += --without-libcap       # requires PAM
 
+# pinentry uses some std::string functionality that needs C++11
+# support when gcc >= 5.x. This should be removed when bumping
+# pinentry, since newer versions no longer use std::string.
+ifeq ($(BR2_TOOLCHAIN_GCC_AT_LEAST_5),y)
+PINENTRY_CONF_ENV = CXXFLAGS="$(TARGET_CXXFLAGS) -std=gnu++11"
+endif
+
 # build with X if available
 ifeq ($(BR2_PACKAGE_XORG7),y)
 PINENTRY_CONF_OPTS += --with-x