* Final versions of ncurses libs detection patches
[not found] <Use config scripts to detect ncurses libs for, menuconfig/nconfig dialogs>
@ 2013-03-06 13:02 ` jlec
2013-03-06 13:02 ` [PATCH 1/2] menuconfig: optionally use pkg-config to detect ncurses libs jlec
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: jlec @ 2013-03-06 13:02 UTC (permalink / raw)
To: linux-kbuild, linux-kernel
Hello,
I am sorry for the long delay.
Final versions of the patches which are reduced to the usage of pkg-config. And
if unavailable we use the old code.
Thanks for all suggestions,
Justin
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 1/2] menuconfig: optionally use pkg-config to detect ncurses libs
2013-03-06 13:02 ` Final versions of ncurses libs detection patches jlec
@ 2013-03-06 13:02 ` jlec
2013-03-06 13:02 ` [PATCH 2/2] kconfig: " jlec
2013-03-06 21:23 ` Final versions of ncurses libs detection patches Yann E. MORIN
2 siblings, 0 replies; 6+ messages in thread
From: jlec @ 2013-03-06 13:02 UTC (permalink / raw)
To: linux-kbuild, linux-kernel; +Cc: Justin Lecher
From: Justin Lecher <jlec@gentoo.org>
When building ncurses with --with-termlib several symbols get moved from
libncurses.so to libtinfo.so. Thus when linking with libncurses.so, one
additionally needs to link with libtinfo.so.
The ncurses pkg-config module will be used to detect the necessary libs for
linking. If not available the old heuristic for detection of the ncurses libs
will be used.
Signed-off-by: Justin Lecher <jlec@gentoo.org>
---
scripts/kconfig/lxdialog/check-lxdialog.sh | 2 ++
1 file changed, 2 insertions(+)
diff --git a/scripts/kconfig/lxdialog/check-lxdialog.sh b/scripts/kconfig/lxdialog/check-lxdialog.sh
index 8078813..782d200 100644
--- a/scripts/kconfig/lxdialog/check-lxdialog.sh
+++ b/scripts/kconfig/lxdialog/check-lxdialog.sh
@@ -4,6 +4,8 @@
# What library to link
ldflags()
{
+ pkg-config --libs ncursesw 2>/dev/null && exit
+ pkg-config --libs ncurses 2>/dev/null && exit
for ext in so a dll.a dylib ; do
for lib in ncursesw ncurses curses ; do
$cc -print-file-name=lib${lib}.${ext} | grep -q /
--
1.8.1.5
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 2/2] kconfig: optionally use pkg-config to detect ncurses libs
2013-03-06 13:02 ` Final versions of ncurses libs detection patches jlec
2013-03-06 13:02 ` [PATCH 1/2] menuconfig: optionally use pkg-config to detect ncurses libs jlec
@ 2013-03-06 13:02 ` jlec
2013-03-06 20:47 ` Yann E. MORIN
2013-03-06 21:23 ` Final versions of ncurses libs detection patches Yann E. MORIN
2 siblings, 1 reply; 6+ messages in thread
From: jlec @ 2013-03-06 13:02 UTC (permalink / raw)
To: linux-kbuild, linux-kernel; +Cc: Justin Lecher
From: Justin Lecher <jlec@gentoo.org>
When building ncurses with --with-termlib several symbols get moved from
libncurses.so to libtinfo.so. Thus when linking with libncurses.so, one
additionally needs to link with libtinfo.so.
The ncurses pkg-config module will be used to detect the necessary libs for
linking. If not available the old way of directly specifying libs will be
used.
Signed-off-by: Justin Lecher <jlec@gentoo.org>
---
scripts/kconfig/Makefile | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/scripts/kconfig/Makefile b/scripts/kconfig/Makefile
index 231b475..e76ae5d 100644
--- a/scripts/kconfig/Makefile
+++ b/scripts/kconfig/Makefile
@@ -219,7 +219,9 @@ HOSTCFLAGS_gconf.o = `pkg-config --cflags gtk+-2.0 gmodule-2.0 libglade-2.0` \
HOSTLOADLIBES_mconf = $(shell $(CONFIG_SHELL) $(check-lxdialog) -ldflags $(HOSTCC))
-HOSTLOADLIBES_nconf = -lmenu -lpanel -lncurses
+HOSTLOADLIBES_nconf = $(shell \
+ pkg-config --libs menu panel ncurses 2>/dev/null \
+ || echo "-lmenu -lpanel -ncurses" )
$(obj)/qconf.o: $(obj)/.tmp_qtcheck
ifeq ($(qconf-target),1)
--
1.8.1.5
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 2/2] kconfig: optionally use pkg-config to detect ncurses libs
2013-03-06 13:02 ` [PATCH 2/2] kconfig: " jlec
@ 2013-03-06 20:47 ` Yann E. MORIN
0 siblings, 0 replies; 6+ messages in thread
From: Yann E. MORIN @ 2013-03-06 20:47 UTC (permalink / raw)
To: linux-kbuild; +Cc: jlec, linux-kernel
Justin, All,
On Wednesday 06 March 2013 jlec@gentoo.org wrote:
> From: Justin Lecher <jlec@gentoo.org>
>
> When building ncurses with --with-termlib several symbols get moved from
> libncurses.so to libtinfo.so. Thus when linking with libncurses.so, one
> additionally needs to link with libtinfo.so.
>
> The ncurses pkg-config module will be used to detect the necessary libs for
> linking. If not available the old way of directly specifying libs will be
> used.
>
> Signed-off-by: Justin Lecher <jlec@gentoo.org>
> ---
> scripts/kconfig/Makefile | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/scripts/kconfig/Makefile b/scripts/kconfig/Makefile
> index 231b475..e76ae5d 100644
> --- a/scripts/kconfig/Makefile
> +++ b/scripts/kconfig/Makefile
> @@ -219,7 +219,9 @@ HOSTCFLAGS_gconf.o = `pkg-config --cflags gtk+-2.0 gmodule-2.0 libglade-2.0` \
>
> HOSTLOADLIBES_mconf = $(shell $(CONFIG_SHELL) $(check-lxdialog) -ldflags $(HOSTCC))
>
> -HOSTLOADLIBES_nconf = -lmenu -lpanel -lncurses
> +HOSTLOADLIBES_nconf = $(shell \
> + pkg-config --libs menu panel ncurses 2>/dev/null \
> + || echo "-lmenu -lpanel -ncurses" )
Typo: this should be: "-lncurses" and not: "-ncurses"
I'll fix it here before queuing, no need to resend.
Regards,
Yann E. MORIN.
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Final versions of ncurses libs detection patches
2013-03-06 13:02 ` Final versions of ncurses libs detection patches jlec
2013-03-06 13:02 ` [PATCH 1/2] menuconfig: optionally use pkg-config to detect ncurses libs jlec
2013-03-06 13:02 ` [PATCH 2/2] kconfig: " jlec
@ 2013-03-06 21:23 ` Yann E. MORIN
2013-03-07 9:47 ` justin
2 siblings, 1 reply; 6+ messages in thread
From: Yann E. MORIN @ 2013-03-06 21:23 UTC (permalink / raw)
To: linux-kbuild; +Cc: jlec, linux-kernel
Justin, All,
On Wednesday 06 March 2013 jlec@gentoo.org wrote:
> I am sorry for the long delay.
> Final versions of the patches which are reduced to the usage of pkg-config. And
> if unavailable we use the old code.
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]
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.
But anyway, even in that cse, using pkg-config when available is better
than using our previous legacy checks.
I'm still doing a few more tests on my side before queuing.
> Thanks for all suggestions,
Thanks for staying around during the iterations.
Regards,
Yann E. MORIN.
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Final versions of ncurses libs detection patches
2013-03-06 21:23 ` Final versions of ncurses libs detection patches Yann E. MORIN
@ 2013-03-07 9:47 ` justin
0 siblings, 0 replies; 6+ messages in thread
From: justin @ 2013-03-07 9:47 UTC (permalink / raw)
To: Yann E. MORIN; +Cc: linux-kbuild, linux-kernel
[-- Attachment #1: Type: text/plain, Size: 2323 bytes --]
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 #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 263 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2013-03-07 9:47 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <Use config scripts to detect ncurses libs for, menuconfig/nconfig dialogs>
2013-03-06 13:02 ` Final versions of ncurses libs detection patches jlec
2013-03-06 13:02 ` [PATCH 1/2] menuconfig: optionally use pkg-config to detect ncurses libs jlec
2013-03-06 13:02 ` [PATCH 2/2] kconfig: " jlec
2013-03-06 20:47 ` Yann E. MORIN
2013-03-06 21:23 ` Final versions of ncurses libs detection patches Yann E. MORIN
2013-03-07 9:47 ` justin
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox