Skip to contentSkip to conversation

Remove silentoldconfig from "make help"; fix kconfig/conf's help

PATCH Superseded Marc Herbert 2 participants 11 messages Dec 19, 2017 – Jan 28, 2018

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Remove silentoldconfig from "make help"; fix kconfig/conf's help

As explained by Michal Marek at https://lkml.org/lkml/2011/8/31/189
silentoldconfig has become a misnomer. It has become an internal interface and "oldconfig" is just as silent now. It's not part of the user interface so remove it from "make help" to stop confusing people trying to use it as seen for instance at
https://chromium-review.googlesource.com/271688

On the other hand, correct and expand its description in the help of scripts/kconfig/conf.c

---
 scripts/kconfig/Makefile | 1 -
 scripts/kconfig/conf.c   | 5 ++++-
 2 files changed, 4 insertions(+), 2 deletions(-)
scripts/kconfig/Makefile +0 -1
index 297c1bf35140..bf13b8fa3ccc 100644
@@ -142,7 +142,6 @@ help:
 	@echo  '  oldconfig	  - Update current config utilising a provided .config as base'
 	@echo  '  localmodconfig  - Update current config disabling modules not loaded'
 	@echo  '  localyesconfig  - Update current config converting local mods to core'
-	@echo  '  silentoldconfig - Same as oldconfig, but quietly, additionally update deps'
 	@echo  '  defconfig	  - New config with default from ARCH supplied defconfig'
 	@echo  '  savedefconfig   - Save current config as ./defconfig (minimal config)'
 	@echo  '  allnoconfig	  - New config where all options are answered with no'
scripts/kconfig/conf.c +4 -1
index 866369f10ff8..f8c002a19f62 100644
@@ -477,7 +477,10 @@ static void conf_usage(const char *progname)
 	printf("  --listnewconfig         List new options\n");
 	printf("  --oldaskconfig          Start a new configuration using a line-oriented program\n");
 	printf("  --oldconfig             Update a configuration using a provided .config as base\n");
-	printf("  --silentoldconfig       Same as oldconfig, but quietly, additionally update deps\n");
+	printf("  --silentoldconfig       Similar to oldconfig but:\n"
+	       "                            - no re-formatting of .config when nothing's missing\n"
+	       "                            - generates configuration in include/{generated/,config/}\n"
+	       "                          (oldconfig used to be more verbose)\n");
 	printf("  --olddefconfig          Same as silentoldconfig but sets new symbols to their default value\n");
 	printf("  --oldnoconfig           An alias of olddefconfig\n");
 	printf("  --defconfig <file>      New config with default defined in <file>\n");
Signature · 1 line
2.9.5
#1 lore raw

