From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Mzn8O-0004ZZ-UA for qemu-devel@nongnu.org; Mon, 19 Oct 2009 03:58:28 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1Mzn8K-0004X6-ID for qemu-devel@nongnu.org; Mon, 19 Oct 2009 03:58:28 -0400 Received: from [199.232.76.173] (port=32943 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Mzn8K-0004Wx-BZ for qemu-devel@nongnu.org; Mon, 19 Oct 2009 03:58:24 -0400 Received: from mx1.redhat.com ([209.132.183.28]:49056) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1Mzn8J-0006ma-Q1 for qemu-devel@nongnu.org; Mon, 19 Oct 2009 03:58:24 -0400 Message-ID: <4ADC1C1A.8060208@redhat.com> Date: Mon, 19 Oct 2009 09:58:18 +0200 From: Gerd Hoffmann MIME-Version: 1.0 References: <1255701851-11147-1-git-send-email-kraxel@redhat.com> <1255701851-11147-3-git-send-email-kraxel@redhat.com> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: [Qemu-devel] Re: [PATCH 2/4] rom loader: make vga+rom loading target specific List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Juan Quintela Cc: qemu-devel@nongnu.org On 10/17/09 11:23, Juan Quintela wrote: >> +ifdef TARGET_I386 >> +obj-y += loader-i386.o >> +else >> +obj-y += loader-dummy.o >> +endif >> + > > This is wrong (tm). > a- TARGET_I386 on Makefiles is only defined for 32bits, not for 64bits > (don't blame me, I just did a direct conversion of what was there). Oh. Joy of inconsistency ... > b- TARGET_* is only defined in {i386,x86_64,...}-{softmmu,linux-user,...} > i.e. not a chance to be read at hw/Makefile. > > > > More complex that I thought: > - if you only want to compile it once, you need to compile it on > Makefile, not Makefile.hw: no cookie, loader.h uses target_phys_addr. Exactly. Due to target_phys_addr it must go to Makefile.hw, so I get it compiled once for 32bit targphys and once for 64bit targphys. > - ok, move it to Makefile.hw -> your option didn't work (it compiles) > because you allways compile loader-dummy.o, TARGET_I386 is not defined > in Makefile.hw (it is hardware independent drivers after all :) Oops. > - More imagination: Use only loader-i386.c, and #ifdef TARGET_I386 > to an empty macro/real thing -> no cookie either, TARGET_I386 is > poisoned in Makefile.hw (*) Thats why I don't want #ifdef. > - define CONFIG_LOADER_I386 for I386 and X86_64. No. This avoids the TARGET_I386 poisoned error, but does *not* fix the underlying problem. > I preffer very much to add the "dummy" cases in one ifdef in a header > file. No. Any user of rom_add_option() must be compiled per target then. Guess easierst way is the v1 patch then: Have target-specific code in loader-target.c and use #ifdefs there ... cheers, Gerd