Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1646202 > unrolled thread

Re: [PATCH] kconfig: Check for libncurses before menuconfig

Started byMasahiro Yamada <yamada.masahiro@socionext.com>
First post2017-05-20 21:40 +0200
Last post2017-05-22 04:00 +0200
Articles 5 — 2 participants

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  Re: [PATCH] kconfig: Check for libncurses before menuconfig Masahiro Yamada <yamada.masahiro@socionext.com> - 2017-05-20 21:40 +0200
    Re: [PATCH] kconfig: Check for libncurses before menuconfig Borislav Petkov <bp@alien8.de> - 2017-05-20 22:40 +0200
      Re: [PATCH] kconfig: Check for libncurses before menuconfig Masahiro Yamada <yamada.masahiro@socionext.com> - 2017-05-21 11:20 +0200
        [PATCH v2] kconfig: Check for libncurses before menuconfig Borislav Petkov <bp@alien8.de> - 2017-05-21 11:50 +0200
          Re: [PATCH v2] kconfig: Check for libncurses before menuconfig Masahiro Yamada <yamada.masahiro@socionext.com> - 2017-05-22 04:00 +0200

#1646202 — Re: [PATCH] kconfig: Check for libncurses before menuconfig

FromMasahiro Yamada <yamada.masahiro@socionext.com>
Date2017-05-20 21:40 +0200
SubjectRe: [PATCH] kconfig: Check for libncurses before menuconfig
Message-ID<tJioh-5DU-1@gated-at.bofh.it>
Hi Borislav,


2017-04-09 22:07 GMT+09:00 Borislav Petkov <bp@alien8.de>:
> From: Borislav Petkov <bp@suse.de>
>
> There is a check and a nice user-friendly message when the curses
> library is not present on the system and the user wants to do "make
> menuconfig". It doesn't get issued, though. Instead, we fail the build
> when mconf.c doesn't find the curses.h header:
>
>     HOSTCC  scripts/kconfig/mconf.o
>   In file included from scripts/kconfig/mconf.c:23:0:
>   scripts/kconfig/lxdialog/dialog.h:38:20: fatal error: curses.h: No such file or directory
>    #include CURSES_LOC
>                       ^
>   compilation terminated.


Strange, I could not reproduce this.

As far as I tested,
"make menuconfig" invoked dochecklxdialog without this patch.



mconf depends on $(lxdiaglog) at line 184:
mconf-objs     := mconf.o zconf.tab.o $(lxdialog)


$(lxdialog) depends on dochecklxdialog at line 199:
$(addprefix $(obj)/,$(lxdialog)): $(obj)/dochecklxdialog




> Make that check a prerequisite to mconf so that the user sees the error
> message instead:
>
>   $ make menuconfig
>    *** Unable to find the ncurses libraries or the
>    *** required header files.
>    *** 'make menuconfig' requires the ncurses libraries.
>    ***
>    *** Install ncurses (ncurses-devel) and try again.
>    ***
>   scripts/kconfig/Makefile:203: recipe for target 'scripts/kconfig/dochecklxdialog' failed
>   make[1]: *** [scripts/kconfig/dochecklxdialog] Error 1
>   Makefile:548: recipe for target 'menuconfig' failed
>   make: *** [menuconfig] Error 2
>
> Signed-off-by: Borislav Petkov <bp@suse.de>
> Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
> Cc: linux-kbuild@vger.kernel.org
> ---
>  scripts/kconfig/Makefile | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/scripts/kconfig/Makefile b/scripts/kconfig/Makefile
> index 90a091b6ae4d..e58220ce65b9 100644
> --- a/scripts/kconfig/Makefile
> +++ b/scripts/kconfig/Makefile
> @@ -24,6 +24,8 @@ xconfig: $(obj)/qconf
>  gconfig: $(obj)/gconf
>         $< $(silent) $(Kconfig)
>
> +$(obj)/mconf: $(obj)/dochecklxdialog
> +
>  menuconfig: $(obj)/mconf
>         $< $(silent) $(Kconfig)
>
> --
> 2.11.0
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html



-- 
Best Regards
Masahiro Yamada

[toc] | [next] | [standalone]


#1646213

FromBorislav Petkov <bp@alien8.de>
Date2017-05-20 22:40 +0200
Message-ID<tJjkm-6iU-7@gated-at.bofh.it>
In reply to#1646202
On Sun, May 21, 2017 at 04:38:35AM +0900, Masahiro Yamada wrote:
> Strange, I could not reproduce this.

Remove libncurses5-dev or whatever it is called on your system and do:

$ make menuconfig
  HOSTCC  scripts/kconfig/mconf.o
In file included from scripts/kconfig/mconf.c:23:0:
scripts/kconfig/lxdialog/dialog.h:38:20: fatal error: curses.h: No such file or directory
 #include CURSES_LOC
                    ^