(+CC Michal's new address)

2017-12-19 10:26 GMT+09:00 Marc Herbert <[email protected]>:

Quoted 3 lines

As explained by Michal Marek at https://lkml.org/lkml/2011/8/31/189
silentoldconfig has become a misnomer. It has become an internal interface and "oldconfig" is just as silent now.

Hmm, I'd like to be sure about your intention.

"oldconfig" is not silent. (nor is silentoldconfig).

When it finds a new symbol, it will show a dialog
to ask users to input a value.

"olddefconfig" is really silent
because it automatically sets new symbols to default.

I agree it is confusing due to the historical misnomer.

scripts/kconfig/conf.c

Quoted 27 lines

It's not part of the
user interface so remove it from "make help" to stop confusing people trying to use it as seen for instance at
https://chromium-review.googlesource.com/271688

On the other hand, correct and expand its description in the help of scripts/kconfig/conf.c

---
 scripts/kconfig/Makefile | 1 -
 scripts/kconfig/conf.c   | 5 ++++-
 2 files changed, 4 insertions(+), 2 deletions(-)
scripts/kconfig/Makefile +0 -1
index 297c1bf35140..bf13b8fa3ccc 100644
@@ -142,7 +142,6 @@ help:
        @echo  '  oldconfig       - Update current config utilising a provided .config as base'
        @echo  '  localmodconfig  - Update current config disabling modules not loaded'
        @echo  '  localyesconfig  - Update current config converting local mods to core'
-       @echo  '  silentoldconfig - Same as oldconfig, but quietly, additionally update deps'
        @echo  '  defconfig       - New config with default from ARCH supplied defconfig'
        @echo  '  savedefconfig   - Save current config as ./defconfig (minimal config)'
        @echo  '  allnoconfig     - New config where all options are answered with no'
scripts/kconfig/conf.c +0 -0

A few lines below, I see

@echo ' olddefconfig - Same as silentoldconfig but sets
new symbols to their'
@echo ' default value'

If you drop silentoldconfig help,
the "Same as silentoldconfig" is not sensible.
You need to update this line, too.

I think "Same as oldconfig but ..." will be OK.

scripts/kconfig/conf.c static void conf_usage(const char *progname) · line 483

Quoted 12 lines

index 866369f10ff8..f8c002a19f62 100644

scripts/kconfig/conf.c +4 -1
@@ -477,7 +477,10 @@ static void conf_usage(const char *progname)
        printf("  --listnewconfig         List new options\n");
        printf("  --oldaskconfig          Start a new configuration using a line-oriented program\n");
        printf("  --oldconfig             Update a configuration using a provided .config as base\n");
-       printf("  --silentoldconfig       Same as oldconfig, but quietly, additionally update deps\n");
+       printf("  --silentoldconfig       Similar to oldconfig but:\n"
+              "                            - no re-formatting of .config when nothing's missing\n"
+              "                            - generates configuration in include/{generated/,config/}\n"
+              "                          (oldconfig used to be more verbose)\n");

What do you mean by "oldconfig used to be more verbose" ?

Did oldconfig change its behavior?

Unless I am missing something, the current behavior of "oldconfig" has been the same
at least since the beginning of the git era.

Quoted 10 lines
scripts/kconfig/conf.c +0 -1
        printf("  --olddefconfig          Same as silentoldconfig but sets new symbols to their default value\n");
        printf("  --oldnoconfig           An alias of olddefconfig\n");
        printf("  --defconfig <file>      New config with default defined in <file>\n");
--

2.9.5

--
To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

Signature · 2 lines
Best Regards
Masahiro Yamada
#2 lore raw
Quoted 9 lines · Masahiro Yamada

(+CC Michal's new address)

2017-12-19 10:26 GMT+09:00 Marc Herbert <[email protected]>:

Quoted 3 lines

As explained by Michal Marek at https://lkml.org/lkml/2011/8/31/189
silentoldconfig has become a misnomer. It has become an internal interface and "oldconfig" is just as silent now.

Hmm, I'd like to be sure about your intention.

My main intention is to stop advertising the now internal silentoldconfig target in the user interface. A secondary goal is to provide an accurate background information in the commit message.

Quoted 6 lines

"oldconfig" is not silent. (nor is silentoldconfig). When it finds a new symbol, it will show a dialog to ask users to input a value.

"olddefconfig" is really silent
because it automatically sets new symbols to default.

I think "silent" is typically missing well-defined semantics (another appeal to remove "silentoldconfig" from the user interface...) and I'm not sure "silent" ever meant "non-interactive" as you just described here. I think silent just meant "quiet(er)" here.

This commit message was purely based on Michal's message that I'm referencing. He wrote there: "... nowadays oldconfig is silent as well"

I can change that part of the commit message to:

| As explained by Michal Marek at https://lkml.org/lkml/2011/8/31/189
| silentoldconfig has become a misnomer. It has become an internal
| interface and "oldconfig" is just as QUIET now.

... or to anything else you prefer.

Quoted 5 lines

If you drop silentoldconfig help,
the "Same as silentoldconfig" is not sensible.
You need to update this line, too.

I think "Same as oldconfig but ..." will be OK.

Agreed, thank you! I will also search for other occurrences.

Quoted 5 lines

What do you mean by "oldconfig used to be more verbose" ? Did oldconfig change its behavior?

Unless I am missing something, the current behavior of "oldconfig" has been the same at least since the beginning of the git era.

Again that's what Michal's message claimed in 2011. I don't know to which even older era he was referring to.

It was already quite time consuming to understand and verify the subtle nuances of the current state (which luckily still matches what Michal reported 7 years ago), so for the even older past I just deferred to Michal.

Now I just checked out v2.6.12-rc2 (2005) and it looks like Michal was
right: oldconfig was much more verbose then; it was dumping the entire .config file on stdout.

If you prefer I can keep referring to Michal's message but without paraphrasing it at all; sticking to the description of the current behaviours and not mentioning any possible past behaviour and saving all of us the time spent doing archeology. Just let me know, thx!

Signature · 1 line
Marc
#3 lore raw

2018-01-06 7:21 GMT+09:00 Marc Herbert <[email protected]>:

Quoted 9 lines · Masahiro Yamada
Quoted 8 lines

(+CC Michal's new address)

2017-12-19 10:26 GMT+09:00 Marc Herbert <[email protected]>:

Quoted 3 lines

As explained by Michal Marek at https://lkml.org/lkml/2011/8/31/189
silentoldconfig has become a misnomer. It has become an internal interface and "oldconfig" is just as silent now.

Quoted 5 lines
Quoted 1 line

Hmm, I'd like to be sure about your intention.

My main intention is to stop advertising the now internal silentoldconfig target in the user interface. A secondary goal is to provide an accurate background information in the commit message.

OK.

Quoted 11 lines
Quoted 6 lines

"oldconfig" is not silent. (nor is silentoldconfig). When it finds a new symbol, it will show a dialog to ask users to input a value.

"olddefconfig" is really silent
because it automatically sets new symbols to default.

I think "silent" is typically missing well-defined semantics (another appeal to remove "silentoldconfig" from the user interface...) and I'm not sure "silent" ever meant "non-interactive" as you just described here. I think silent just meant "quiet(er)" here.

I imagined "silent" meant "non-interactive" at first,
but, you are right, Michal probably referred to this word "quiet(er)".

Quoted 8 lines

This commit message was purely based on Michal's message that I'm referencing. He wrote there: "... nowadays oldconfig is silent as well"

I can change that part of the commit message to:

| As explained by Michal Marek at https://lkml.org/lkml/2011/8/31/189
| silentoldconfig has become a misnomer. It has become an internal
| interface and "oldconfig" is just as QUIET now.

Sounds good.

(but, currently, there is a slight difference of quiet level between oldconfig and silentoldconfig)

See below.

Quoted 21 lines

... or to anything else you prefer.

Quoted 5 lines

If you drop silentoldconfig help,
the "Same as silentoldconfig" is not sensible.
You need to update this line, too.

I think "Same as oldconfig but ..." will be OK.

Agreed, thank you! I will also search for other occurrences.

Quoted 5 lines

What do you mean by "oldconfig used to be more verbose" ? Did oldconfig change its behavior?

Unless I am missing something, the current behavior of "oldconfig" has been the same at least since the beginning of the git era.

Again that's what Michal's message claimed in 2011. I don't know to which even older era he was referring to.

Quoted 7 lines

It was already quite time consuming to understand and verify the subtle nuances of the current state (which luckily still matches what Michal reported 7 years ago), so for the even older past I just deferred to Michal.

Now I just checked out v2.6.12-rc2 (2005) and it looks like Michal was
right: oldconfig was much more verbose then; it was dumping the entire .config file on stdout.

You and Michal are right.

It is commit cd9140e1e73a ("kconfig: make oldconfig is now less chatty").

I took a closer look at this.

Currently, oldconfig is a little bit more verbose than silentoldconfig, but it should not be. I'd like to fix it.

I attached a test case in my patch
https://patchwork.kernel.org/patch/10154095/

At the end of its git-log,
I attached deeper analysis of the history of oldconfig. Please check it out if you are interested.

Quoted 4 lines

If you prefer I can keep referring to Michal's message but without paraphrasing it at all; sticking to the description of the current behaviours and not mentioning any possible past behaviour and saving all of us the time spent doing archeology. Just let me know, thx!

Sounds good to me. (I recorded the backgound in my patch, anyway...)

I leave the detail of the commit log up to you.

scripts/kconfig/conf.c static void conf_usage(const char *progname) · line 483

Quoted 4 lines
scripts/kconfig/conf.c +4 -0
+       printf("  --silentoldconfig       Similar to oldconfig but:\n"
+              "                            - no re-formatting of .config when nothing's missing\n"
+              "                            - generates configuration in include/{generated/,config/}\n"
+              "                          (oldconfig used to be more verbose)\n");

How about "Similar to oldconfig but, generates configuration ..." ?

I'd like to drop the following description.

"no re-formatting of .config when nothing's missing"
This is very subtle difference, less important. It may not be stable in the future.

"(oldconfig used to be more verbose)"
The historical background is git.
If people are interested in archeology,
they would be able to do it by "git log", "git blame", etc. We are generally interested in the current behavior.

Signature · 2 lines
Best Regards
Masahiro Yamada
#4 lore raw

Masahiro,

Quoted 6 lines · Masahiro Yamada
Quoted 1 line

"(oldconfig used to be more verbose)"

The historical background is git.
If people are interested in archeology,
they would be able to do it by "git log", "git blame", etc. We are generally interested in the current behavior.

I'd like to keep that sentence because it's there to explain the legacy and confusing "--silentoldconfig" name which unfortunately still sticks out in the *current* conf.c interface.

+ printf(" --silentoldconfig Similar to oldconfig but generates configuration in\n"
+ " include/{generated/,config/} (oldconfig used to be more verbose)\n");

The purpose of this sentence is to warn people that: "silentoldconfig is just archeology, so you can safely ignore it" and save them time.

The alternative I considered was to entirely remove "silentconfig" not just from the Makefile's help but from the conf.c help too.

Thoughts?

Signature · 1 line
Marc
#5 lore raw

Hi Marc,

Sorry for my late reply.

2018-01-13 7:49 GMT+09:00 Marc Herbert <[email protected]>:

Quoted 18 lines

Masahiro,

Quoted 6 lines · Masahiro Yamada
Quoted 1 line

"(oldconfig used to be more verbose)"

The historical background is git.
If people are interested in archeology,
they would be able to do it by "git log", "git blame", etc. We are generally interested in the current behavior.

I'd like to keep that sentence because it's there to explain the legacy and confusing "--silentoldconfig" name which unfortunately still sticks out in the *current* conf.c interface.

(quoted diff) +2 -0
+       printf("  --silentoldconfig       Similar to oldconfig but generates configuration in\n"
+              "                          include/{generated/,config/} (oldconfig used to be more verbose)\n");
Quoted 7 lines

The purpose of this sentence is to warn people that: "silentoldconfig is just archeology, so you can safely ignore it" and save them time.

The alternative I considered was to entirely remove "silentconfig" not just from the Makefile's help but from the conf.c help too.

Thoughts?

Another possibility might be to rename 'silentoldconfig'. instead of explaining the background in the help message.

Your git-log 'internal interface' implies
renaming has no impact.

Commit fb16d8912db5268f29706010ecafff74b971c58d
renamed oldnoconfig to olddefconfig
to match the name to its behavior.

Then, I want to drop the 'oldnoconfig' alias:
https://patchwork.kernel.org/patch/10172375/

If we worry about the compatibility just in case, we can keep 'silentoldconfig' as an alias as well.

It is difficult to suggest a clear name,
but 'syncconfig' is the one I came up with.

Please suggest if you have a better idea.

What do you think?

Signature · 2 lines
Best Regards
Masahiro Yamada
#6 lore raw

Masahiro,

Quoted 1 line · Masahiro Yamada

Sorry for my late reply.

I think we're even now :-)

Quoted 14 lines
Quoted 7 lines

I'd like to keep that sentence because it's there to explain the legacy and confusing "--silentoldconfig" name which unfortunately still sticks out in the *current* conf.c interface.

(quoted diff) +2 -0
+       printf("  --silentoldconfig       Similar to oldconfig but generates configuration in\n"
+              "                          include/{generated/,config/} (oldconfig used to be more verbose)\n");
Quoted 5 lines

The purpose of this sentence is to warn people that: "silentoldconfig is just archeology, so you can safely ignore it" and save them time.

The alternative I considered was to entirely remove "silentconfig" not just from the Makefile's help but from the conf.c help too.

Quoted 7 lines

Another possibility might be to rename 'silentoldconfig'. instead of explaining the background in the help message. [...]
It is difficult to suggest a clear name,
but 'syncconfig' is the one I came up with.

Please suggest if you have a better idea.

Look like a good idea and name to me but... for a different, bigger and later commit.

Quoted 2 lines

Commit fb16d8912db5268f29706010ecafff74b971c58d renamed oldnoconfig to olddefconfig...

... but it didn't remove any "now internal API" from "make help". Instead it changed the name of an external and preserved "API".

Quoted 2 lines

If we worry about the compatibility just in case, we can keep 'silentoldconfig' as an alias as well.

Yes - but later?

In the meantime I found another instance of silentoldconfig in Documentation/admin-guide/; posting v3 with that removed too. I'm also adding some deprecation comments in the source.

Signature · 1 line
Marc
#7 lore raw

2018-01-27 8:00 GMT+09:00 Marc Herbert <[email protected]>:

Quoted 42 lines

Masahiro,

Quoted 1 line · Masahiro Yamada

Sorry for my late reply.

I think we're even now :-)

Quoted 14 lines
Quoted 7 lines

I'd like to keep that sentence because it's there to explain the legacy and confusing "--silentoldconfig" name which unfortunately still sticks out in the *current* conf.c interface.

(quoted diff) +2 -0
+       printf("  --silentoldconfig       Similar to oldconfig but generates configuration in\n"
+              "                          include/{generated/,config/} (oldconfig used to be more verbose)\n");
Quoted 5 lines

The purpose of this sentence is to warn people that: "silentoldconfig is just archeology, so you can safely ignore it" and save them time.

The alternative I considered was to entirely remove "silentconfig" not just from the Makefile's help but from the conf.c help too.

Quoted 7 lines

Another possibility might be to rename 'silentoldconfig'. instead of explaining the background in the help message. [...]
It is difficult to suggest a clear name,
but 'syncconfig' is the one I came up with.

Please suggest if you have a better idea.

Look like a good idea and name to me but... for a different, bigger and later commit.

Quoted 2 lines

Commit fb16d8912db5268f29706010ecafff74b971c58d renamed oldnoconfig to olddefconfig...

... but it didn't remove any "now internal API" from "make help". Instead it changed the name of an external and preserved "API".

Quoted 2 lines

If we worry about the compatibility just in case, we can keep 'silentoldconfig' as an alias as well.

Quoted 7 lines

Yes - but later?

In the meantime I found another instance of silentoldconfig in Documentation/admin-guide/; posting v3 with that removed too. I'm also adding some deprecation comments in the source.

--

Okay, let's go with your patch for now.

Signature · 2 lines
Best Regards
Masahiro Yamada
#8 lore raw

PATCH v2 1/1 Remove silentoldconfig from "make help"; fix kconfig/conf's help

In reply to Marc Herbert

As explained by Michal Marek at https://lkml.org/lkml/2011/8/31/189
silentoldconfig has become a misnomer. It has become an internal interface so remove it from "make help" to stop confusing people trying to use it as seen for instance at https://chromium-review.googlesource.com/835632

On the other hand, correct and expand its description in the help of scripts/kconfig/conf.c

---
v2: rewordings (Masahiro)

 scripts/kconfig/Makefile | 5 ++---
 scripts/kconfig/conf.c   | 5 +++--
 2 files changed, 5 insertions(+), 5 deletions(-)
scripts/kconfig/Makefile +2 -3
index 297c1bf35140..ac4bda790922 100644
@@ -142,7 +142,6 @@ help:
 	@echo  '  oldconfig	  - Update current config utilising a provided .config as base'
 	@echo  '  localmodconfig  - Update current config disabling modules not loaded'
 	@echo  '  localyesconfig  - Update current config converting local mods to core'
-	@echo  '  silentoldconfig - Same as oldconfig, but quietly, additionally update deps'
 	@echo  '  defconfig	  - New config with default from ARCH supplied defconfig'
 	@echo  '  savedefconfig   - Save current config as ./defconfig (minimal config)'
 	@echo  '  allnoconfig	  - New config where all options are answered with no'
@@ -151,8 +150,8 @@ help:
 	@echo  '  alldefconfig    - New config with all symbols set to default'
 	@echo  '  randconfig	  - New config with random answer to all options'
 	@echo  '  listnewconfig   - List new options'
-	@echo  '  olddefconfig	  - Same as silentoldconfig but sets new symbols to their'
-	@echo  '                    default value'
+	@echo  '  olddefconfig	  - Same as oldconfig but sets new symbols to their'
+	@echo  '                    default value without prompting'
 	@echo  '  kvmconfig	  - Enable additional options for kvm guest kernel support'
 	@echo  '  xenconfig       - Enable additional options for xen dom0 and guest kernel support'
 	@echo  '  tinyconfig	  - Configure the tiniest possible kernel'
scripts/kconfig/conf.c +3 -2
index 866369f10ff8..303fbe2ffa04 100644
@@ -477,8 +477,9 @@ static void conf_usage(const char *progname)
 	printf("  --listnewconfig         List new options\n");
 	printf("  --oldaskconfig          Start a new configuration using a line-oriented program\n");
 	printf("  --oldconfig             Update a configuration using a provided .config as base\n");
-	printf("  --silentoldconfig       Same as oldconfig, but quietly, additionally update deps\n");
-	printf("  --olddefconfig          Same as silentoldconfig but sets new symbols to their default value\n");
+	printf("  --silentoldconfig       Similar to oldconfig but generates configuration in\n"
+	       "                          include/{generated/,config/} (oldconfig used to be more verbose)\n");
+	printf("  --olddefconfig          Same as oldconfig but sets new symbols to their default value\n");
 	printf("  --oldnoconfig           An alias of olddefconfig\n");
 	printf("  --defconfig <file>      New config with default defined in <file>\n");
 	printf("  --savedefconfig <file>  Save the minimal current configuration to <file>\n");
Signature · 1 line
2.13.6
#9 lore raw

PATCH v3 1/1 Remove silentoldconfig from help and docs; fix kconfig/conf's help

In reply to Marc Herbert

As explained by Michal Marek at https://lkml.org/lkml/2011/8/31/189
silentoldconfig has become a misnomer. It has become an internal interface so remove it from "make help" and Documentation/ to stop confusing people using it as seen for instance at
https://chromium-review.googlesource.com/835632 Don't remove it from kconfig/Makefile yet not to break any (other) tool using it.

On the other hand, correct and expand its description in the help of the (internal) scripts/kconfig/conf.c

---
v2: rewordings (Masahiro)
v3: remove from Documentation/ too. Add warning comments in source.

 Documentation/admin-guide/README.rst | 5 -----
 scripts/kconfig/Makefile             | 7 ++++---
 scripts/kconfig/conf.c               | 6 ++++--
 3 files changed, 8 insertions(+), 10 deletions(-)
Documentation/admin-guide/README.rst +0 -5
index 63066db39910..af5a437198d0 100644
@@ -170,11 +170,6 @@ Configuring the kernel
                         your existing ./.config file and asking about
                         new config symbols.
 
-     "make silentoldconfig"
-                        Like above, but avoids cluttering the screen
-                        with questions already answered.
-                        Additionally updates the dependencies.
-
      "make olddefconfig"
                         Like above, but sets new symbols to their default
                         values without prompting.
scripts/kconfig/Makefile +4 -3
index df6469fd3dcc..a460f9f7b733 100644
@@ -34,6 +34,8 @@ config: $(obj)/conf
 nconfig: $(obj)/nconf
 	$< $(silent) $(Kconfig)
 
+# This has become an internal implementation detail and is now deprecated
+# for external use.
 silentoldconfig: $(obj)/conf
 	$(Q)mkdir -p include/config include/generated
 	$(Q)test -e include/generated/autoksyms.h || \
@@ -142,7 +144,6 @@ help:
 	@echo  '  oldconfig	  - Update current config utilising a provided .config as base'
 	@echo  '  localmodconfig  - Update current config disabling modules not loaded'
 	@echo  '  localyesconfig  - Update current config converting local mods to core'
-	@echo  '  silentoldconfig - Same as oldconfig, but quietly, additionally update deps'
 	@echo  '  defconfig	  - New config with default from ARCH supplied defconfig'
 	@echo  '  savedefconfig   - Save current config as ./defconfig (minimal config)'
 	@echo  '  allnoconfig	  - New config where all options are answered with no'
@@ -151,8 +152,8 @@ help:
 	@echo  '  alldefconfig    - New config with all symbols set to default'
 	@echo  '  randconfig	  - New config with random answer to all options'
 	@echo  '  listnewconfig   - List new options'
-	@echo  '  olddefconfig	  - Same as silentoldconfig but sets new symbols to their'
-	@echo  '                    default value'
+	@echo  '  olddefconfig	  - Same as oldconfig but sets new symbols to their'
+	@echo  '                    default value without prompting'
 	@echo  '  kvmconfig	  - Enable additional options for kvm guest kernel support'
 	@echo  '  xenconfig       - Enable additional options for xen dom0 and guest kernel support'
 	@echo  '  tinyconfig	  - Configure the tiniest possible kernel'
scripts/kconfig/conf.c +4 -2
index a8a97efd3dfc..a309ccec1000 100644
@@ -457,6 +457,7 @@ static void check_conf(struct menu *menu)
 static struct option long_opts[] = {
 	{"oldaskconfig",    no_argument,       NULL, oldaskconfig},
 	{"oldconfig",       no_argument,       NULL, oldconfig},
+	/* Has become a misnomer, "syncconfig" would be more accurate */
 	{"silentoldconfig", no_argument,       NULL, silentoldconfig},
 	{"defconfig",       optional_argument, NULL, defconfig},
 	{"savedefconfig",   required_argument, NULL, savedefconfig},
@@ -484,8 +485,9 @@ static void conf_usage(const char *progname)
 	printf("  --listnewconfig         List new options\n");
 	printf("  --oldaskconfig          Start a new configuration using a line-oriented program\n");
 	printf("  --oldconfig             Update a configuration using a provided .config as base\n");
-	printf("  --silentoldconfig       Same as oldconfig, but quietly, additionally update deps\n");
-	printf("  --olddefconfig          Same as silentoldconfig but sets new symbols to their default value\n");
+	printf("  --silentoldconfig       Similar to oldconfig but generates configuration in\n"
+	       "                          include/{generated/,config/} (oldconfig used to be more verbose)\n");
+	printf("  --olddefconfig          Same as oldconfig but sets new symbols to their default value\n");
 	printf("  --oldnoconfig           An alias of olddefconfig\n");
 	printf("  --defconfig <file>      New config with default defined in <file>\n");
 	printf("  --savedefconfig <file>  Save the minimal current configuration to <file>\n");
Signature · 1 line
2.13.6
#10 lore raw

Re: [PATCH v3] Remove silentoldconfig from help and docs; fix kconfig/conf's help

2018-01-27 7:59 GMT+09:00 Marc Herbert <[email protected]>:

Quoted 73 lines

As explained by Michal Marek at https://lkml.org/lkml/2011/8/31/189
silentoldconfig has become a misnomer. It has become an internal interface so remove it from "make help" and Documentation/ to stop confusing people using it as seen for instance at
https://chromium-review.googlesource.com/835632 Don't remove it from kconfig/Makefile yet not to break any (other) tool using it.

On the other hand, correct and expand its description in the help of the (internal) scripts/kconfig/conf.c

---
v2: rewordings (Masahiro)
v3: remove from Documentation/ too. Add warning comments in source.

 Documentation/admin-guide/README.rst | 5 -----
 scripts/kconfig/Makefile             | 7 ++++---
 scripts/kconfig/conf.c               | 6 ++++--
 3 files changed, 8 insertions(+), 10 deletions(-)
Documentation/admin-guide/README.rst +0 -5
index 63066db39910..af5a437198d0 100644
@@ -170,11 +170,6 @@ Configuring the kernel
                         your existing ./.config file and asking about
                         new config symbols.
 
-     "make silentoldconfig"
-                        Like above, but avoids cluttering the screen
-                        with questions already answered.
-                        Additionally updates the dependencies.
-
      "make olddefconfig"
                         Like above, but sets new symbols to their default
                         values without prompting.
scripts/kconfig/Makefile +4 -3
index df6469fd3dcc..a460f9f7b733 100644
@@ -34,6 +34,8 @@ config: $(obj)/conf
 nconfig: $(obj)/nconf
        $< $(silent) $(Kconfig)
 
+# This has become an internal implementation detail and is now deprecated
+# for external use.
 silentoldconfig: $(obj)/conf
        $(Q)mkdir -p include/config include/generated
        $(Q)test -e include/generated/autoksyms.h || \
@@ -142,7 +144,6 @@ help:
        @echo  '  oldconfig       - Update current config utilising a provided .config as base'
        @echo  '  localmodconfig  - Update current config disabling modules not loaded'
        @echo  '  localyesconfig  - Update current config converting local mods to core'
-       @echo  '  silentoldconfig - Same as oldconfig, but quietly, additionally update deps'
        @echo  '  defconfig       - New config with default from ARCH supplied defconfig'
        @echo  '  savedefconfig   - Save current config as ./defconfig (minimal config)'
        @echo  '  allnoconfig     - New config where all options are answered with no'
@@ -151,8 +152,8 @@ help:
        @echo  '  alldefconfig    - New config with all symbols set to default'
        @echo  '  randconfig      - New config with random answer to all options'
        @echo  '  listnewconfig   - List new options'
-       @echo  '  olddefconfig    - Same as silentoldconfig but sets new symbols to their'
-       @echo  '                    default value'
+       @echo  '  olddefconfig    - Same as oldconfig but sets new symbols to their'
+       @echo  '                    default value without prompting'
        @echo  '  kvmconfig       - Enable additional options for kvm guest kernel support'
        @echo  '  xenconfig       - Enable additional options for xen dom0 and guest kernel support'
        @echo  '  tinyconfig      - Configure the tiniest possible kernel'
scripts/kconfig/conf.c +0 -0
index a8a97efd3dfc..a309ccec1000 100644

scripts/kconfig/conf.c static void check_conf(struct menu *menu) · line 460

Quoted 4 lines
scripts/kconfig/conf.c +1 -0
@@ -457,6 +457,7 @@ static void check_conf(struct menu *menu)
 static struct option long_opts[] = {
        {"oldaskconfig",    no_argument,       NULL, oldaskconfig},
        {"oldconfig",       no_argument,       NULL, oldconfig},
+       /* Has become a misnomer, "syncconfig" would be more accurate */

I removed this line (since nobody is sure about the future), then applied to linux-kbuild/kconfig. Thanks!

Quoted 22 lines
scripts/kconfig/conf.c +3 -3
        {"silentoldconfig", no_argument,       NULL, silentoldconfig},
        {"defconfig",       optional_argument, NULL, defconfig},
        {"savedefconfig",   required_argument, NULL, savedefconfig},
@@ -484,8 +485,9 @@ static void conf_usage(const char *progname)
        printf("  --listnewconfig         List new options\n");
        printf("  --oldaskconfig          Start a new configuration using a line-oriented program\n");
        printf("  --oldconfig             Update a configuration using a provided .config as base\n");
-       printf("  --silentoldconfig       Same as oldconfig, but quietly, additionally update deps\n");
-       printf("  --olddefconfig          Same as silentoldconfig but sets new symbols to their default value\n");
+       printf("  --silentoldconfig       Similar to oldconfig but generates configuration in\n"
+              "                          include/{generated/,config/} (oldconfig used to be more verbose)\n");
+       printf("  --olddefconfig          Same as oldconfig but sets new symbols to their default value\n");
        printf("  --oldnoconfig           An alias of olddefconfig\n");
        printf("  --defconfig <file>      New config with default defined in <file>\n");
        printf("  --savedefconfig <file>  Save the minimal current configuration to <file>\n");
--

2.13.6

--
To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

Signature · 2 lines
Best Regards
Masahiro Yamada