* [PATCH] kconfig: Check for libncurses before menuconfig
@ 2017-04-09 13:07 Borislav Petkov
2017-05-20 19:38 ` Masahiro Yamada
0 siblings, 1 reply; 7+ messages in thread
From: Borislav Petkov @ 2017-04-09 13:07 UTC (permalink / raw)
To: LKML; +Cc: Masahiro Yamada, linux-kbuild
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.
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
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH] kconfig: Check for libncurses before menuconfig
2017-04-09 13:07 [PATCH] kconfig: Check for libncurses before menuconfig Borislav Petkov
@ 2017-05-20 19:38 ` Masahiro Yamada
2017-05-20 20:33 ` Borislav Petkov
0 siblings, 1 reply; 7+ messages in thread
From: Masahiro Yamada @ 2017-05-20 19:38 UTC (permalink / raw)
To: Borislav Petkov; +Cc: LKML, Linux Kbuild mailing list
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
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] kconfig: Check for libncurses before menuconfig
2017-05-20 19:38 ` Masahiro Yamada
@ 2017-05-20 20:33 ` Borislav Petkov
2017-05-21 9:15 ` Masahiro Yamada
0 siblings, 1 reply; 7+ messages in thread
From: Borislav Petkov @ 2017-05-20 20:33 UTC (permalink / raw)
To: Masahiro Yamada; +Cc: LKML, Linux Kbuild mailing list
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.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] kconfig: Check for libncurses before menuconfig
2017-05-20 20:33 ` Borislav Petkov
@ 2017-05-21 9:15 ` Masahiro Yamada
2017-05-21 9:44 ` [PATCH v2] " Borislav Petkov
0 siblings, 1 reply; 7+ messages in thread
From: Masahiro Yamada @ 2017-05-21 9:15 UTC (permalink / raw)
To: Borislav Petkov; +Cc: LKML, Linux Kbuild mailing list
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
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH v2] kconfig: Check for libncurses before menuconfig
2017-05-21 9:15 ` Masahiro Yamada
@ 2017-05-21 9:44 ` Borislav Petkov
2017-05-22 1:52 ` Masahiro Yamada
2017-06-09 16:24 ` Masahiro Yamada
0 siblings, 2 replies; 7+ messages in thread
From: Borislav Petkov @ 2017-05-21 9:44 UTC (permalink / raw)
To: Masahiro Yamada; +Cc: LKML, Linux Kbuild mailing list
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.
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH v2] kconfig: Check for libncurses before menuconfig
2017-05-21 9:44 ` [PATCH v2] " Borislav Petkov
@ 2017-05-22 1:52 ` Masahiro Yamada
2017-06-09 16:24 ` Masahiro Yamada
1 sibling, 0 replies; 7+ messages in thread
From: Masahiro Yamada @ 2017-05-22 1:52 UTC (permalink / raw)
To: Borislav Petkov; +Cc: LKML, Linux Kbuild mailing list
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
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v2] kconfig: Check for libncurses before menuconfig
2017-05-21 9:44 ` [PATCH v2] " Borislav Petkov
2017-05-22 1:52 ` Masahiro Yamada
@ 2017-06-09 16:24 ` Masahiro Yamada
1 sibling, 0 replies; 7+ messages in thread
From: Masahiro Yamada @ 2017-06-09 16:24 UTC (permalink / raw)
To: Borislav Petkov; +Cc: LKML, Linux Kbuild mailing list
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
> ---
Applied to linux-kbuild/fixes. Thanks!
--
Best Regards
Masahiro Yamada
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2017-06-09 16:24 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-04-09 13:07 [PATCH] kconfig: Check for libncurses before menuconfig Borislav Petkov
2017-05-20 19:38 ` Masahiro Yamada
2017-05-20 20:33 ` Borislav Petkov
2017-05-21 9:15 ` Masahiro Yamada
2017-05-21 9:44 ` [PATCH v2] " Borislav Petkov
2017-05-22 1:52 ` Masahiro Yamada
2017-06-09 16:24 ` Masahiro Yamada
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.