From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:57755) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Twqra-0001Xh-CM for qemu-devel@nongnu.org; Sun, 20 Jan 2013 04:06:52 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TwqrX-0000Ai-N9 for qemu-devel@nongnu.org; Sun, 20 Jan 2013 04:06:50 -0500 Received: from mail-ee0-f48.google.com ([74.125.83.48]:36676) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TwqrX-0000Ae-Fn for qemu-devel@nongnu.org; Sun, 20 Jan 2013 04:06:47 -0500 Received: by mail-ee0-f48.google.com with SMTP id t10so2429803eei.35 for ; Sun, 20 Jan 2013 01:06:46 -0800 (PST) Sender: Paolo Bonzini Message-ID: <50FBB3A1.6060709@redhat.com> Date: Sun, 20 Jan 2013 10:06:41 +0100 From: Paolo Bonzini MIME-Version: 1.0 References: <1358590008-1681-1-git-send-email-pbonzini@redhat.com> <50FAE1E3.6010309@suse.de> <50FB18D8.7010805@redhat.com> <50FB2AAB.2060805@suse.de> In-Reply-To: <50FB2AAB.2060805@suse.de> Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 8bit Subject: Re: [Qemu-devel] [PATCH for 1.4 0/4] Simplify Makefile.objs some more List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: =?ISO-8859-15?Q?Andreas_F=E4rber?= Cc: blauwirbel@gmail.com, qemu-devel@nongnu.org, Anthony Liguori , Eduardo Habkost Il 20/01/2013 00:22, Andreas Färber ha scritto: > Am 19.01.2013 23:06, schrieb Paolo Bonzini: >> Il 19/01/2013 19:11, Andreas Färber ha scritto: >>>>> The patches are mostly mechanical substitutions, and there is no >>>>> user-visible change---neither in total build time, nor in the files that >>>>> are linked into the executables. >>> Without having tested this yet I want to remind that it is necessary for >>> qom/cpu.c to be built twice >> >> Hmm, it's not anymore actually (since libuser was removed). It hasn't >> been built twice for a month and apparently nothing broke. > > I surely didn't ack that. At the time I did the move, there was no conditional CPUState field (commit 8e98e2e80b92e08e79e27a0c20a172906cfa12d2). The only difference between the user and softmmu qom/cpu.c was that the user version ended up in libuser. ISTR I asked around about libuser, and the conclusion was that it was only needed for --enable-user-pie. > Have you actually tested linux-user to verify > it works? It might lead to unexpected CPUState field accesses. As I said, at the time I did the move there was no difference between the two. Now, I am indeed quite surprised that it works, but yes---it does, at least trivial /bin/ls. > You are judging based on master. I have some more code movements queued > (qom-cpu-8) and I believe it was Anthony who insisted on suppressing > those unneeded user-only fields even if they were unconditional in > CPU_COMMON before. > > qom/cpu.c is not intended to remain so small forever - any cpu_* code > that does not depend on CPUArchState can find a new home there. > cpu_interrupt() is being moved to qom/cpu.h and cpu_reset_interrupt() to > qom/cpu.c for instance. And I'm working on refactoring CPU VMState, that > either requires #ifdef'ery or lots of new stubs beyond what Eduardo added. You can place those in a qom/cpu-softmmu.c. What I care about is having an understandable build system. At some point we had 12 recursive -obj-y variables and a few other non-recursive ones. The interactions and inclusions were completely impossible to understand. Paolo