void conf_parse(const char *name)
 {
-       struct symbol *sym;
-       int i;
+       struct menu *menu;
 
        autoconf_cmd = str_new();
 
        }
 
        menu_finalize(&rootmenu);
-       for_all_symbols(i, sym) {
-               if (sym_check_deps(sym))
+
+       menu = &rootmenu;
+       while (menu) {
+               if (menu->sym && sym_check_deps(menu->sym))
                        yynerrs++;
+
+               if (menu->list) {
+                       menu = menu->list;
+                       continue;
+               }
+
+               while (!menu->next && menu->parent)
+                       menu = menu->parent;
+
+               menu = menu->next;
        }
+
        if (yynerrs)
                exit(1);
        conf_set_changed(true);
 
-Kconfig:11:error: recursive dependency detected!
-Kconfig:11:    symbol B is selected by B
+Kconfig:5:error: recursive dependency detected!
+Kconfig:5:     symbol A depends on A
 For a resolution refer to Documentation/kbuild/kconfig-language.rst
 subsection "Kconfig recursive dependency limitations"
 
-Kconfig:5:error: recursive dependency detected!
-Kconfig:5:     symbol A depends on A
+Kconfig:11:error: recursive dependency detected!
+Kconfig:11:    symbol B is selected by B
 For a resolution refer to Documentation/kbuild/kconfig-language.rst
 subsection "Kconfig recursive dependency limitations"
 
 For a resolution refer to Documentation/kbuild/kconfig-language.rst
 subsection "Kconfig recursive dependency limitations"
 
-Kconfig:32:error: recursive dependency detected!
-Kconfig:32:    symbol D2 is selected by D1
+Kconfig:27:error: recursive dependency detected!
 Kconfig:27:    symbol D1 depends on D2
+Kconfig:32:    symbol D2 is selected by D1
 For a resolution refer to Documentation/kbuild/kconfig-language.rst
 subsection "Kconfig recursive dependency limitations"
 
 For a resolution refer to Documentation/kbuild/kconfig-language.rst
 subsection "Kconfig recursive dependency limitations"
 
-Kconfig:60:error: recursive dependency detected!
-Kconfig:60:    symbol G depends on G
+Kconfig:49:error: recursive dependency detected!
+Kconfig:49:    symbol F1 default value contains F2
+Kconfig:51:    symbol F2 depends on F1
 For a resolution refer to Documentation/kbuild/kconfig-language.rst
 subsection "Kconfig recursive dependency limitations"
 
-Kconfig:51:error: recursive dependency detected!
-Kconfig:51:    symbol F2 depends on F1
-Kconfig:49:    symbol F1 default value contains F2
+Kconfig:60:error: recursive dependency detected!
+Kconfig:60:    symbol G depends on G
 For a resolution refer to Documentation/kbuild/kconfig-language.rst
 subsection "Kconfig recursive dependency limitations"