<div dir="auto"><div>I think it should be also committed to the 2018.02.x branch.<div dir="auto"><br></div><div dir="auto">Thanks.</div><br><br><div class="gmail_quote"><div dir="ltr">On Fri, May 18, 2018, 02:54 Thomas Petazzoni <<a href="mailto:thomas.petazzoni@bootlin.com">thomas.petazzoni@bootlin.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">commit: <a href="https://git.buildroot.net/buildroot/commit/?id=6d3d09e23213e88c14f2ddc883700499315a41bc" rel="noreferrer noreferrer" target="_blank">https://git.buildroot.net/buildroot/commit/?id=6d3d09e23213e88c14f2ddc883700499315a41bc</a><br>
branch: <a href="https://git.buildroot.net/buildroot/commit/?id=refs/heads/master" rel="noreferrer noreferrer" target="_blank">https://git.buildroot.net/buildroot/commit/?id=refs/heads/master</a><br>
<br>
Kconfig uses either pkg-config or hard-coded /usr/include paths to find<br>
the ncurses or ncursesw library. If ncursesw is found, it will include<br>
<ncursesw.h>. Since Buildroot's host-ncurses doesn't install a .pc file,<br>
and <a href="http://linux.mk" rel="noreferrer noreferrer" target="_blank">linux.mk</a> anyway doesn't pass the pkg-config options to find the host<br>
pkg-config files, Kconfig will always find the system's ncursesw.h.<br>
<br>
However, since commit dde090c299 (linux: fix passing of host CFLAGS and<br>
LDFLAGS) HOST_LDFLAGS is passed to the linux build system. Thus, if<br>
host-ncurses was already built before 'make linux-menuconfig' is called,<br>
the build will pick up libncurses from the host directory, which is NOT<br>
widechar. Thus, two different ncurses configurations are mixed into the<br>
final mconf program. This will result in serious breakage in the<br>
rendering of the menus (lots of @ and question mark characters).<br>
<br>
As a workaround (suggested by Yann), don't pass HOST_CFLAGS and<br>
HOST_LDFLAGS when running kconfig commands. For kconfig, we should never<br>
need host packages anyway. This way, the kconfig calls will always use<br>
the system's ncurses and never our host-ncurses.<br>
<br>
Note that the same problem could pop up for other kconfig packages as<br>
well if we ever pass HOST_CFLAGS/HOST_LDFLAGS to them. We could force<br>
HOSTCC=$(HOSTCC) directly in kconfig-package. However, for now there<br>
are no other packages that exhibit this problem, so this can be<br>
revisited when they do.<br>
<br>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <<a href="mailto:arnout@mind.be" target="_blank" rel="noreferrer">arnout@mind.be</a>><br>
Cc: David De Grave <<a href="mailto:david.degrave@essensium.com" target="_blank" rel="noreferrer">david.degrave@essensium.com</a>><br>
Cc: Scott Fan <<a href="mailto:fancp2007@gmail.com" target="_blank" rel="noreferrer">fancp2007@gmail.com</a>><br>
Cc: Yann E. MORIN <<a href="mailto:yann.morin.1998@free.fr" target="_blank" rel="noreferrer">yann.morin.1998@free.fr</a>><br>
Tested-by: Matt Weber <<a href="mailto:matthew.weber@rockwellcollins.com" target="_blank" rel="noreferrer">matthew.weber@rockwellcollins.com</a>><br>
Signed-off-by: Thomas Petazzoni <<a href="mailto:thomas.petazzoni@bootlin.com" target="_blank" rel="noreferrer">thomas.petazzoni@bootlin.com</a>><br>
---<br>
 linux/<a href="http://linux.mk" rel="noreferrer noreferrer" target="_blank">linux.mk</a> | 9 ++++++++-<br>
 1 file changed, 8 insertions(+), 1 deletion(-)<br>
<br>
diff --git a/linux/<a href="http://linux.mk" rel="noreferrer noreferrer" target="_blank">linux.mk</a> b/linux/<a href="http://linux.mk" rel="noreferrer noreferrer" target="_blank">linux.mk</a><br>
index b6b91391b6..6b5f5344ed 100644<br>
--- a/linux/<a href="http://linux.mk" rel="noreferrer noreferrer" target="_blank">linux.mk</a><br>
+++ b/linux/<a href="http://linux.mk" rel="noreferrer noreferrer" target="_blank">linux.mk</a><br>
@@ -235,7 +235,14 @@ LINUX_KCONFIG_FILE = $(call qstrip,$(BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE))<br>
 endif<br>
 LINUX_KCONFIG_FRAGMENT_FILES = $(call qstrip,$(BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES))<br>
 LINUX_KCONFIG_EDITORS = menuconfig xconfig gconfig nconfig<br>
-LINUX_KCONFIG_OPTS = $(LINUX_MAKE_FLAGS)<br>
+<br>
+# LINUX_MAKE_FLAGS overrides HOSTCC to allow the kernel build to find our<br>
+# host-openssl and host-libelf. However, this triggers a bug in the kconfig<br>
+# build script that causes it to build with /usr/include/ncurses.h (which is<br>
+# typically wchar) but link with $(HOST_DIR)/lib/libncurses.so (which is not).<br>
+# We don't actually need any host-package for kconfig, so remove the HOSTCC<br>
+# override again.<br>
+LINUX_KCONFIG_OPTS = $(LINUX_MAKE_FLAGS) HOSTCC="$(HOSTCC)"<br>
<br>
 # If no package has yet set it, set it from the Kconfig option<br>
 LINUX_NEEDS_MODULES ?= $(BR2_LINUX_NEEDS_MODULES)<br>
_______________________________________________<br>
buildroot mailing list<br>
<a href="mailto:buildroot@busybox.net" target="_blank" rel="noreferrer">buildroot@busybox.net</a><br>
<a href="http://lists.busybox.net/mailman/listinfo/buildroot" rel="noreferrer noreferrer" target="_blank">http://lists.busybox.net/mailman/listinfo/buildroot</a><br>
</blockquote></div></div></div>