From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:37766) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aOTim-0002Ch-Kc for qemu-devel@nongnu.org; Wed, 27 Jan 2016 12:17:33 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aOTij-0000Js-A6 for qemu-devel@nongnu.org; Wed, 27 Jan 2016 12:17:32 -0500 Received: from mail-qg0-x236.google.com ([2607:f8b0:400d:c04::236]:35705) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aOTii-0000It-T7 for qemu-devel@nongnu.org; Wed, 27 Jan 2016 12:17:29 -0500 Received: by mail-qg0-x236.google.com with SMTP id o11so12195188qge.2 for ; Wed, 27 Jan 2016 09:17:28 -0800 (PST) Date: Wed, 27 Jan 2016 12:17:27 -0500 From: Kevin O'Connor Message-ID: <20160127171727.GA7850@morn.lan> References: <1453727868-11147-1-git-send-email-markmb@redhat.com> <20160126111154.GA14533@stefanha-x1.localdomain> <20160126122004.0798fd71@markmb_rh> <1453807572.24277.22.camel@redhat.com> <20160127164329.GO26163@stefanha-x1.localdomain> <20160127175728.41b256a4@markmb_rh> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20160127175728.41b256a4@markmb_rh> Subject: Re: [Qemu-devel] [PATCH v3] Add optionrom compatible with fw_cfg DMA version List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Marc =?iso-8859-1?Q?Mar=ED?= Cc: "Gabriel L. Somlo" , qemu-devel@nongnu.org, Gerd Hoffmann , Stefan Hajnoczi , Paolo Bonzini , Laszlo On Wed, Jan 27, 2016 at 05:57:28PM +0100, Marc Marí wrote: > On Wed, 27 Jan 2016 16:43:29 +0000 > Stefan Hajnoczi wrote: > > > On Tue, Jan 26, 2016 at 12:26:12PM +0100, Gerd Hoffmann wrote: > > > On Di, 2016-01-26 at 12:20 +0100, Marc Marí wrote: > > > > On Tue, 26 Jan 2016 11:11:54 +0000 > > > > Stefan Hajnoczi wrote: > > > > > > > > > On Mon, Jan 25, 2016 at 02:17:48PM +0100, Marc Marí wrote: > > > > > > +linuxboot_dma.img: linuxboot_dma.o > > > > > > + $(call quiet-command,$(LD) $(LDFLAGS_NOPIE) -m > > > > > > elf_i386 -Ttext 0 -e _start -s -o $@ $<," Building > > > > > > $(TARGET_DIR)$@") + %.img: %.o > > > > > > $(call quiet-command,$(LD) $(LDFLAGS_NOPIE) -Ttext 0 > > > > > > -e _start -s -o $@ $<," Building $(TARGET_DIR)$@") > > > > > > > > > > Why is -m elf_i386 necessary for linuxboot_dma.img but not for > > > > > the other *.img files? > > > > > > > > I cannot give a precise explanation. But if I don't force an > > > > output type, I get this error: > > > > > > > > Building optionrom/linuxboot_dma.img > > > > ld: i386 architecture of input file `linuxboot_dma.o' is > > > > incompatible with i386:x86-64 output > > > > > > Any chance the linker needs -m32 too? > > > > I wonder why this isn't a problem for the existing firmware code. Are > > we really building x86_64 ELF files for our firmware? > > Yes they are x86_64: > > pc-bios/optionrom/linuxboot.img: ELF 64-bit LSB executable, x86-64, > version 1 (SYSV), statically linked, stripped > > But as they are written directly in assembly, it does not give any > problem. Whereas when mixing C and ASM, it does give problems. Would it hurt anything to add "-m elf_i386" to the generic assembler rule and then use that for both targets? (Just to keep the makefile a little simpler.) -Kevin