|  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #19024 Compile error related to readlin
Submitted: 2002-08-21 11:56 UTC Modified: 2002-10-31 01:00 UTC
From: hz11 at nyu dot edu Assigned:
Status: No Feedback Package: Compile Failure
PHP Version: 4.2.2 OS: FreeBSD 4.6.2-RELEASE
Private report: No CVE-ID: None
View Add Comment Developer Edit
Welcome! If you don't have a Git account, you can't do anything here.
You can add a comment by following this link or if you reported this bug, you can edit this bug over here.
Block user comment
Status: Assign to:
Bug Type:
From: hz11 at nyu dot edu
New email:
PHP Version: OS:


 [2002-08-21 11:56 UTC] hz11 at nyu dot edu
I'm compiling php 4.2.2 on a stock FreeBSD 4.6.2-RELEASE box for use on the command line.  I'm using:

./configure --prefix=/usr/local/psh --enable-cli --without-pear --with-openssl=/usr/local/ssl --with-zlib --with-bcmath --with-bz2 --enable-ftp --with-gettext
--with-mysql=/usr/local/mysql --with-ncurses --enable-pcntl --with-libedit --with-readline --enable-shmop --enable-sockets --enable-sysvsem --enable-sysvshm
--with-expat-dir=/usr/local --enable-inline-optimization

The ./configure runs through fine (seemingly) but the compile dies with:

