From owner-freebsd-ports-bugs@FreeBSD.ORG Mon Jul 15 02:20:01 2013 Return-Path: Delivered-To: freebsd-ports-bugs@smarthost.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 6C218262 for ; Mon, 15 Jul 2013 02:20:01 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id 5DDF3F2F for ; Mon, 15 Jul 2013 02:20:01 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.7/8.14.7) with ESMTP id r6F2K1TZ065709 for ; Mon, 15 Jul 2013 02:20:01 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.7/8.14.7/Submit) id r6F2K1VN065708; Mon, 15 Jul 2013 02:20:01 GMT (envelope-from gnats) Date: Mon, 15 Jul 2013 02:20:01 GMT Message-Id: <201307150220.r6F2K1VN065708@freefall.freebsd.org> To: freebsd-ports-bugs@FreeBSD.org Cc: From: dt71@gmx.com Subject: Re: ports/180564: MPlayer compilation error with Clang (running out of registers) X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: dt71@gmx.com List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 15 Jul 2013 02:20:01 -0000 The following reply was made to PR ports/180564; it has been noted by GNATS. From: dt71@gmx.com To: bug-followup@FreeBSD.org Cc: Subject: Re: ports/180564: MPlayer compilation error with Clang (running out of registers) Date: Mon, 15 Jul 2013 04:10:14 +0200 This is a multi-part message in MIME format. --------------070204050205040502000108 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Based on a discussion on #llvm at irc.oftc.net: - The assembly core of Clang is inherently different from that of GCC. One would have to fully reimplement the GCC assembly core to yield matching behaviors in all cases. This is obviously not going to happen. - The -fomit-frame-pointer option would free up 1 needed register. - Someone said that the inline assembly version of the code should be just dropped, because the C version is faster. The attached patch simply cancels the attempted use of 7 registers if the compiler is Clang. --------------070204050205040502000108 Content-Type: text/x-patch; name="mplayer.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="mplayer.patch" --- ffmpeg/libavcodec/x86/ac3dsp_init.c 2013-07-03 21:34:20.000000000 +0200 +++ ffmpeg/libavcodec/x86/ac3dsp_init.c 2013-07-03 21:34:45.000000000 +0200 @@ -51,7 +51,7 @@ extern void ff_ac3_extract_exponents_sse2 (uint8_t *exp, int32_t *coef, int nb_coefs); extern void ff_ac3_extract_exponents_ssse3(uint8_t *exp, int32_t *coef, int nb_coefs); -#if ARCH_X86_32 && defined(__INTEL_COMPILER) +#if ARCH_X86_32 && (defined(__INTEL_COMPILER) || defined(__clang__)) # undef HAVE_7REGS # define HAVE_7REGS 0 #endif --------------070204050205040502000108--