From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:52276) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1axOlw-0000n2-2f for qemu-devel@nongnu.org; Mon, 02 May 2016 21:05:14 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1axOld-00008X-FY for qemu-devel@nongnu.org; Mon, 02 May 2016 21:05:02 -0400 Date: Tue, 3 May 2016 09:04:35 +0800 From: Fam Zheng Message-ID: <20160503010435.GT1421@ad.usersys.redhat.com> References: <1462236478-61645-1-git-send-email-chrisfriedt@gmail.com> <1462236478-61645-2-git-send-email-chrisfriedt@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1462236478-61645-2-git-send-email-chrisfriedt@gmail.com> Subject: Re: [Qemu-devel] [PATCH 1/2] Use libtool instead of ar to create static libraries on Darwin. List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Christopher Friedt , Peter Maydell Cc: mst@redhat.com, qemu-devel@nongnu.org, qemu-trivial@nongnu.org Cc'ing Peter Maydell, who must have better ideas than me on building on Mac. On Mon, 05/02 20:47, Christopher Friedt wrote: > > Currently, at least on Mac OS X 10.11.4 (El Capitan), Qemu fails to build for a few reasons. > > One of those reasons is that Apple's ld (at least ld64) does not properly process archive files created with ar (even Apple's ar). > > After some RTFM'ing, I came upon this tidbit, which is unfortunate. Luckily, autotools packages are not broken. > > "Libtool with -static is intended to replace ar(5) and ranlib." > http://www.manpages.info/macosx/libtool.1.html > > In any case, this change takes Apple's recommendations into account and allows Qemu to build on Mac OS X El Capitan. > > Signed-off-by: Christopher Friedt > --- > rules.mak | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/rules.mak b/rules.mak > index d1ff311..44421af 100644 > --- a/rules.mak > +++ b/rules.mak > @@ -105,7 +105,11 @@ modules: > $(call LINK,$(filter %.o %.a %.mo, $^)) > > %.a: > +ifeq ($(shell uname),Darwin) I think you can use "ifdef CONFIG_DARWIN" here. > + $(call quiet-command,rm -f $@ && libtool -static -o $@ $^," libtool $(TARGET_DIR)$@") Is libtool always available on Mac OS X? If not, we may need to add the detection to ./configure. Fam > +else > $(call quiet-command,rm -f $@ && $(AR) rcs $@ $^," AR $(TARGET_DIR)$@") > +endif > > quiet-command = $(if $(V),$1,$(if $(2),@echo $2 && $1, @$1)) >