On 30/05/2018 07:50, Philippe Mathieu-Daudé wrote: >>> No, not all :/ >>> I started with "(cpu_loop_|tlb_|tb_)" then kept brutebuilding until no >>> more errors appear. In 2 more steps I added "cpu_address_space_init|" >>> then "|GETPC|singlestep|TranslationBlock". Quick and dirty enough for my >>> goal than trying to build a regex to explode function/struct names from >>> headers. This is a clever way to do it for long term command reuse taken >>> from commit messages... >> Brutebuilding isn't a good way to find unused includes, some other header >> might pull in an include you are trying to remove for its own purposes. >> If you want to try brutebuilding you must also verify that's >> not the case - e.g. look at the dependency file generated. > Hmm you mean the .d files in the build dir?
You can also check which include files include this one. In this case you can see that brute-building was more or less enough: $ git grep -l exec-all -- '*.h' accel/tcg/translate-all.h include/exec/tb-lookup.h include/exec/translator.h linux-user/qemu.h target/ppc/helper_regs.h Leaving aside linux-user/qemu.h, let's check which files include one of those headers, but they do not include exec/exec-all.h: $ git grep -L exec-all \ $(git grep -lFf <(git grep -l exec-all -- '*.h' | \ grep -v qemu.h | sed 's,.*/,,')) linux-user/mmap.c target/arm/translate.h target/ppc/int_helper.c trace/control-target.c I'll send some patches shortly to fix up what's left. Paolo