On Thu, 2014-06-26 at 01:19 -0500, Robby Workman wrote:
> On Thu, 26 Jun 2014 07:55:58 +0200
> Vincent Bernat <[email protected]> wrote:
> 
> >  ❦ 25 juin 2014 21:36 -0500, Robby Workman <[email protected]> :
> > 
> > > Okay, looks like that's ncurses, so let's link ncurses too:
> > >
> > >   [rworkman@liberty NetworkManager-0.9.9.98]$ gcc -o testrl
> > > -lreadline -lncurses testrl.c [rworkman@liberty
> > > NetworkManager-0.9.9.98]$ strings testrl | grep readline
> > > libreadline.so.6 readline
> > >   readline
> > >
> > > Now, here's where I'm unclear.  If I add LDFLAGS="-lnurses" to the
> > > configure environment, the test passes and the complete build
> > > occurs successfully. What's unclear is *why* that's needed -- is
> > > this an omission in the NM sources (isn't nmtui a curses client and
> > > thus ncurses should be linked?) or is something different about how
> > > we (Slackware) build readline?
> > 
> > GNU readline requires linking to ncurses as well to get termcap
> > symbols. Here is an autoconf recipe for that:
> >  http://www.gnu.org/software/autoconf-archive/ax_lib_readline.html
> 
> If I'm reading that correctly, that snippet above tries to link
> in curses if it encounters failure, so perhaps NM should use it?
> Maybe not though - there's at least one other project (nftables)
> where I've encountered the same problem.
> 
> While digging around a bit after sending this, I found that we add
> "--with-curses" to the readline configure to use it instead of 
> libtermcap, so it's *supposed* to be linked in already and this 
> would not be a problem.  However, for whatever reason (it's not
> clear whether it's intentional or not), the upstream sources don't
> use TERMCAP_LIBS (set to "-lcurses" per the configure flag) when
> building the shared library.  It appears that at least one distro
> solves that by running 'make SHLIB_LIBS="-lcurses"' when building,
> but I don't see where Fedora did that, so it's not clear at all 
> how they link curses (or even if they do, when means I wonder how
> the configure test in OP works there). 
> 
> Assuming this is indeed a problem, it's been in Slackware for years
> without causing any actual issues - the readline library from 13.37
> (released in April 2011) doesn't link ncurses either, so I'm not
> convinced that we're doing anything wrong (but I'm open to argument).

What does 'ldd' on your libreadline.so return?  Mine has:

        linux-vdso.so.1 =>  (0x00007fff191fe000)
        libtinfo.so.5 => /lib64/libtinfo.so.5 (0x0000003473400000)
        libc.so.6 => /lib64/libc.so.6 (0x000000345ac00000)
        /lib64/ld-linux-x86-64.so.2 (0x000000345a800000)

so at least the dynamic linker knows that libtinfo (provided by ncurses)
is required here, and should load that in for the configure test
program.

Dan

_______________________________________________
networkmanager-list mailing list
[email protected]
https://mail.gnome.org/mailman/listinfo/networkmanager-list

Reply via email to