From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:54803) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fNu0R-0004cx-SP for qemu-devel@nongnu.org; Wed, 30 May 2018 01:50:44 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fNu0Q-0007U4-Ud for qemu-devel@nongnu.org; Wed, 30 May 2018 01:50:43 -0400 MIME-Version: 1.0 Sender: philippe.mathieu.daude@gmail.com In-Reply-To: <20180530074026-mutt-send-email-mst@kernel.org> References: <20180528232719.4721-1-f4bug@amsat.org> <20180528232719.4721-10-f4bug@amsat.org> <20180529134053.1ea9f46d.cohuck@redhat.com> <11289f38-6d0f-74c9-1719-83b2a3ed2d97@amsat.org> <20180530074026-mutt-send-email-mst@kernel.org> From: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= Date: Wed, 30 May 2018 02:50:41 -0300 Message-ID: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [PATCH v4 09/21] target: Do not include "exec/exec-all.h" if it is not necessary List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "Michael S. Tsirkin" Cc: Cornelia Huck , Thomas Huth , "qemu-devel@nongnu.org Developers" , QEMU Trivial , Paolo Bonzini , Richard Henderson , Eduardo Habkost , Marcel Apfelbaum , Peter Maydell , "Edgar E. Iglesias" , Michael Walle , Laurent Vivier , Anthony Green , Stafford Horne , David Gibson , Alexander Graf , David Hildenbrand , Max Filippov , "open list:ARM" , "open list:PowerPC" , "open list:S390" On Wed, May 30, 2018 at 1:42 AM, Michael S. Tsirkin wrote: > On Wed, May 30, 2018 at 12:12:55AM -0300, Philippe Mathieu-Daud=C3=A9 wro= te: >> Hi Cornelia, >> >> On 05/29/2018 08:40 AM, Cornelia Huck wrote: >> > On Mon, 28 May 2018 20:27:07 -0300 >> > Philippe Mathieu-Daud=C3=A9 wrote: >> > >> >> Code change produced with: >> >> $ git grep '#include "exec/exec-all.h"' | \ >> >> cut -d: -f-1 | \ >> >> xargs egrep -L "(cpu_address_space_init|cpu_loop_|tlb_|tb_|GETP= C|singlestep|TranslationBlock)" | \ >> > >> > Hm, does this expression catch all files that need to include >> > exec-all.h? The resulting patch seems fine, though. >> >> 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? i.e. $ find lm32-softmmu -name \*.d -exec fgrep -L exec-all.h {} \; | sed -e 's/.*-softmmu\/\(.*\)d$/\1c/' dump.c numa.c tcg/tcg-common.c tcg/optimize.c tcg/tcg-op-gvec.c tcg/tcg-op-vec.c accel/tcg/tcg-runtime-gvec.c accel/tcg/tcg-all.c accel/accel.c accel/stubs/whpx-stub.c accel/stubs/hvf-stub.c accel/stubs/kvm-stub.c accel/stubs/hax-stub.c hw/lm32/milkymist.c hw/lm32/lm32_boards.c hw/core/generic-loader.c ... Then look why each .c included it? > >> >> xargs sed -i.bak '/#include "exec\/exec-all.h"/d' >> >> >> >> Signed-off-by: Philippe Mathieu-Daud=C3=A9