diff mbox

menuconfig: use config scripts to detect ncurses libs

Message ID 1362052335-17913-1-git-send-email-jlec@gentoo.org (mailing list archive)
State New, archived
Headers show

Commit Message

Justin Feb. 28, 2013, 11:52 a.m. UTC
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. Ncurses provides a config script
(ncurses5-config) to assist finding ncurses.

This patch replaces the old heuristic for detection of ncurses libs for
linking the ncurses menuconfig dialog by the use of the config scripts.
This results in the requirement of ncurses version 5.6 or newer for menuconfig.

Signed-off-by: Justin Lecher <jlec@gentoo.org>
---
 scripts/kconfig/lxdialog/check-lxdialog.sh | 11 ++---------
 1 file changed, 2 insertions(+), 9 deletions(-)

Comments

Yann E. MORIN Feb. 28, 2013, 6:16 p.m. UTC | #1
Justin, All,

On Thursday 28 February 2013 jlec@gentoo.org wrote:
> 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. Ncurses provides a config script
> (ncurses5-config) to assist finding ncurses.
> 
> This patch replaces the old heuristic for detection of ncurses libs for
> linking the ncurses menuconfig dialog by the use of the config scripts.
> This results in the requirement of ncurses version 5.6 or newer for menuconfig.

As you said, ncurses started bundling these files with ncurses-5.6,
which was released in 2006.

OTOH, RHEL4 is still a widely used distro, and was released in 2005,
so is using an ncurses older than 5.6, so I'm afraid we can't drop
the legacy code like that.

Of course, I'm no authority on the subject, so I'd suggest that you
split this patch in two, and re-submit:
  - one patch to add usage of ncurses{w,}5-config;
  - one patch to drop legacy code.

That way, it is easy to apply the *-config part, and get more people
involved in commenting the legacy drop without further delaying use
of the *-config scripts.

And, sorry, I should have been more explicit in my previous mail that
the legacy drop should be in its own patch. I thought that was obvious,
following the "one single change per patch" philosophy.

Thanks you! :-)

Regards,
Yann E. MORIN.

> Signed-off-by: Justin Lecher <jlec@gentoo.org>
> ---
>  scripts/kconfig/lxdialog/check-lxdialog.sh | 11 ++---------
>  1 file changed, 2 insertions(+), 9 deletions(-)
> 
> diff --git a/scripts/kconfig/lxdialog/check-lxdialog.sh b/scripts/kconfig/lxdialog/check-lxdialog.sh
> index c8e8a71..10df55b 100644
> --- a/scripts/kconfig/lxdialog/check-lxdialog.sh
> +++ b/scripts/kconfig/lxdialog/check-lxdialog.sh
> @@ -4,15 +4,8 @@
>  # What library to link
>  ldflags()
>  {
> -	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 /
> -			if [ $? -eq 0 ]; then
> -				echo "-l${lib}"
> -				exit
> -			fi
> -		done
> -	done
> +	ncursesw5-config --libs 2>/dev/null && exit
> +	ncurses5-config --libs 2>/dev/null && exit
>  	exit 1
>  }
>  
> -- 
> 1.8.1.4
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
>
Justin Feb. 28, 2013, 9:35 p.m. UTC | #2
On 2/28/13 7:16 PM, Yann E. MORIN wrote:
> And, sorry, I should have been more explicit in my previous mail that
> the legacy drop should be in its own patch. I thought that was obvious,
> following the "one single change per patch" philosophy.
> 

Hi,

no worries. I will submit as you suggested. It's a learning experience
for me and we will get this solved.

The new patches will come tomorrow.

Thanks,
Justin
Michal Marek March 1, 2013, 11:50 a.m. UTC | #3
On 28.2.2013 19:16, Yann E. MORIN wrote:
> On Thursday 28 February 2013 jlec@gentoo.org wrote:
>> This patch replaces the old heuristic for detection of ncurses libs for
>> linking the ncurses menuconfig dialog by the use of the config scripts.
>> This results in the requirement of ncurses version 5.6 or newer for menuconfig.
> 
> As you said, ncurses started bundling these files with ncurses-5.6,
> which was released in 2006.
> 
> OTOH, RHEL4 is still a widely used distro, and was released in 2005,
> so is using an ncurses older than 5.6, so I'm afraid we can't drop
> the legacy code like that.

Yes, please keep support for older libraries if it does not require too
much effort.

Michal
--
To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Yann E. MORIN March 3, 2013, 8:13 p.m. UTC | #4
Michal, All,

On Friday 01 March 2013 Michal Marek wrote:
> On 28.2.2013 19:16, Yann E. MORIN wrote:
> > On Thursday 28 February 2013 jlec@gentoo.org wrote:
> >> This patch replaces the old heuristic for detection of ncurses libs for
> >> linking the ncurses menuconfig dialog by the use of the config scripts.
> >> This results in the requirement of ncurses version 5.6 or newer for menuconfig.
> > 
> > OTOH, RHEL4 is still a widely used distro, and was released in 2005,
> > so is using an ncurses older than 5.6, so I'm afraid we can't drop
> > the legacy code like that.
> 
> Yes, please keep support for older libraries if it does not require too
> much effort.

Yes, we want to keep support for old systems, indeed.

Regards,
Yann E. MORIN.
diff mbox

Patch

diff --git a/scripts/kconfig/lxdialog/check-lxdialog.sh b/scripts/kconfig/lxdialog/check-lxdialog.sh
index c8e8a71..10df55b 100644
--- a/scripts/kconfig/lxdialog/check-lxdialog.sh
+++ b/scripts/kconfig/lxdialog/check-lxdialog.sh
@@ -4,15 +4,8 @@ 
 # What library to link
 ldflags()
 {
-	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 /
-			if [ $? -eq 0 ]; then
-				echo "-l${lib}"
-				exit
-			fi
-		done
-	done
+	ncursesw5-config --libs 2>/dev/null && exit
+	ncurses5-config --libs 2>/dev/null && exit
 	exit 1
 }