Skip to contentSkip to conversation

kconfig: Improve warnings related to select

PATCH New Sam Ravnborg 1 participant 1 message Jan 20, 2004 Kconfig

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 kconfig: Improve warnings related to select

Hi Andrew & Roman.

Use the official keyword 'select' when kconfig reports wrong usage. Be more specific when wrong usage is encountered.

Other warnings from kconfig could use same treatment, but kept this minimal for now.

Sam

===== scripts/kconfig/menu.c 1.11 vs edited =====

scripts/kconfig/menu.c +13 -4
@@ -275,10 +275,19 @@
 				break;
 			case P_SELECT:
 				sym2 = prop_get_symbol(prop);
-				if ((sym->type != S_BOOLEAN && sym->type != S_TRISTATE) ||
-				    (sym2->type != S_BOOLEAN && sym2->type != S_TRISTATE))
-					fprintf(stderr, "%s:%d:warning: enable is only allowed with boolean and tristate symbols\n",
-						prop->file->name, prop->lineno);
+				if (sym->type != S_BOOLEAN && sym->type != S_TRISTATE)
+					fprintf(stderr, "%s:%d:warning: config symbol '%s' uses select, "
+					                "but is not boolean or tristate\n",
+						prop->file->name, prop->lineno, sym->name);
+				else if (sym2->type == S_UNKNOWN)
+					fprintf(stderr, "%s:%d:warning: 'select' used by config symbol '%s' "
+							"refer to undefined symbol '%s'\n",
+						prop->file->name, prop->lineno, sym->name, sym2->name);
+				else if (sym2->type != S_BOOLEAN && sym2->type != S_TRISTATE)
+					fprintf(stderr, "%s:%d:warning: '%s' has wrong type."
+					                " 'select' only accept arguments of "
+					                "boolean and tristate type.\n",
+						prop->file->name, prop->lineno, sym2->name);
 				break;
 			case P_RANGE:
 				if (sym->type != S_INT && sym->type != S_HEX)