Re: Final versions of ncurses libs detection patches

From: justin
Date: Thu Mar 07 2013 - 04:47:31 EST


On 06/03/13 22:23, Yann E. MORIN wrote:
> On Ubuntu Quantal, ncurses is indeed compiled with tinfo as a separate
> lib, but these two patches are not needed, because libncurses has proper
> (NEEDED) on libtinfo:
>
> $ readelf -d /lib/x86_64-linux-gnu/libncurses.so.5.9 |grep tinfo
> 0x0000000000000001 (NEEDED) Shared library: [libtinfo.so.5]

Hi Yann,

Same here

$ scanelf -n /lib//libncurses.so.5.9
TYPE NEEDED FILE
ET_DYN libc.so.6,libdl.so.2,libtinfo.so.5 /lib//libncurses.so.5.9


But why it works on ubuntu and debian is that

/lib/lib/x86_64-linux-gnu/libncurses.so.5.9

is a ld script with following content

INPUT(libncurses.so.9 -ltinfo)

It instructs the linker at link time to add additionally -ltinfo.

On Gentoo, the base-system maintainers refuse to do this (I would agree
if you call it a bug on our side), but I am not allowed to touch those
packages.

Luckily ncurses provides the config scripts and the pkg-config modules
to do sane linking. This should be done if possible regardless the
situation on a single distributions.

>
> If I just configure ncurses with:
> $ ./configure --with-termlib --with-shared --without-normal && make
> $ readelf -d lib/libncurses.so.5.9 |grep tinfo
> 0x0000000000000001 (NEEDED) Shared library: [libtinfo.so.5]
>
> I wonder how you configured your ncurses.

./configure --prefix=/usr --build=x86_64-pc-linux-gnu
--host=x86_64-pc-linux-gnu --mandir=/usr/share/man
--infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc
--localstatedir=/var/lib --libdir=/usr/lib64
--with-terminfo-dirs=/etc/terminfo:/usr/share/terminfo --with-shared
--without-hashed-db --without-ada --with-cxx --with-cxx-binding
--without-debug --without-profile --with-gpm --disable-termcap
--enable-symlinks --with-rcs-ids --with-manpage-format=normal
--enable-const --enable-colorfgbg --enable-echo --enable-pc-files
--enable-warnings --without-assertions --disable-leaks
--without-expanded --with-macros --without-trace --with-termlib
--with-chtype=long --with-mmask-t=long --disable-ext-colors
--disable-ext-mouse --without-pthread --without-reentrant

>
> Thanks for staying around during the iterations.

No problem, this is how it works. Thanks for your suggestions,

Justin


Attachment: signature.asc
Description: OpenPGP digital signature