From 11396bb3b49e244165d80070ce3ae0a5d432257d Mon Sep 17 00:00:00 2001 From: Ross Burton Date: Fri, 29 Jun 2018 17:24:21 +0100 Subject: php: disable non-deterministic valgrind Valgrind support in PHP looks on the host for Valgrind headers, backport a patch from upstream so that Valgrind support is disabled by default. Signed-off-by: Ross Burton --- meta-oe/recipes-devtools/php/php.inc | 1 + meta-oe/recipes-devtools/php/php/valgrind.patch | 115 ++++++++++++++++++++++++ 2 files changed, 116 insertions(+) create mode 100644 meta-oe/recipes-devtools/php/php/valgrind.patch diff --git a/meta-oe/recipes-devtools/php/php.inc b/meta-oe/recipes-devtools/php/php.inc index 785c2f5acc..4f8e45f575 100644 --- a/meta-oe/recipes-devtools/php/php.inc +++ b/meta-oe/recipes-devtools/php/php.inc @@ -22,6 +22,7 @@ SRC_URI_append_class-target = " \ file://php-fpm-apache.conf \ file://70_mod_php${PHP_MAJOR_VERSION}.conf \ file://php-fpm.service \ + file://valgrind.patch \ " S = "${WORKDIR}/php-${PV}" diff --git a/meta-oe/recipes-devtools/php/php/valgrind.patch b/meta-oe/recipes-devtools/php/php/valgrind.patch new file mode 100644 index 0000000000..c3e232ba23 --- /dev/null +++ b/meta-oe/recipes-devtools/php/php/valgrind.patch @@ -0,0 +1,115 @@ +Upstream-Status: Backport +Signed-off-by: Ross Burton + +From 25ba60b1479eb332a7388732f3ee5467000fbe73 Mon Sep 17 00:00:00 2001 +From: Michael Heimpold +Date: Wed, 14 Feb 2018 14:46:17 +0100 +Subject: [PATCH] Fixed bug #75722: Rework valgrind detection + +As described in bug report #75722, the configure script (acinclude.m4) +currently searches for the valgrind header file and enables valgrind +support if found. + +When cross-compiling the searched paths are invalid for the target +platform because they belong to the host system. At the moment, there is +no way to tell the build system a dedicated path where to look for the +header file. + +This leads to the issue, that when cross-compiling eg. for ARMv5 platform, +that valgrind header file is detected - e.g. because host system is amd64 - +and support is enabled - but target platform will never support valgrind +(valgrind requires e.g. at least ARMv7). + +This change reworks the detection so that user could manually opt-in +valgrind support and optionally specify a directory where the build system +should look for the header file using the --with-valgrind option. +--- + NEWS | 4 ++++ + acinclude.m4 | 20 -------------------- + configure.ac | 30 +++++++++++++++++++++++++++++- + 3 files changed, 33 insertions(+), 21 deletions(-) + +diff --git a/NEWS b/NEWS +index 1faf13831ebd..5d65fd083357 100644 +--- a/NEWS ++++ b/NEWS +@@ -2,6 +2,10 @@ PHP NEWS + ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| + ?? ??? 2018, PHP 7.2.5 + ++- Core: ++ . Fixed bug #75722 (Convert valgrind detection to configure option). ++ (Michael Heimpold) ++ + - Mbstring: + . Fixed bug #75944 (Wrong cp1251 detection). (dmk001) + . Fixed bug #76113 (mbstring does not build with Oniguruma 6.8.1). +diff --git a/acinclude.m4 b/acinclude.m4 +index d42d70853515..eb06cb7e363f 100644 +--- a/acinclude.m4 ++++ b/acinclude.m4 +@@ -3249,23 +3249,3 @@ AC_DEFUN([PHP_CHECK_BUILTIN_SSUBLL_OVERFLOW], [ + + dnl Load the AX_CHECK_COMPILE_FLAG macro from the autoconf archive. + m4_include([build/ax_check_compile_flag.m4]) +- +-dnl PHP_CHECK_VALGRIND +-AC_DEFUN([PHP_CHECK_VALGRIND], [ +- AC_MSG_CHECKING([for valgrind]) +- +- SEARCH_PATH="/usr/local /usr" +- SEARCH_FOR="/include/valgrind/valgrind.h" +- for i in $SEARCH_PATH ; do +- if test -r $i/$SEARCH_FOR; then +- VALGRIND_DIR=$i +- fi +- done +- +- if test -z "$VALGRIND_DIR"; then +- AC_MSG_RESULT([not found]) +- else +- AC_MSG_RESULT(found in $VALGRIND_DIR) +- AC_DEFINE(HAVE_VALGRIND, 1, [ ]) +- fi +-]) +diff --git a/configure.ac b/configure.ac +index 05f94f08a9c8..c5d9be978bda 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -753,7 +753,35 @@ if test "x$php_crypt_r" = "x1"; then + PHP_CRYPT_R_STYLE + fi + +-PHP_CHECK_VALGRIND ++dnl Check valgrind support ++PHP_ARG_WITH(valgrind, [whether to enable valgrind support], ++[ --with-valgrind=DIR Enable valgrind support], yes, no) ++ ++if test "$PHP_VALGRIND" != "no"; then ++ ++ AC_MSG_CHECKING([for valgrind header]) ++ ++ if test "$PHP_VALGRIND" = "yes"; then ++ SEARCH_PATH="/usr/local /usr" ++ else ++ SEARCH_PATH="$PHP_VALGRIND" ++ fi ++ ++ SEARCH_FOR="/include/valgrind/valgrind.h" ++ for i in $SEARCH_PATH ; do ++ if test -r $i/$SEARCH_FOR; then ++ VALGRIND_DIR=$i ++ fi ++ done ++ ++ if test -z "$VALGRIND_DIR"; then ++ AC_MSG_RESULT([not found]) ++ else ++ AC_MSG_RESULT(found in $VALGRIND_DIR) ++ AC_DEFINE(HAVE_VALGRIND, 1, [ ]) ++ fi ++ ++fi + + dnl General settings. + dnl ------------------------------------------------------------------------- \ No newline at end of file -- cgit 1.2.3-korg