2019-04-19 19:13:43

by Alexander Popov

[permalink] [raw]
Subject: [PATCH 1/1] kconfig: Terminate menu blocks with a newline in the generated config

Currently menu blocks start with a pretty header but end with nothing in
the generated config. So next config options stick together with the
options from the menu block.

Let's terminate menu blocks with a newline in the generated config.

Signed-off-by: Alexander Popov <[email protected]>
---
scripts/kconfig/confdata.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/scripts/kconfig/confdata.c b/scripts/kconfig/confdata.c
index 08ba146..1459153 100644
--- a/scripts/kconfig/confdata.c
+++ b/scripts/kconfig/confdata.c
@@ -888,6 +888,8 @@ int conf_write(const char *name)
if (menu->next)
menu = menu->next;
else while ((menu = menu->parent)) {
+ if (!menu->sym && menu_is_visible(menu))
+ fprintf(out, "\n");
if (menu->next) {
menu = menu->next;
break;
--
2.7.4



2019-04-19 19:14:29

by Kees Cook

[permalink] [raw]
Subject: Re: [PATCH 1/1] kconfig: Terminate menu blocks with a newline in the generated config

On Fri, Apr 19, 2019 at 5:29 AM Alexander Popov <[email protected]> wrote:
>
> Currently menu blocks start with a pretty header but end with nothing in
> the generated config. So next config options stick together with the
> options from the menu block.
>
> Let's terminate menu blocks with a newline in the generated config.
>
> Signed-off-by: Alexander Popov <[email protected]>

Seems fine to improve readability at a few bytes size increase.

Reviewed-by: Kees Cook <[email protected]>

-Kees

> ---
> scripts/kconfig/confdata.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/scripts/kconfig/confdata.c b/scripts/kconfig/confdata.c
> index 08ba146..1459153 100644
> --- a/scripts/kconfig/confdata.c
> +++ b/scripts/kconfig/confdata.c
> @@ -888,6 +888,8 @@ int conf_write(const char *name)
> if (menu->next)
> menu = menu->next;
> else while ((menu = menu->parent)) {
> + if (!menu->sym && menu_is_visible(menu))
> + fprintf(out, "\n");
> if (menu->next) {
> menu = menu->next;
> break;
> --
> 2.7.4
>


--
Kees Cook

2019-04-24 11:09:56

by Masahiro Yamada

[permalink] [raw]
Subject: Re: [PATCH 1/1] kconfig: Terminate menu blocks with a newline in the generated config

On Sat, Apr 20, 2019 at 4:12 AM Alexander Popov <[email protected]> wrote:
>
> Currently menu blocks start with a pretty header but end with nothing in
> the generated config. So next config options stick together with the
> options from the menu block.
>
> Let's terminate menu blocks with a newline in the generated config.
>
> Signed-off-by: Alexander Popov <[email protected]>


The .config file is a flat list of CONFIG options.
It does not represent menu structures at all.

I tested "make allyesconfig"
and the resulted outcome looks cheesy.



[1] Two blank lines in a row


---------->8-----------------
CONFIG_EFI_EARLYCON=y
CONFIG_IMX_SCU=y
CONFIG_IMX_SCU_PD=y

#
# Tegra firmware driver
#


CONFIG_HAVE_KVM=y
CONFIG_HAVE_KVM_IRQCHIP=y
CONFIG_HAVE_KVM_IRQFD=y
--------->8------------------------


[2] Some blank lines appended at the end of file

----------->8-------------
CONFIG_CPA_DEBUG=y
CONFIG_OPTIMIZE_INLINING=y
CONFIG_DEBUG_ENTRY=y
CONFIG_DEBUG_NMI_SELFTEST=y
CONFIG_X86_DEBUG_FPU=y
CONFIG_PUNIT_ATOM_DEBUG=y
CONFIG_UNWINDER_ORC=y
# CONFIG_UNWINDER_FRAME_POINTER is not set


---------->8-----------------



The readability of the .config could be improved somehow,
but this patch is not the right one.



--
Best Regards
Masahiro Yamada

2019-04-24 12:06:37

by Alexander Popov

[permalink] [raw]
Subject: Re: [PATCH 1/1] kconfig: Terminate menu blocks with a newline in the generated config

On 24.04.2019 13:09, Masahiro Yamada wrote:
> On Sat, Apr 20, 2019 at 4:12 AM Alexander Popov <[email protected]> wrote:
>>
>> Currently menu blocks start with a pretty header but end with nothing in
>> the generated config. So next config options stick together with the
>> options from the menu block.
>>
>> Let's terminate menu blocks with a newline in the generated config.
>>
>> Signed-off-by: Alexander Popov <[email protected]>
>
> The readability of the .config could be improved somehow,
> but this patch is not the right one.

Masahiro, thanks for having a look.
I've just sent v2 which does this task much better.

Best regards,
Alexander