From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:33389) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TUz2V-000443-9P for qemu-devel@nongnu.org; Sun, 04 Nov 2012 07:10:56 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TUz2U-0002Xj-7D for qemu-devel@nongnu.org; Sun, 04 Nov 2012 07:10:55 -0500 Received: from v220110690675601.yourvserver.net ([78.47.199.172]:51343) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TUz2U-0002XP-0f for qemu-devel@nongnu.org; Sun, 04 Nov 2012 07:10:54 -0500 Message-ID: <50965B49.4090900@weilnetz.de> Date: Sun, 04 Nov 2012 13:10:49 +0100 From: Stefan Weil MIME-Version: 1.0 References: <2927d80bed65c6e77cab02c82eaf92e50c454b68.1351968408.git.blauwirbel@gmail.com> In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH] Fix out-of-tree and cross compile builds for pixman List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Blue Swirl Cc: Peter Maydell , qemu-devel@nongnu.org Am 03.11.2012 21:15, schrieb Blue Swirl: > On Sat, Nov 3, 2012 at 7:02 PM, Peter Maydell wrote: >> On 3 November 2012 19:47, Blue Swirl wrote: >>> --- a/Makefile >>> +++ b/Makefile >>> @@ -122,7 +122,7 @@ subdir-pixman: pixman/Makefile >>> $(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) -C pixman V="$(V)" all,) >>> >>> pixman/Makefile: $(SRC_PATH)/pixman/configure >>> - (cd pixman; $(SRC_PATH)/pixman/configure --disable-shared --enable-static) >>> + (cd pixman; CC=$(CC) LD=$(LD) AR=$(AR) NM=$(NM) RANLIB=$(RANLIB) $(SRC_PATH)/pixman/configure --disable-shared --enable-static) >> Not tested, but aren't there quoting issues here if you're >> building with --cc='ccache gcc' ? > Yes. Also configure fails because the variables are not expanded and > directory pixman/pixman does not exist. Funny how it worked earlier. I struggle with the same issue, and there are more problems caused by the internal pixman code. The dependencies are wrong because pixman is built too late: $(TOOLS) also depends on it. It is not trivial to model them correctly. IMHO it would be better to build the internal pixman immediately when QEMU's configure is called. Then QEMU's make can always rely on an existing pixman. The internal pixman code is also too old for cross compilations with MinGW-w64. It already fails when running configure. Newer versions of pixman compile after a trivial modification which is needed to avoid redefined symbols: diff --git a/pixman/pixman-mmx.c b/pixman/pixman-mmx.c index 1a014fd..723c245 100644 --- a/pixman/pixman-mmx.c +++ b/pixman/pixman-mmx.c @@ -61,7 +61,7 @@ _mm_empty (void) #endif #ifdef USE_X86_MMX -# if (defined(__SUNPRO_C) || defined(_MSC_VER)) +# if (defined(__SUNPRO_C) || defined(_MSC_VER) || defined(__WIN64)) # include # else /* We have to compile with -msse to use xmmintrin.h, but that causes SSE More changes are needed to avoid typical MinGW-w64 compiler warnings (pointer to int conversions without uintptr_t). Up to now, I did not test the resulting code, so maybe there will be more surprises. Regards Stefan