Message ID | 4aa51349a8c68f15bfc5ba169eeea9c6e9959128.1456834855.git.baruch@tkos.co.il |
---|---|
State | Superseded |
Headers | show |
>>>>> "Baruch" == Baruch Siach <baruch@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@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? 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 Your commit message talks about readline, so perhaps the problem is really about readline? How does slang figure out how to link with readline?
Hi Peter, On Tue, Mar 01, 2016 at 05:43:19PM +0100, Peter Korsgaard wrote: > >>>>> "Baruch" == Baruch Siach <baruch@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@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
Dear Baruch Siach, On Tue, 1 Mar 2016 14:20:55 +0200, Baruch Siach wrote: > 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@tkos.co.il> > --- > package/slang/slang.mk | 4 ++++ > 1 file changed, 4 insertions(+) I've marked this patch as Superseded in patchwork, as I believe it was superseded by your patch "[PATCH] slang: fix static link with readline", even though the title has changed and v2 was not indicated. Let me know if this isn't correct. Thanks! Thomas
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 else SLANG_CONF_OPTS += ac_cv_path_nc5config=no endif
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@tkos.co.il> --- package/slang/slang.mk | 4 ++++ 1 file changed, 4 insertions(+)