Making all in readline
gcc -I. -I/root/INSTALLED/php-4.2.2/ext/readline -I/root/INSTALLED/php-4.2.2/main -I/root/INSTALLED/php-4.2.2 -I/root/INSTALLED/php-4.2.2/Zend -I/usr/local/ssl/include
-I/usr/local/include -I/usr/local/mysql/include/mysql  -I/root/INSTALLED/php-4.2.2/TSRM -g -O2  -c readline.c && touch readline.lo
readline.c: In function `zif_readline_list_history':
readline.c:264: `HIST_ENTRY' undeclared (first use in this function)
readline.c:264: (Each undeclared identifier is reported only once
readline.c:264: for each function it appears in.)
readline.c:264: `history' undeclared (first use in this function)
readline.c:265: syntax error before `int'
readline.c:267: `ac' undeclared (first use in this function)
*** Error code 1

Stop in /root/INSTALLED/php-4.2.2/ext/readline.
*** Error code 1

Stop in /root/INSTALLED/php-4.2.2/ext/readline.
*** Error code 1

Stop in /root/INSTALLED/php-4.2.2/ext.
*** Error code 1

Stop in /root/INSTALLED/php-4.2.2.

This probably won't make a difference, but I had compiled the from the same source as a DSO (but I did make distclean before running the above ./configure).




Add a Patch

Pull Requests

Add a Pull Request


AllCommentsChangesGit/SVN commitsRelated reports
 [2002-08-21 14:13 UTC] hz11 at nyu dot edu
My last post wasn't very clear, and so here are some more details:

Using a source tree directly from tarball:

./configure --with-libedit gives:
checking for libedit readline replacement... yes
checking for readline support... no
checking for tgetent in -lncurses... yes
checking for readline in -ledit... no
configure: error: edit library required by readline not found

./configure --with-readline
./configure and compile are successful

./configure --with-libedit --with-readline
./configure successful
compile failed with error as posted previously

It seems the same behavior occurs when reusing a source tree as well.  Both ledit and lreadline show up in ldconfig -r.
 [2002-08-23 21:18 UTC]
Please check config.log for more details why the check fails.

 [2002-08-26 11:54 UTC] hz11 at nyu dot edu
Here is the config.log, from the point where it starts to get interesting.  I'm not really sure why it's breaking, but would be interested in knowing.  Let me know if there is anything else needed.


configure:53236: checking for PSPELL support
configure:53644: checking whether to include QDOM support
configure:54738: checking for libedit readline replacement
configure:54787: checking for readline support
configure:55705: checking for tgetent in -lncurses
configure:55724: gcc -o conftest -g -O2   -R/usr/local/ssl/lib -L/usr/local/ssl/lib -R/usr/local/lib -L/usr/local/lib -R/usr/local/mysql/lib/mysql -L/usr/local/mysql/lib/mysql
conftest.c -lncurses  -lncurses -lmysqlclient -lintl -lbz2 -lz -lcrypt -lssl -lcrypto -lm  -lcrypt 1>&5
configure:55983: checking for readline in -ledit
configure:56002: gcc -o conftest -g -O2  
    -R/usr/local/ssl/lib -L/usr/local/ssl/lib -R/usr/local/lib -L/usr/local/lib -R/usr/local/mysql/lib/mysql -L/usr/local/mysql/lib/mysql conftest.c -ledit  -lncurses -lncurses
-lmysqlclient -lintl -lbz2 -lz -lcrypt -lssl -lcrypto -lm  -lcrypt 1>&5
/tmp/cccEIFqx.o: In function `main':
/root/INSTALLED/php-4.2.2/configure(.text+0x7): undefined reference to `readline'
configure: failed program was:
#line 55991 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error.  */
/* We use char because int might match the return type of a gcc2
    builtin and then its argument prototype would still apply.  */
char readline();

int main() {
; return 0; }
 [2002-10-10 22:43 UTC]
Please try using this CVS snapshot:
For Windows:

 [2002-10-14 08:58 UTC] hz11 at nyu dot edu
I've compiled php4-200210140600, using this ./configure:

./configure --prefix=/home1/usr/local/psh --enable-cli --without-pear --with-openssl=/usr/local/ssl --with-zlib --with-bcmath --with-bz2 --enable-ftp --with-readline --with-libedit --with-mysql=/usr/local/mysql --with-ncurses --enable-pcntl --enable-shmop --enable-sockets --enable-sysvsem --enable-sysvshm --with-expat-dir=/usr/local --enable-inline-optimization

./configure seems to go ok, and with a snippet from config.log:

configure:59125: checking for PSPELL support
configure:59536: checking whether to include QDOM support
configure:60493: checking for libedit readline replacement
configure:60539: checking for readline support
configure:60625: checking for tgetent in -lncurses
configure:60644: gcc -o conftest -g -O2   -R/usr/local/ssl/lib -L/usr/local/ssl/lib -R/usr/local/mysql/lib/mysql -L/usr/local/mysql/lib/mysql conftest.c -lncurses  -lpanel -lncurses -lmysqlclient -lbz2 -lz -lcrypt -lssl -lcrypto -lm  -lcrypt 1>&5
configure:60907: checking for readline in -lreadline
configure:60926: gcc -o conftest -g -O2  
    -R/usr/local/ssl/lib -L/usr/local/ssl/lib -R/usr/local/mysql/lib/mysql -L/usr/local/mysql/lib/mysql conftest.c -lreadline  -lncurses -lpanel -lncurses -lmysqlclient -lbz2 -lz -lcrypt -lssl -lcrypto -lm  -lcrypt 1>&5
configure:61059: checking for add_history in -lhistory
configure:61078: gcc -o conftest -g -O2  
    -R/usr/local/ssl/lib -L/usr/local/ssl/lib -R/usr/local/mysql/lib/mysql -L/usr/local/mysql/lib/mysql conftest.c -lhistory  -lreadline -lncurses -lpanel -lncurses -lmysqlclient -lbz2 -lz -lcrypt -lssl -lcrypto -lm  -lcrypt 1>&5
configure:61466: checking for tgetent in -lncurses
configure:61748: checking for libedit
in -ledit
configure:61767: gcc -o conftest -g -O2  
    -R/usr/local/ssl/lib -L/usr/local/ssl/lib -R/usr/local/mysql/lib/mysql -L/usr/local/mysql/lib/mysql conftest.c -ledit  -lncurses -lhistory -lreadline -lncurses -lpanel -lncurses -lmysqlclient -lbz2 -lz -lcrypt -lssl -lcrypto -lm  -lcrypt 1>&5
configure:62116: checking for recode support
configure:62758: checking whether to enable PHP sessions

However the compile kicks right as the big link happens:

/home1/tmp/snapshot/php4-200210140600/ext/readline/readline.c(.text+0xc94): multiple definition of `zif_readline_completion_function'
ext/readline/readline.o(.text+0xc94):/home1/tmp/snapshot/php4-200210140600/ext/readline/readline.c: first defined here
ext/readline/readline.o: In function `zif_readline':
/home1/tmp/snapshot/php4-200210140600/ext/readline/readline.c(.data+0x80): multiple definition of `readline_module_entry'
ext/readline/readline.o(.data+0x80):/home1/tmp/snapshot/php4-200210140600/ext/readline/readline.c: first defined here
ext/readline/readline.o: In function `zm_startup_readline':
/home1/tmp/snapshot/php4-200210140600/ext/readline/readline.c(.text+0x0): multiple definition of `zm_startup_readline'
ext/readline/readline.o(.text+0x0):/home1/tmp/snapshot/php4-200210140600/ext/readline/readline.c: first defined here
ext/readline/readline.o: In function `zm_deactivate_readline':
/home1/tmp/snapshot/php4-200210140600/ext/readline/readline.c(.text+0x10): multiple definition of `zm_deactivate_readline'
ext/readline/readline.o(.text+0x10):/home1/tmp/snapshot/php4-200210140600/ext/readline/readline.c: first defined here
*** Error code 1

Stop in /home1/tmp/snapshot/php4-200210140600.

Let me know what other details may be needed.  Thanks,

 [2002-10-14 09:35 UTC]
I'm using the same FreeBSD's version and the same package without any error.
 [2002-10-14 09:38 UTC]
By the way it looks like readline.c is still using PHP_FUNCTION and PHP_FE which are depreciated and just aliases of Zend's. Shall I update this or someone is working on it?
 [2002-10-31 01:00 UTC] php-bugs at lists dot php dot net
No feedback was provided for this bug for over 2 weeks, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".
PHP Copyright © 2001-2023 The PHP Group
All rights reserved.
Last updated: Tue Sep 26 00:01:25 2023 UTC