EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  <20092010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  <20092010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: curses in base?
From: Andrew Johnson <[email protected]>
To: Matthieu Bec <[email protected]>, "EPICS tech-talk" <[email protected]>
Date: Tue, 29 Sep 2009 10:42:52 -0500
Hi Matthieu,

On Tuesday 29 September 2009 09:45:59 you wrote:
>
> That surpised me because I don't recall anything in base that has curses
> like features or interface. Rebuilding base without those flags actually
> succeeds.

Linking against libcurses or libncurses is a requirement on some versions of 
Linux when linking with the GNU readline library which is used for command-
line editing support.  I just compiled Base twice with -lncurses removed; on 
my Fedora Core 8 system it built with no problems, but on a Fedora Core 6 box 
I get these errors without it:

/usr/lib/libreadline.so.5: undefined reference to `PC'
/usr/lib/libreadline.so.5: undefined reference to `tgetflag'
/usr/lib/libreadline.so.5: undefined reference to `tgetent'
/usr/lib/libreadline.so.5: undefined reference to `UP'
/usr/lib/libreadline.so.5: undefined reference to `tputs'
/usr/lib/libreadline.so.5: undefined reference to `tgoto'
/usr/lib/libreadline.so.5: undefined reference to `tgetnum'
/usr/lib/libreadline.so.5: undefined reference to `BC'
/usr/lib/libreadline.so.5: undefined reference to `tgetstr'
collect2: ld returned 1 exit status

If Base builds without any problems on your system without linking to either 
curses library then that's great and you can obviously do without it, but some 
(older) Linux systems do need it.

We obviously need to provide more options for the COMMANDLINE_LIBRARY setting 
on Linux to select whether to link with libcurses, libncurses or neither.  
It's probably safe nowadays to assume that all Linux distributions will come 
with libreadline though.  I'm going to make some changes and put these lines 
into the file configure/os/CONFIG_SITE.Common.linuxCommon for the next 
release:

# Depending on your version of Linux you'll want one of the following
# lines to enable command-line editing and history support
COMMANDLINE_LIBRARY = READLINE
#COMMANDLINE_LIBRARY = READLINE_NCURSES
#COMMANDLINE_LIBRARY = READLINE_CURSES

HTH,

- Andrew
-- 
The best FOSS code is written to be read by other humans -- Harald Welte


Navigate by Date:
Prev: Re: alarm handler on base 3-14-11 John William Sinclair
Next: RE: EPICS Python client application survey Wang Xiaoqiang
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  <20092010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: EPICS Python client application survey Michael Abbott
Next: Problem with cothread-1-14 in linux-x86_64 Juan Carlos Guzman
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  <20092010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 31 Jan 2014 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·