Complete.Org: Mailing Lists: Archives: freeciv-dev: April 2001:
[Freeciv-Dev] Re: readline 4.2
Home

[Freeciv-Dev] Re: readline 4.2

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: Erik Sigra <sigra@xxxxxxx>, freeciv-dev@xxxxxxxxxxx
Subject: [Freeciv-Dev] Re: readline 4.2
From: Thue <thue@xxxxxxx>
Date: Sun, 29 Apr 2001 22:51:22 +0200

On Sunday 29 April 2001 22:27, Erik Sigra wrote:
> Tuesday 10 April 2001 15:06 skrev Thue:
> > On Tuesday 10 April 2001 14:56, Thue wrote:
> > > On Tuesday 10 April 2001 14:49, Erik Sigra wrote:
> > > > Just let Freeciv depend on readline-4.2 or higher for readline
> > > > functionality. It is generally better style for a program to require
> > > > current libraries than legacy libraries.
> >
> > On second thought, that would probably be best. Ok with everyone?
> > It could be done by checking for the rl_completion_matches() function.
>
> I still have readline problems. Configure doesn't find it and if I modify
> configure.in and run autoconf the compile ends with:
>
> gcc  -g -Wall  -o civserver  civserver.o ../common/libcivcommon.a
> ../ai/libcivai.a ./libcivserver.a  ../common/libcivcommon.a
> ../ai/libcivai.a ./libcivserver.a -lreadline  -lz
> /usr/local/lib/libreadline.so: undefined reference to `tgetnum'
> /usr/local/lib/libreadline.so: undefined reference to `tgoto'
> /usr/local/lib/libreadline.so: undefined reference to `tgetflag'
> /usr/local/lib/libreadline.so: undefined reference to `BC'
> /usr/local/lib/libreadline.so: undefined reference to `tputs'
> /usr/local/lib/libreadline.so: undefined reference to `PC'
> /usr/local/lib/libreadline.so: undefined reference to `tgetent'
> /usr/local/lib/libreadline.so: undefined reference to `UP'
> /usr/local/lib/libreadline.so: undefined reference to `tgetstr'
> collect2: ld returned 1 exit status
> make[2]: *** [civserver] Error 1
> make[2]: Leaving directory `/home/work/sourcecode/cvs/freeciv/server'
> make[1]: *** [all-recursive] Error 1
> make[1]: Leaving directory `/home/work/sourcecode/cvs/freeciv'
> make: *** [all-recursive-am] Error 2
>
>
> Some info:
>
> % ldd /usr/local/lib/libreadline.so
>         libc.so.6 => /lib/libc.so.6 (0x40031000)
>         /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x2aaaa000)
> % ldd /usr/local/lib/libhistory.so
>         libc.so.6 => /lib/libc.so.6 (0x40011000)
>         /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x2aaaa000)
>
>
> First few lines of readline-4.2/config.status:
>
> #! /bin/sh
> # Generated automatically by configure.
> # Run this file to recreate the current configuration.
> # This directory was configured as follows,
> # on host a77:
> #
> # ./configure  --with-curses --enable-debug

Again: I think the bug is that curses is not listed as a dynamic load 
dependesy. The nicest solution would still be to make people install readline 
correctly, possibly by giving fixes to the upstream maintainers.

If you just want to run it locally then run the server link command manually 
with an added -lcurses. Or append -lncurses to SERVER_LIBS in configure.in.

Possibly we ("we" as in "you", it works on debian :)) could add a lot of 
stuff to the freeciv configure.in to determine which curses lib to link with, 
but the correct place to fix this really is with the people distributing 
readline! (So it seems to me; somebody say if I am wrong)

Finally, all this configuration stuff is something I really don't have much 
knowledge about, so someone else go fix it :).
I admit I would be more motivated to fix it if it affected me, but that is 
life :). (witness how long it took from the point I apt-get installed the 
somewhat incompatible readline 4.2 to freeciv became readline 4.2 compatible)

-Thue


[Prev in Thread] Current Thread [Next in Thread]