From owner-freebsd-current@FreeBSD.ORG Sun Jan 6 16:39:45 2013 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 1DAB6BF2 for ; Sun, 6 Jan 2013 16:39:45 +0000 (UTC) (envelope-from nwhitehorn@freebsd.org) Received: from agogare.doit.wisc.edu (agogare.doit.wisc.edu [144.92.197.211]) by mx1.freebsd.org (Postfix) with ESMTP id E926389C for ; Sun, 6 Jan 2013 16:39:44 +0000 (UTC) MIME-version: 1.0 Content-transfer-encoding: 7BIT Content-type: text/plain; CHARSET=US-ASCII Received: from avs-daemon.smtpauth2.wiscmail.wisc.edu by smtpauth2.wiscmail.wisc.edu (Sun Java(tm) System Messaging Server 7u2-7.05 32bit (built Jul 30 2009)) id <0MG700800QA2CB00@smtpauth2.wiscmail.wisc.edu> for freebsd-current@freebsd.org; Sun, 06 Jan 2013 10:39:38 -0600 (CST) Received: from wanderer.tachypleus.net (dhcp107-17-54-205.hil-sfofhhh.sfo.wayport.net [107.17.54.205]) by smtpauth2.wiscmail.wisc.edu (Sun Java(tm) System Messaging Server 7u2-7.05 32bit (built Jul 30 2009)) with ESMTPSA id <0MG70057NQA0R710@smtpauth2.wiscmail.wisc.edu> for freebsd-current@freebsd.org; Sun, 06 Jan 2013 10:39:37 -0600 (CST) Date: Sun, 06 Jan 2013 11:39:35 -0500 From: Nathan Whitehorn Subject: Re: clang 3.2 RC2 miscompiles libgcc? In-reply-to: <50E99848.6090209@freebsd.org> Sender: whitehorn@wisc.edu To: freebsd-current@freebsd.org Message-id: <50E9A8C7.40600@freebsd.org> X-Spam-Report: AuthenticatedSender=yes, SenderIP=107.17.54.205 X-Spam-PmxInfo: Server=avs-16, Version=5.6.1.2065439, Antispam-Engine: 2.7.2.376379, Antispam-Data: 2013.1.6.163017, SenderIP=107.17.54.205 References: <20121227150724.GA1431@mole.fafoe.narf.at> <50DC65F5.6060004@freebsd.org> <50E0BD66.4070609@FreeBSD.org> <20130102135950.GA1464@mole.fafoe.narf.at> <20130104154940.GD1430@mole.fafoe.narf.at> <20130106141708.GA1418@mole.fafoe.narf.at> <50E9916F.3040500@FreeBSD.org> <50E99848.6090209@freebsd.org> User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:17.0) Gecko/17.0 Thunderbird/17.0 X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 Jan 2013 16:39:45 -0000 On 01/06/13 10:29, Nathan Whitehorn wrote: > On 01/06/13 09:59, Dimitry Andric wrote: >> On 2013-01-06 15:17, Stefan Farfeleder wrote: >>> On Fri, Jan 04, 2013 at 04:49:41PM +0100, Stefan Farfeleder wrote: >>>> Here's a minimal test case that reproduces the bug: >>> [...] >>> >>> Until someone fixes this bug, could we apply something like this as a >>> work-around? >>> >>> Stefan >>> >>> Index: gnu/lib/libgcc/Makefile >>> =================================================================== >>> --- gnu/lib/libgcc/Makefile (revision 245055) >>> +++ gnu/lib/libgcc/Makefile (working copy) >>> @@ -6,6 +6,8 @@ >>> SHLIB_NAME= libgcc_s.so.1 >>> SHLIBDIR?= /lib >>> >>> +CC= gcc >>> + >>> .include >> >> I think this is a bit overkill approach. We still don't know what the >> exact cause of the problem is, and this just papers over it. >> >> Also, ince the bug is only reproducible by compiling the testcase with >> g++, could you not compile your crashing programs with clang instead, >> for now? :-) >> > > I would very much support this patch. Whatever is going wrong is a > critical problem -- although his testcase requires g++, I have lots of > code that also crashes when built with clang. The fact that *any* code > built with *any* compiler crashes when used with clang-built libgcc is > an error. This is quite serious and breaks a *lot* of C++ code. If it > can't be fixed now, papering it over is required. > -Nathan For whatever it's worth, I verified that this is the same bug I was seeing earlier: only unwind-dw2.c is being miscompiled. The preprocessed versions of this file are identical with both gcc and clang and the problem occurs at all optimization levels with it is built with clang. I tried replacing as many of the __builtin functions as a could with thunks to the gcc versions, with no positive result. The ones I could not replace are __builtin_return_address, __builtin_dwarf_cfa, and __builtin_eh_return. -Nathan