All of lore.kernel.org
 help / color / mirror / Atom feed
From: Yann E. MORIN <yann.morin.1998@free.fr>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH] package/ncurses: enable widechar for host build
Date: Thu, 3 May 2018 21:45:07 +0200	[thread overview]
Message-ID: <20180503194507.GB2453@scaer> (raw)
In-Reply-To: <20180503075808.26367-1-arnout@mind.be>

Arnout, All,

On 2018-05-03 09:58 +0200, Arnout Vandecappelle (Essensium/Mind) spake thusly:
> Kconfig uses either pkg-config or hard-coded /usr/include paths to find
> the ncurses or ncursesw library. If ncursesw is found, it will include
> <ncursesw.h>. Since Buildroot's host-ncurses doesn't install a .pc file,
> and linux.mk anyway doesn't pass the pkg-config options to find the host
> pkg-config files, Kconfig will always find the system's ncursesw.h.
> 
> However, since commit dde090c299 (linux: fix passing of host CFLAGS and
> LDFLAGS) HOST_LDFLAGS is passed to the linux build system. Thus, if
> host-ncurses was already built before 'make linux-menuconfig' is called,
> the build will pick up libncurses from the host directory, which is NOT
> widechar. Thus, two different ncurses configurations are mixed into the
> final mconf program. This will result in serious breakage in the
> rendering of the menus (lots of @ and question mark characters).

What about overriding HOSTCC when calling linux-menuconfig:

    diff --git a/linux/linux.mk b/linux/linux.mk
    index 9e646baffc..75a256ff9e 100644
    --- a/linux/linux.mk
    +++ b/linux/linux.mk
    @@ -235,7 +235,7 @@ LINUX_KCONFIG_FILE = $(call qstrip,$(BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE))
     endif
     LINUX_KCONFIG_FRAGMENT_FILES = $(call qstrip,$(BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES))
     LINUX_KCONFIG_EDITORS = menuconfig xconfig gconfig nconfig
    -LINUX_KCONFIG_OPTS = $(LINUX_MAKE_FLAGS)
    +LINUX_KCONFIG_OPTS = $(LINUX_MAKE_FLAGS) HOSTCC="$(HOSTCC)"
     
     # If no package has yet set it, set it from the Kconfig option
     LINUX_NEEDS_MODULES ?= $(BR2_LINUX_NEEDS_MODULES)

We should not need any library from HOST_DIR when we run menuconfig.

Note: we may still want to enable widechar in host-ncurses for other
reasons, though. But with the proposdal above, there is no lopnger any
mix of system ncurses vs our own.

Regards,
Yann E. MORIN.

> As a workaround, just build host-ncurses with widechar support. That
> makes it compatible with ncursesw.h picked up from the host. Clearly,
> this is not a robust solution. But it's simple, it works, and it
> shouldn't hurt to build host-ncurses with widechar support (we can
> safely assume that the system doesn't have a non-widechar uClibc
> library...).
> 
> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
> Cc: David De Grave <david.degrave@essensium.com>
> Cc: Scott Fan <fancp2007@gmail.com>
> ---
> v2:
>  - fix typo in commit message;
>  - extend commit message;
>  - keep alphabetic ordering of configure options (Scott)
> 
> Note: I haven't tested what happens on a system which doesn't have
> ncursesw.h. But I guess such a system is so exotic that it's not
> worthwhile to do something special for it.
> ---
>  package/ncurses/ncurses.mk | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/package/ncurses/ncurses.mk b/package/ncurses/ncurses.mk
> index 90cf4a4dc5..f9cd0d3fbd 100644
> --- a/package/ncurses/ncurses.mk
> +++ b/package/ncurses/ncurses.mk
> @@ -147,6 +147,7 @@ define HOST_NCURSES_BUILD_CMDS
>  endef
>  
>  HOST_NCURSES_CONF_OPTS = \
> +	--enable-widec \
>  	--with-shared \
>  	--without-gpm \
>  	--without-manpages \
> -- 
> 2.17.0
> 
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

  reply	other threads:[~2018-05-03 19:45 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-04-24 15:24 [Buildroot] 'make foo-menuconfig' broken when host-ncurses was built Arnout Vandecappelle
2018-04-26 19:08 ` [Buildroot] [PATCH] package/ncurses: enable widechar for host build Arnout Vandecappelle
2018-04-27 12:05   ` Scott Fan
2018-05-03  7:58   ` Arnout Vandecappelle
2018-05-03 19:45     ` Yann E. MORIN [this message]
2018-05-08 13:31       ` Thomas Petazzoni
2018-05-08 20:30         ` Arnout Vandecappelle
2018-05-01 20:12 ` [Buildroot] 'make foo-menuconfig' broken when host-ncurses was built Peter Korsgaard
2018-05-02 23:19   ` Arnout Vandecappelle

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180503194507.GB2453@scaer \
    --to=yann.morin.1998@free.fr \
    --cc=buildroot@busybox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.