summary refs log tree commit diff
path: root/scripts/kconfig/zconf.y
diff options
context:
space:
mode:
authorUlf Magnusson <ulfalizer@gmail.com>2018-01-12 07:47:47 +0100
committerMasahiro Yamada <yamada.masahiro@socionext.com>2018-01-22 00:49:29 +0900
commit6479f327dea60ddc2be065c7d174273fb4837f03 (patch)
tree9b8639c5b9ef8676cb8d1640b19a82bc4c0a62ff /scripts/kconfig/zconf.y
parentb92d804a51796b77c7b2b11881b2700eaac88114 (diff)
downloadlinux-6479f327dea60ddc2be065c7d174273fb4837f03.tar.gz
kconfig: Warn if there is more than one help text
Avoids mistakes like in the following real-world example, where only the
final help string ("Say Y...") was used. This particular example was
fixed in commit 561b29e4ec8d ("media: fix media Kconfig help syntax
issues").

  config DVB_NETUP_UNIDVB
  	...
	select DVB_CXD2841ER if MEDIA_SUBDRV_AUTOSELECT
  	---help---
  	  Support for NetUP PCI express Universal DVB card.
       help
  	Say Y when you want to support NetUP Dual Universal DVB card
        ...

This now prints the following warning:

  drivers/media/pci/netup_unidvb:13: warning: 'DVB_NETUP_UNIDVB' defined with more than one help text -- only the last one will be used

Also free() any extra help strings.

Signed-off-by: Ulf Magnusson <ulfalizer@gmail.com>
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Diffstat (limited to 'scripts/kconfig/zconf.y')
-rw-r--r--scripts/kconfig/zconf.y5
1 files changed, 5 insertions, 0 deletions
diff --git a/scripts/kconfig/zconf.y b/scripts/kconfig/zconf.y
index db5fbd8ac686..d2964c68f066 100644
--- a/scripts/kconfig/zconf.y
+++ b/scripts/kconfig/zconf.y
@@ -431,6 +431,11 @@ help_start: T_HELP T_EOL
 
 help: help_start T_HELPTEXT
 {
+	if (current_entry->help) {
+		free(current_entry->help);
+		zconfprint("warning: '%s' defined with more than one help text -- only the last one will be used",
+			   current_entry->sym->name ?: "<choice>");
+	}
 	current_entry->help = $2;
 };