From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:53207) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1axOqz-0006a4-Qj for qemu-devel@nongnu.org; Mon, 02 May 2016 21:10:28 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1axOqo-0001LT-0q for qemu-devel@nongnu.org; Mon, 02 May 2016 21:10:16 -0400 MIME-Version: 1.0 In-Reply-To: <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> <20160503010435.GT1421@ad.usersys.redhat.com> From: Christopher Friedt Date: Mon, 2 May 2016 21:08:59 -0400 Message-ID: Content-Type: text/plain; charset=UTF-8 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: Fam Zheng Cc: Peter Maydell , mst@redhat.com, QEMU Developers , qemu-trivial@nongnu.org On Mon, May 2, 2016 at 9:04 PM, Fam Zheng wrote: > 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. Good suggestion. I missed that entirely. >> + $(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. Apple's libtool should be installed with their command line tools, at least as far back as Snow Leopard.