All of lore.kernel.org
 help / color / mirror / Atom feed
From: Justin <jlec@gentoo.org>
To: linux-kbuild@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: [PATCH] Use config scripts to detect ncurses libs for, menuconfig/nconfig dialogs
Date: Sun, 24 Feb 2013 16:50:19 +0100	[thread overview]
Message-ID: <512A36BB.9070309@gentoo.org> (raw)


[-- Attachment #1.1: Type: text/plain, Size: 3198 bytes --]

Hi,

when ncurses is build with --with-termlib several symbols are moved to a
seperate terminfo library (libtinfo.so). Current Kernel buildsystem
results in a build error with menuconfig and nconfig dialogs.

gcc  -o scripts/kconfig/mconf scripts/kconfig/mconf.o
scripts/kconfig/zconf.tab.o scripts/kconfig/lxdialog/checklist.o
scripts/kconfig/lxdialog/util.o scripts/kconfig/lxdialog/inputbox.o
scripts/kconfig/lxdialog/textbox.o scripts/kconfig/lxdialog/yesno.o
scripts/kconfig/lxdialog/menubox.o  -lncursesw
scripts/kconfig/mconf.o:mconf.c:function show_help: error: undefined
reference to 'stdscr'
scripts/kconfig/lxdialog/checklist.o:checklist.c:function print_arrows:
error: undefined reference to 'acs_map'
scripts/kconfig/lxdialog/checklist.o:checklist.c:function print_arrows:
error: undefined reference to 'acs_map'
scripts/kconfig/lxdialog/checklist.o:checklist.c:function print_arrows:
error: undefined reference to 'acs_map'
scripts/kconfig/lxdialog/checklist.o:checklist.c:function print_arrows:
error: undefined reference to 'acs_map'
scripts/kconfig/lxdialog/checklist.o:checklist.c:function
dialog_checklist: error: undefined reference to 'stdscr'
scripts/kconfig/lxdialog/checklist.o:checklist.c:function
dialog_checklist: error: undefined reference to 'COLS'
scripts/kconfig/lxdialog/checklist.o:checklist.c:function
dialog_checklist: error: undefined reference to 'stdscr'
scripts/kconfig/lxdialog/checklist.o:checklist.c:function
dialog_checklist: error: undefined reference to 'LINES'
scripts/kconfig/lxdialog/checklist.o:checklist.c:function
dialog_checklist: error: undefined reference to 'keypad'
scripts/kconfig/lxdialog/checklist.o:checklist.c:function
dialog_checklist: error: undefined reference to 'keypad'
scripts/kconfig/lxdialog/util.o:util.c:function dialog_clear: error:
undefined reference to 'COLS'
scripts/kconfig/lxdialog/util.o:util.c:function dialog_clear: error:
undefined reference to 'LINES'
scripts/kconfig/lxdialog/util.o:util.c:function dialog_clear: error:
undefined reference to 'stdscr'
scripts/kconfig/lxdialog/util.o:util.c:function dialog_clear: error:
undefined reference to 'COLS'
scripts/kconfig/lxdialog/util.o:util.c:function dialog_clear: error:
undefined reference to 'COLS'
scripts/kconfig/lxdialog/util.o:util.c:function init_dialog: error:
undefined reference to 'keypad'
scripts/kconfig/lxdialog/util.o:util.c:function init_dialog: error:
undefined reference to 'cbreak'
scripts/kconfig/lxdialog/util.o:util.c:function on_key_esc: error:
undefined reference to 'nodelay'
scripts/kconfig/lxdialog/util.o:util.c:function on_key_esc: error:
undefined reference to 'keypad'
scripts/kconfig/lxdialog/util.o:util.c:function on_key_esc: error:
undefined reference to 'nodelay'
scripts/kconfig/lxdialog/inputbox.o:inputbox.c:function dialog_inputbox:
error: undefined reference to 'LINES'
scripts/kconfig/lxdialog/textbox.o:textbox.c:function dialog_textbox:
error: undefined reference to 'LINES'
collect2: error: ld returned 1 exit status


Attached patch uses ncurses5-config and pkg-config to detect the libs to
link with. Please include this to fix the build error.

justin

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.2: 0001-Use-config-scripts-to-detect-ncurses-libs-for-menuco.patch --]
[-- Type: text/x-patch; name="0001-Use-config-scripts-to-detect-ncurses-libs-for-menuco.patch", Size: 2293 bytes --]

From 5c3e9e44432697b9f638c5367e01bdde47adf0f2 Mon Sep 17 00:00:00 2001
From: Justin Lecher <jlec@gentoo.org>
Date: Sun, 24 Feb 2013 16:02:00 +0100
Subject: [PATCH] Use config scripts to detect ncurses libs for
 menuconfig/nconfig dialogs

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) and an interface with
pkg-config. This patch makes use of those to detect the necessary libs
for linking of the ncurses menuconfig and nconfig dialogs.

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

diff --git a/scripts/kconfig/Makefile b/scripts/kconfig/Makefile
index 3091794..7649047 100644
--- a/scripts/kconfig/Makefile
+++ b/scripts/kconfig/Makefile
@@ -216,7 +216,7 @@ 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	= `pkg-config --libs menu panel ncurses`
 $(obj)/qconf.o: $(obj)/.tmp_qtcheck
 
 ifeq ($(qconf-target),1)
diff --git a/scripts/kconfig/lxdialog/check-lxdialog.sh b/scripts/kconfig/lxdialog/check-lxdialog.sh
index c8e8a71..4699c1b 100644
--- a/scripts/kconfig/lxdialog/check-lxdialog.sh
+++ b/scripts/kconfig/lxdialog/check-lxdialog.sh
@@ -4,15 +4,21 @@
 # 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
+	if type -p ncurses5-config &> /dev/null ; then
+		ncurses5-config --libs
+		exit 0
+	else
+		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
-	done
+	fi
 	exit 1
 }
 
-- 
1.8.1.4


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 263 bytes --]

             reply	other threads:[~2013-02-24 15:50 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-02-24 15:50 Justin [this message]
2013-02-25 18:30 ` [PATCH] Use config scripts to detect ncurses libs for, menuconfig/nconfig dialogs Yann E. MORIN
2013-02-25 20:32   ` Justin
2013-02-25 20:53     ` Yann E. MORIN
2013-02-26  6:59       ` justin
2013-02-27 14:30       ` justin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=512A36BB.9070309@gentoo.org \
    --to=jlec@gentoo.org \
    --cc=linux-kbuild@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.