slang: fix static link with ncurses
PATCH 1/1 slang: fix static link with ncurses
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/
--- package/slang/slang.mk | 4 ++++ 1 file changed, 4 insertions(+)
package/slang/slang.mk +4 -0
@@ -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
Signature · 1 line
2.7.0
PATCH 1/1 slang: fix static link with ncurses
Quoted 23 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
"Baruch" == Baruch Siach <[email protected]> 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 <[email protected]>--- package/slang/slang.mk | 4 ++++ 1 file changed, 4 insertions(+)package/slang/slang.mk +0
-0
package/slang/slang.mk endif · line 46
Quoted 7 lines
package/slang/slang.mk +4
-0@@ -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?
Signature · 1 line
Bye, Peter Korsgaard
PATCH 1/1 slang: fix static link with ncurses
Hi Peter,
Quoted 24 lines · Peter Korsgaard
Quoted 23 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
"Baruch" == Baruch Siach <[email protected]> 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 <[email protected]>--- package/slang/slang.mk | 4 ++++ 1 file changed, 4 insertions(+)package/slang/slang.mk +0
-0@@ -40,6 +40,10 @@ endif
Quoted 9 lines
package/slang/slang.mk endif · line 46
Quoted 6 lines
package/slang/slang.mk +4
-0ifeq ($(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`" +endifYou 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.
Quoted 6 lines
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
Quoted 2 lines
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
Signature · 3 lines
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 -PATCH 1/1 slang: fix static link with ncurses
In reply to Baruch SiachDear Baruch Siach,
Quoted 11 lines · Baruch Siach
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/
Quoted 4 lines
Signed-off-by Baruch Siach <[email protected]>--- 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
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com