From c820ae11ce369002063bad8b11ee95e1882c99bb Mon Sep 17 00:00:00 2001 From: Jason Wessel Date: Sat, 9 Feb 2013 16:06:57 -0600 Subject: ncurses.inc: Fix display corruption and add fallback for sstate compiled paths CQID: WIND00402979 Display corruption was occurring on 64 bit hosts using menuconfig for the kernel and busybox with the ncurses-native or ncurses-nativesdk because the configure arguments were not sufficient vs the expected use from the upstream source. Also changed in this commit is to provide a fallback to the hard compiled paths for the terminfo and termcap. Eventually this needs to be fixed another way if we want a truly portable SDK because any SDK that is relocated or native binaries pulled out of the sstate can end up referencing terminfo files that no longer are in the same location. Because the host system has terminfo files that ncurses will happily use we might as well have a fall back to buy some time for a better fix, vs having thing just not work occasionally when using sstate. Signed-off-by: Jason Wessel Signed-off-by: Richard Purdie --- meta/recipes-core/ncurses/ncurses.inc | 32 +++++++++++++++++++++++++++++--- 1 file changed, 29 insertions(+), 3 deletions(-) (limited to 'meta/recipes-core/ncurses') diff --git a/meta/recipes-core/ncurses/ncurses.inc b/meta/recipes-core/ncurses/ncurses.inc index 5fdd994898..9250e9d451 100644 --- a/meta/recipes-core/ncurses/ncurses.inc +++ b/meta/recipes-core/ncurses/ncurses.inc @@ -6,7 +6,7 @@ LIC_FILES_CHKSUM = "file://ncurses/base/version.c;beginline=1;endline=27;md5=cbc SECTION = "libs" DEPENDS = "ncurses-native" DEPENDS_class-native = "" -INC_PR = "r13" +INC_PR = "r14" inherit autotools binconfig multilib_header @@ -29,6 +29,31 @@ BUILD_CPPFLAGS += "-D_GNU_SOURCE" # natives don't generally look in base_libdir base_libdir_class-native = "${libdir}" +# Display corruption occurs on 64 bit hosts without these settings +# This was derrived from the upstream debian ncurses which uses +# these settings for 32 and 64 bit hosts. +EXCONFIG_ARGS = "" +EXCONFIG_ARGS_virtclass-native = " \ + --disable-lp64 \ + --with-chtype='long' \ + --with-mmask-t='long'" +EXCONFIG_ARGS_virtclass-nativesdk = " \ + --disable-lp64 \ + --with-chtype='long' \ + --with-mmask-t='long'" + +# Fall back to the host termcap / terminfo for -nativesdk and -native +# The reality is a work around for strange problems with things like +# "bitbake -c menuconfig busybox" where it cannot find the terminfo +# because the sstate had a hard coded search path. Until this is fixed +# another way this is deemed good enough. +EX_TERMCAP = "" +EX_TERMCAP_virtclass-native = ":/etc/termcap:/usr/share/misc/termcap" +EX_TERMCAP_virtclass-nativesdk = ":/etc/termcap:/usr/share/misc/termcap" +EX_TERMINFO = "" +EX_TERMINFO_virtclass-native = ":/etc/terminfo:/usr/share/misc/terminfo:/lib/terminfo" +EX_TERMINFO_virtclass-nativesdk = ":/etc/terminfo:/usr/share/misc/terminfo:/lib/terminfo" + # Helper function for do_configure to allow multiple configurations # $1 the directory to run configure in # $@ the arguments to pass to configure @@ -44,8 +69,8 @@ ncurses_configure() { --enable-hard-tabs \ --enable-xmc-glitch \ --enable-colorfgbg \ - --with-termpath='${sysconfdir}/termcap:${datadir}/misc/termcap' \ - --with-terminfo-dirs='${sysconfdir}/terminfo:${datadir}/terminfo' \ + --with-termpath='${sysconfdir}/termcap:${datadir}/misc/termcap${EX_TERMCAP}' \ + --with-terminfo-dirs='${sysconfdir}/terminfo:${datadir}/terminfo${EX_TERMINFO}' \ --with-shared \ --disable-big-core \ --program-prefix= \ @@ -54,6 +79,7 @@ ncurses_configure() { --enable-sigwinch \ --enable-pc-files \ --disable-rpath-hack \ + ${EXCONFIG_ARGS} \ --with-manpage-format=normal \ "$@" || return 1 cd .. -- cgit 1.2.3-korg