From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1M1VYx-0008KB-CF for qemu-devel@nongnu.org; Tue, 05 May 2009 21:04:43 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1M1VYs-0008J4-E2 for qemu-devel@nongnu.org; Tue, 05 May 2009 21:04:42 -0400 Received: from [199.232.76.173] (port=40372 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1M1VYs-0008J1-7d for qemu-devel@nongnu.org; Tue, 05 May 2009 21:04:38 -0400 Received: from mx20.gnu.org ([199.232.41.8]:22168) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1M1VYr-000100-It for qemu-devel@nongnu.org; Tue, 05 May 2009 21:04:37 -0400 Received: from mail.codesourcery.com ([65.74.133.4]) by mx20.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1M1VYq-0003iA-JA for qemu-devel@nongnu.org; Tue, 05 May 2009 21:04:36 -0400 From: Paul Brook Subject: Re: [Qemu-devel] [RFC] New device API Date: Wed, 6 May 2009 02:04:31 +0100 References: <200905051231.09759.paul@codesourcery.com> <4A0083F5.7050606@codemonkey.ws> <200905060152.02351.paul@codesourcery.com> In-Reply-To: <200905060152.02351.paul@codesourcery.com> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200905060204.32068.paul@codesourcery.com> List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org On Wednesday 06 May 2009, Paul Brook wrote: > > > The attached patch is my attempt at a new internal API for device > > > creation in qemu. > > > > Instead of recreating constructors, I think we should just use GCC's > > constructor attribute. This gives us ordering which will be important > > when dealing with buses. > > The reason I'm not using constructors is because you have to workaround > ordering issues. All constructors are run before main(), so there's a very > limited amount they can actually do, and constructor priorities are not > available on all hosts. Oh, the other thing is that constructors don't work when you put objects in a static library. You need am explicit dependency to pull in objects. Paul