Skip to content

Commit

Permalink
Fixed bug #75722: Rework valgrind detection
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
mhei authored and nikic committed Mar 23, 2018
1 parent 7f4327b commit 25ba60b
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 21 deletions.
4 changes: 4 additions & 0 deletions NEWS
Original file line number Diff line number Diff line change
Expand Up @@ -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).
Expand Down
20 changes: 0 additions & 20 deletions acinclude.m4
Original file line number Diff line number Diff line change
Expand Up @@ -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
])
30 changes: 29 additions & 1 deletion configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -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 -------------------------------------------------------------------------
Expand Down

0 comments on commit 25ba60b

Please sign in to comment.