compilation terminated.
scripts/Makefile.host:124: recipe for target 'scripts/kconfig/mconf.o' failed
make[1]: *** [scripts/kconfig/mconf.o] Error 1
Makefile:548: recipe for target 'menuconfig' failed
make: *** [menuconfig] Error 2

-- 
Regards/Gruss,
    Boris.

Good mailing practices for 400: avoid top-posting and trim the reply.

[toc] | [prev] | [next] | [standalone]


#1646296

FromMasahiro Yamada <yamada.masahiro@socionext.com>
Date2017-05-21 11:20 +0200
Message-ID<tJvbP-5TR-1@gated-at.bofh.it>
In reply to#1646213
Hi Borislav,


2017-05-21 5:33 GMT+09:00 Borislav Petkov <bp@alien8.de>:
> On Sun, May 21, 2017 at 04:38:35AM +0900, Masahiro Yamada wrote:
>> Strange, I could not reproduce this.
>
> Remove libncurses5-dev or whatever it is called on your system and do:
>
> $ make menuconfig
>   HOSTCC  scripts/kconfig/mconf.o
> In file included from scripts/kconfig/mconf.c:23:0:
> scripts/kconfig/lxdialog/dialog.h:38:20: fatal error: curses.h: No such file or directory
>  #include CURSES_LOC
>                     ^
> compilation terminated.
> scripts/Makefile.host:124: recipe for target 'scripts/kconfig/mconf.o' failed
> make[1]: *** [scripts/kconfig/mconf.o] Error 1
> Makefile:548: recipe for target 'menuconfig' failed
> make: *** [menuconfig] Error 2


OK, I see.

So, it is $(obj)/mconf.o instead of $(obj)/mconf
that should depend on $(obj)/dochecklxdialog.


Could you change line 199

  $(addprefix $(obj)/,$(lxdialog)): $(obj)/dochecklxdialog

to

  $(addprefix $(obj)/, mconf.o $(lxdialog)): $(obj)/dochecklxdialog

and send v2, please?


This will make sure dochecklxdialog is run before compiling mconf.o
in parallel building.


Thanks!



-- 
Best Regards
Masahiro Yamada

[toc] | [prev] | [next] | [standalone]


#1646300 — [PATCH v2] kconfig: Check for libncurses before menuconfig

FromBorislav Petkov <bp@alien8.de>
Date2017-05-21 11:50 +0200
Subject[PATCH v2] kconfig: Check for libncurses before menuconfig
Message-ID<tJvER-63O-9@gated-at.bofh.it>
In reply to#1646296
On Sun, May 21, 2017 at 06:15:53PM +0900, Masahiro Yamada wrote:
> Could you change line 199
> 
>   $(addprefix $(obj)/,$(lxdialog)): $(obj)/dochecklxdialog
> 
> to
> 
>   $(addprefix $(obj)/, mconf.o $(lxdialog)): $(obj)/dochecklxdialog
> 
> and send v2, please?

Here it is:

---
From: Borislav Petkov <bp@suse.de>
Date: Sun, 9 Apr 2017 15:07:08 +0200
Subject: [PATCH v2] kconfig: Check for libncurses before menuconfig

There is a check and a nice user-friendly message when the curses
library is not present on the system and the user wants to do "make
menuconfig". It doesn't get issued, though. Instead, we fail the build
when mconf.c doesn't find the curses.h header:

    HOSTCC  scripts/kconfig/mconf.o
  In file included from scripts/kconfig/mconf.c:23:0:
  scripts/kconfig/lxdialog/dialog.h:38:20: fatal error: curses.h: No such file or directory
   #include CURSES_LOC
                      ^
  compilation terminated.

Make sure dochecklxdialog gets run before mconf is compiled so that the
user sees the error message instead:

  $ make menuconfig
   *** Unable to find the ncurses libraries or the
   *** required header files.
   *** 'make menuconfig' requires the ncurses libraries.
   ***
   *** Install ncurses (ncurses-devel) and try again.
   ***
  scripts/kconfig/Makefile:203: recipe for target 'scripts/kconfig/dochecklxdialog' failed
  make[1]: *** [scripts/kconfig/dochecklxdialog] Error 1
  Makefile:548: recipe for target 'menuconfig' failed
  make: *** [menuconfig] Error 2

Signed-off-by: Borislav Petkov <bp@suse.de>
Cc: linux-kbuild@vger.kernel.org
Link: http://lkml.kernel.org/r/20170409130708.4753-1-bp@alien8.de
---
 scripts/kconfig/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/scripts/kconfig/Makefile b/scripts/kconfig/Makefile
