[Buildroot] [PATCH] slang: fix static link with ncurses

Baruch Siach baruch at tkos.co.il
Tue Mar 1 18:15:24 UTC 2016


Hi Peter,

On Tue, Mar 01, 2016 at 05:43:19PM +0100, Peter Korsgaard wrote:
> >>>>> "Baruch" == Baruch Siach <baruch at tkos.co.il> writes:
> 
>  > slang does forgets ncurses that is a dependency of readline when linking the
>  > slsh binary. Correct this.
> 
>  > While at it, also make sure to use staging ncurses5-config script and not the
>  > host one.
> 
>  > Fixes:
>  > http://autobuild.buildroot.net/results/1dc/1dc52048254c32a24070fef1c1039cebb32e7ac1/
>  > http://autobuild.buildroot.net/results/c17/c176511cbb147c2d8cb0ec0ff3c1612ce8971cb8/
>  > http://autobuild.buildroot.net/results/78d/78dc2ba07b1d7f888aab94e223f3e0b1a1df3af5/
> 
>  > Signed-off-by: Baruch Siach <baruch at tkos.co.il>
>  > ---
>  >  package/slang/slang.mk | 4 ++++
>  >  1 file changed, 4 insertions(+)
> 
>  > diff --git a/package/slang/slang.mk b/package/slang/slang.mk
>  > index 1a7576afc363..464d92065112 100644
>  > --- a/package/slang/slang.mk
>  > +++ b/package/slang/slang.mk
>  > @@ -40,6 +40,10 @@ endif
>  
>  >  ifeq ($(BR2_PACKAGE_NCURSES),y)
>  >  SLANG_DEPENDENCIES += ncurses
>  > +SLANG_CONF_ENV += ac_cv_path_nc5config=$(STAGING_DIR)/usr/bin/ncurses5-config
>  > +ifeq ($(BR2_STATIC_LIBS),y)
>  > +SLANG_CONF_ENV += LIBS="`$(PKG_CONFIG_HOST_BINARY) --libs ncurses`"
>  > +endif
> 
> You forgot to add host-pkgconf as a dependency. Why is both needed,
> doesn't ncurses5-config return correct info?

It does. I'll change that in v2.

> Here they seem to be equivalent with a static build:
> 
> ./host/usr/bin/pkg-config --libs ncurses
> -lncurses
> ./staging/usr/bin/ncurses5-config --libs
> -L/home/peko/source/buildroot/output-test/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib -lncurses

slang does not link with ncurses. The only use for ncurses5-config in slang is 
to find the location of terminfo files at run-time. The output of host 
ncurses5-config doesn't make sense.

$ ./output/host/usr/bin/ncurses5-config --terminfo
/home/baruch/git/buildroot-fixes/output/host/usr/share/terminfo
$ ./output/staging/usr/bin/ncurses5-config --terminfo
/usr/share/terminfo

> Your commit message talks about readline, so perhaps the problem is
> really about readline? How does slang figure out how to link with readline?

slang configure script just hard codes LIB_READLINE=-lreadline when it gets 
--with-readline=gnu like we do. I'll move the BR2_STATIC_LIBS block under 
BR2_PACKAGE_READLINE above.

Thanks for reviewing.

baruch

-- 
     http://baruch.siach.name/blog/                  ~. .~   Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
   - baruch at tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -



More information about the buildroot mailing list