From owner-freebsd-current@FreeBSD.ORG Tue Nov 12 16:38:28 2013 Return-Path: Delivered-To: freebsd-current@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 479539AC for ; Tue, 12 Nov 2013 16:38:28 +0000 (UTC) Received: from theravensnest.org (theraven.freebsd.your.org [216.14.102.27]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 19BEA2AA8 for ; Tue, 12 Nov 2013 16:38:27 +0000 (UTC) Received: from c120.sec.cl.cam.ac.uk (c120.sec.cl.cam.ac.uk [128.232.18.120]) (authenticated bits=0) by theravensnest.org (8.14.5/8.14.5) with ESMTP id rACGcIrN009867 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NO); Tue, 12 Nov 2013 16:38:19 GMT (envelope-from theraven@FreeBSD.org) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 6.5 \(1508\)) Subject: Re: Are clang++ and libc++ compatible? From: David Chisnall In-Reply-To: <20131112163219.GA2834@troutmask.apl.washington.edu> Date: Tue, 12 Nov 2013 16:38:17 +0000 Content-Transfer-Encoding: quoted-printable Message-Id: <77CB2B92-216A-4C80-B033-7E582B5F0DFC@FreeBSD.org> References: <20131112163219.GA2834@troutmask.apl.washington.edu> To: Steve Kargl X-Mailer: Apple Mail (2.1508) Cc: freebsd-current@FreeBSD.org X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.16 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: Tue, 12 Nov 2013 16:38:28 -0000 On 12 Nov 2013, at 16:32, Steve Kargl = wrote: > Trying to build news/pan with clang++ dies with >=20 > gmake[3]: Entering directory = `/usr/ports/news/pan/work/pan-0.139/pan/general' > CXX file-util.o > In file included from file-util.cc:38: > In file included from ./log.h:26: > /usr/include/c++/v1/deque:907:49: error: invalid application of = 'sizeof' to an > incomplete type 'value_type' (aka 'pan::Log::Entry') > static const difference_type __block_size =3D sizeof(value_type) < = 256 ? 4... >=20 > Anyone know how to fix either clang++ or libc++? The error here does not appear to be in clang or libc++, but in the use = by the thing that you are compiling. This is saying that you have tried to create a = std::dequeu, but pan::Log::Entry is a forward = declaration and so the template instantiation fails. The fix is to move the definition of pan::Log::Entry such that it is = visible at the time of its use. David