From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1NSbUb-0004OM-Hd for qemu-devel@nongnu.org; Wed, 06 Jan 2010 14:24:29 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1NSbUY-0004Jn-22 for qemu-devel@nongnu.org; Wed, 06 Jan 2010 14:24:29 -0500 Received: from [199.232.76.173] (port=53628 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NSbUX-0004Ja-Lr for qemu-devel@nongnu.org; Wed, 06 Jan 2010 14:24:25 -0500 Received: from mail-pw0-f43.google.com ([209.85.160.43]:48774) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1NSbUX-0006bV-AP for qemu-devel@nongnu.org; Wed, 06 Jan 2010 14:24:25 -0500 Received: by pwj11 with SMTP id 11so12457852pwj.2 for ; Wed, 06 Jan 2010 11:24:24 -0800 (PST) MIME-Version: 1.0 In-Reply-To: References: <1262268274-1043-1-git-send-email-andreas.faerber@web.de> From: Blue Swirl Date: Wed, 6 Jan 2010 19:24:04 +0000 Message-ID: Subject: Re: [Qemu-devel] [PATCH v2] Drop --whole-archive and static libraries Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: =?UTF-8?Q?Andreas_F=C3=A4rber?= Cc: "Kirill A. Shutemov" , Paolo Bonzini , QEMU Developers , Palle Lyckegaard , Juan Quintela On Wed, Jan 6, 2010 at 6:51 PM, Andreas F=C3=A4rber wrote: > > Am 04.01.2010 um 21:47 schrieb Blue Swirl: > >> On Sun, Jan 3, 2010 at 12:31 PM, Blue Swirl wrote= : >>> >>> 2009/12/31 Andreas F=C3=A4rber : >>>> >>>> From: Andreas F=C3=A4rber >>>> >>>> Juan has contributed a cool Makefile infrastructure that enables us to >>>> drop >>>> static libraries completely: >>>> >>>> Move shared obj-y definitions to Makefile.objs, prefixed >>>> {common-,hw-,user-}, >>>> and link those object files directly into the executables. >>>> >>>> Replace HWLIB by HWDIR, specifying only the directory. >>>> >>>> Drop --whole-archive and ARLIBS in Makefiles and configure. >>>> >>>> Drop GENERATED_HEADERS dependency in rules.mak, since this rebuilds al= l >>>> common objects after generating a target-specific header; add dependen= cy >>>> rules to Makefile and Makefile.target instead. >>>> >>>> v2: >>>> - Don't try to include /config.mak for user emulators >>>> - Changes to user object paths ("Quickfix for libuser.a drop") were >>>> obsoleted >>>> =C2=A0by "user_only: compile everything with -fpie" (Kirill A. Shutemo= v) >>> >>> Breaks build: >>> =C2=A0CC =C2=A0 =C2=A0i386-softmmu/i386-dis.o >>> make[1]: *** No rule to make target `/loader.o', needed by `qemu'. =C2= =A0Stop. >> >> I found out that completely removing the object directory and >> recreating it from scratch helps. This sucks bisectability-wise, is >> there any way to avoid it? > > Sounds as if configure was not re-run and thus $(HWDIR) not set in > config-target.mak. No idea why, more likely a general issue. > Do you have a way to reproduce? What about `make clean` or `make distclea= n`? Strange, now that I try to reproduce it with a new directory, everything works. Also my normal compile directory does not show the problem anymore. Maybe there were some old files lying around. >> There is still one problem, tools need config-host.h but the >> dependencies are not correct: >> =C2=A0CC =C2=A0 =C2=A0qemu-nbd.o >> In file included from /src/qemu/qemu-nbd.c:19: >> /src/qemu/qemu-common.h:32:25: error: config-host.h: No such file or >> directory > > Fix coming up. Basically, $(GENERATED_HEADERS) were previously used on _a= ll_ > object files via rules.mak. That does not work when referencing objects f= rom > another Makefile, so the modelling needs to be done explicitly. OK. Since there have been no objections, I'd like to apply this soon.