diff --git a/NEWS b/NEWS index 2b21969dffbce..815e975349573 100644 --- a/NEWS +++ b/NEWS @@ -27,6 +27,10 @@ PHP NEWS return value check). (nielsdos, botovq) . Fix error return check of EVP_CIPHER_CTX_ctrl(). (nielsdos) +- Readline: + . Fixed bug GH-19250 and bug #51360 (Invalid conftest for rl_pending_input). + (petk, nielsdos) + - SOAP: . Fixed bug GH-18640 (heap-use-after-free ext/soap/php_encoding.c:299:32 in soap_check_zval_ref). (nielsdos) diff --git a/ext/readline/config.m4 b/ext/readline/config.m4 index 209f92b6e0a76..873b116fcffb6 100644 --- a/ext/readline/config.m4 +++ b/ext/readline/config.m4 @@ -47,13 +47,6 @@ if test "$PHP_READLINE" && test "$PHP_READLINE" != "no"; then -L$READLINE_DIR/$PHP_LIBDIR $PHP_READLINE_LIBS ]) - PHP_CHECK_LIBRARY(readline, rl_pending_input, - [], [ - AC_MSG_ERROR([invalid readline installation detected. Try --with-libedit instead.]) - ], [ - -L$READLINE_DIR/$PHP_LIBDIR $PHP_READLINE_LIBS - ]) - PHP_CHECK_LIBRARY(readline, rl_callback_read_char, [ AC_DEFINE(HAVE_RL_CALLBACK_READ_CHAR, 1, [ ]) @@ -75,6 +68,26 @@ if test "$PHP_READLINE" && test "$PHP_READLINE" != "no"; then -L$READLINE_DIR/$PHP_LIBDIR $PHP_READLINE_LIBS ]) + CFLAGS_SAVE=$CFLAGS + LDFLAGS_SAVE=$LDFLAGS + LIBS_SAVE=$LIBS + CFLAGS="$CFLAGS $INCLUDES" + LDFLAGS="$LDFLAGS -L$READLINE_DIR/$PHP_LIBDIR" + LIBS="$LIBS -lreadline" + + dnl Sanity and minimum version check if readline library has variable + dnl rl_pending_input. + AC_CHECK_DECL([rl_pending_input],, [AC_MSG_FAILURE([ + Invalid readline installation detected. Try --with-libedit instead. + ])], [ + #include + #include + ]) + + CFLAGS=$CFLAGS_SAVE + LDFLAGS=$LDFLAGS_SAVE + LIBS=$LIBS_SAVE + AC_DEFINE(HAVE_HISTORY_LIST, 1, [ ]) AC_DEFINE(HAVE_LIBREADLINE, 1, [ ])