From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1M7Wwy-0004o8-1i for qemu-devel@nongnu.org; Fri, 22 May 2009 11:46:24 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1M7Wwt-0004l0-Dv for qemu-devel@nongnu.org; Fri, 22 May 2009 11:46:23 -0400 Received: from [199.232.76.173] (port=52551 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1M7Wwt-0004ks-8q for qemu-devel@nongnu.org; Fri, 22 May 2009 11:46:19 -0400 Received: from mail-bw0-f175.google.com ([209.85.218.175]:63211) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1M7Wws-0007s7-Qd for qemu-devel@nongnu.org; Fri, 22 May 2009 11:46:19 -0400 Received: by bwz23 with SMTP id 23so1588591bwz.34 for ; Fri, 22 May 2009 08:46:17 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: <200905212332.20605.paul@codesourcery.com> References: <200905211555.n4LFtklw030900@d01av03.pok.ibm.com> <4A158541.8000209@web.de> <200905212332.20605.paul@codesourcery.com> Date: Fri, 22 May 2009 18:46:17 +0300 Message-ID: Subject: Re: [Qemu-devel] Re: [COMMIT e20a8df] Compile fdc, escc and SCSI controllers only once From: Blue Swirl Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Paul Brook Cc: Jan Kiszka , qemu-devel@nongnu.org On 5/22/09, Paul Brook wrote: > > > > This breaks archs that do not come with DMA_* implementations. At least > > > ARM no longer links. > > > > > > LINK arm-softmmu/qemu-system-arm > > > ../libhw64/libqemuhw64.a(fdc.o): In function `fdctrl_stop_transfer': > > > /data/qemu/hw/fdc.c:1086: undefined reference to `DMA_release_DREQ' > > > [...] > > > > Yes, I forgot about the whole-archive hack. I've disabled it for > > hwlib, so now arm-softmmu links. > > > This is completely wrong. The reason we use whole-archive is so that device > constructors are run. Most machines are broken after your change. Did you test? I don't see any breakage, qemu-img --help shows all block formats and qemu-system-arm -M '?' lists all machines. Because whole-archive is still used for libqemu_common.a, all devices in that archive are linked in (whether they are used or not!), so the constructors work.