|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2009-06-19 17:07 UTC] shahar dot e at zend dot com
Description: ------------ The default libreadline version that comes with OS X is too old and seems to be missing symbols like rl_mark, rl_pending_input, rl_history_list, rl_on_new_line. This is not detected by ./configure I am not sure what the minimum requirement is, but adding a check for rl_pending_input in the config.m4 file fixed the problem for me (or more correctly, I got proper detection by ./configure). Reproduce code: --------------- ./configure --with-readline on a default Mac OS X setup (I think it's 4.2) Expected result: ---------------- Configure to report a too old version of libreadline Actual result: -------------- Configure works, linking ext/readline fails due to missing symbols. PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Mon Oct 27 15:00:01 2025 UTC |
I used this patch to fix it, perhaps there is a better way (like checking a minimum version): --- ext/readline/config.m4.orig 2009-06-19 19:50:29.000000000 +0300 +++ ext/readline/config.m4 2009-06-19 19:47:51.000000000 +0300 -43,6 +43,12 @@ -L$READLINE_DIR/$PHP_LIBDIR $PHP_READLINE_LIBS ]) + dnl Check that libreadline has rl_pending_input defined + PHP_CHECK_LIBRARY(readline, rl_pending_input, + [], [ + AC_MSG_ERROR(readline library is missing some symbols and is probably too old) + ], []) + PHP_CHECK_LIBRARY(readline, rl_callback_read_char, [ AC_DEFINE(HAVE_RL_CALLBACK_READ_CHAR, 1, [ ])