index 90a091b6ae4d..eb8144643b78 100644
--- a/scripts/kconfig/Makefile
+++ b/scripts/kconfig/Makefile
@@ -196,7 +196,7 @@ clean-files     += config.pot linux.pot
 
 # Check that we have the required ncurses stuff installed for lxdialog (menuconfig)
 PHONY += $(obj)/dochecklxdialog
-$(addprefix $(obj)/,$(lxdialog)): $(obj)/dochecklxdialog
+$(addprefix $(obj)/, mconf.o $(lxdialog)): $(obj)/dochecklxdialog
 $(obj)/dochecklxdialog:
 	$(Q)$(CONFIG_SHELL) $(check-lxdialog) -check $(HOSTCC) $(HOST_EXTRACFLAGS) $(HOSTLOADLIBES_mconf)
 
-- 
2.11.0

-- 
Regards/Gruss,
    Boris.

Good mailing practices for 400: avoid top-posting and trim the reply.

[toc] | [prev] | [next] | [standalone]


#1646483 — Re: [PATCH v2] kconfig: Check for libncurses before menuconfig

FromMasahiro Yamada <yamada.masahiro@socionext.com>
Date2017-05-22 04:00 +0200
SubjectRe: [PATCH v2] kconfig: Check for libncurses before menuconfig
Message-ID<tJKNz-7ev-1@gated-at.bofh.it>
In reply to#1646300
2017-05-21 18:44 GMT+09:00 Borislav Petkov <bp@alien8.de>:
> On Sun, May 21, 2017 at 06:15:53PM +0900, Masahiro Yamada wrote:
>> Could you change line 199
>>
>>   $(addprefix $(obj)/,$(lxdialog)): $(obj)/dochecklxdialog
>>
>> to
>>
>>   $(addprefix $(obj)/, mconf.o $(lxdialog)): $(obj)/dochecklxdialog
>>
>> and send v2, please?
>
> Here it is:
>
> ---
> From: Borislav Petkov <bp@suse.de>
> Date: Sun, 9 Apr 2017 15:07:08 +0200
> Subject: [PATCH v2] kconfig: Check for libncurses before menuconfig
>
> There is a check and a nice user-friendly message when the curses
> library is not present on the system and the user wants to do "make
> menuconfig". It doesn't get issued, though. Instead, we fail the build
> when mconf.c doesn't find the curses.h header:
>
>     HOSTCC  scripts/kconfig/mconf.o
>   In file included from scripts/kconfig/mconf.c:23:0:
>   scripts/kconfig/lxdialog/dialog.h:38:20: fatal error: curses.h: No such file or directory
>    #include CURSES_LOC
>                       ^
>   compilation terminated.
>
> Make sure dochecklxdialog gets run before mconf is compiled so that the
> user sees the error message instead:
>
>   $ make menuconfig
>    *** Unable to find the ncurses libraries or the
>    *** required header files.
>    *** 'make menuconfig' requires the ncurses libraries.
>    ***
>    *** Install ncurses (ncurses-devel) and try again.
>    ***
>   scripts/kconfig/Makefile:203: recipe for target 'scripts/kconfig/dochecklxdialog' failed
>   make[1]: *** [scripts/kconfig/dochecklxdialog] Error 1
>   Makefile:548: recipe for target 'menuconfig' failed
>   make: *** [menuconfig] Error 2
>
> Signed-off-by: Borislav Petkov <bp@suse.de>
> Cc: linux-kbuild@vger.kernel.org
> Link: http://lkml.kernel.org/r/20170409130708.4753-1-bp@alien8.de
> ---
>  scripts/kconfig/Makefile | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/scripts/kconfig/Makefile b/scripts/kconfig/Makefile
> index 90a091b6ae4d..eb8144643b78 100644
> --- a/scripts/kconfig/Makefile
> +++ b/scripts/kconfig/Makefile
> @@ -196,7 +196,7 @@ clean-files     += config.pot linux.pot
>
>  # Check that we have the required ncurses stuff installed for lxdialog (menuconfig)
>  PHONY += $(obj)/dochecklxdialog
> -$(addprefix $(obj)/,$(lxdialog)): $(obj)/dochecklxdialog
> +$(addprefix $(obj)/, mconf.o $(lxdialog)): $(obj)/dochecklxdialog
>  $(obj)/dochecklxdialog:
>         $(Q)$(CONFIG_SHELL) $(check-lxdialog) -check $(HOSTCC) $(HOST_EXTRACFLAGS) $(HOSTLOADLIBES_mconf)
>


Acked-by: Masahiro Yamada <yamada.masahiro@socionext.com>

I will pick it up for v4.13 if it is not applied via kconfig.
I still will somebody can maintain the kconfig subsystem, though.



-- 
Best Regards
Masahiro Yamada

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web