From owner-freebsd-toolchain@freebsd.org Sat Feb 20 15:09:21 2016 Return-Path: Delivered-To: freebsd-toolchain@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 75204AAFABF for ; Sat, 20 Feb 2016 15:09:21 +0000 (UTC) (envelope-from wjw@digiware.nl) Received: from smtp.digiware.nl (smtp.digiware.nl [31.223.170.169]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 0805DF15 for ; Sat, 20 Feb 2016 15:09:20 +0000 (UTC) (envelope-from wjw@digiware.nl) Received: from rack1.digiware.nl (unknown [127.0.0.1]) by smtp.digiware.nl (Postfix) with ESMTP id A6FF815340A for ; Sat, 20 Feb 2016 16:09:17 +0100 (CET) X-Virus-Scanned: amavisd-new at digiware.nl Received: from smtp.digiware.nl ([127.0.0.1]) by rack1.digiware.nl (rack1.digiware.nl [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id lAWUm5MkXkL6; Sat, 20 Feb 2016 16:09:06 +0100 (CET) Received: from [192.168.10.10] (asus [192.168.10.10]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.digiware.nl (Postfix) with ESMTPSA id 6DF9E153413 for ; Sat, 20 Feb 2016 16:09:06 +0100 (CET) To: FreeBSD Toolchain From: Willem Jan Withagen Subject: Ceph compilation on inclusion of /usr/include/c++/v1/deque X-Enigmail-Draft-Status: N1110 Message-ID: <56C88191.7030801@digiware.nl> Date: Sat, 20 Feb 2016 16:09:05 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-BeenThere: freebsd-toolchain@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Maintenance of FreeBSD's integrated toolchain List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 20 Feb 2016 15:09:21 -0000 I'm trying to build a port of Ceph for FreeBSD, which is sort of trying to shoot at a tank with a watergun.... :) There are 2 things to porting burdens: Linux <> FreeBSD GCC <> Clang So I'm not sure whether to error below is due a GCC-ism that is not suppoted by the 3.7.1 Clang we are running on CURRENT. I you want to reproduce it is rather labourious, but not all that complex: git clone https://github.com/wjwithagen/ceph.git cd ceph git checkout wip-wjw-freebsd-tests ./do_freebsd.sh And wait for the error to appear. --WjW libtool: compile: clang++ -DHAVE_CONFIG_H -I. -D__CEPH__ -D_FILE_OFFSET_BITS=64 -D_THREAD_SAFE -D__STDC_FORMAT_MACROS -D_GNU_SOURCE -DCEPH_LIBDIR=\"/usr/local/lib\" -DCEPH_PKGLIBDIR=\"/usr/local/lib/ceph\" -DGTEST_USE_OWN_TR1_TUPLE=0 -D_REENTRANT -Woverloaded-virtual -fPIC -I./xxHash -Wall -Wtype-limits -Wignored-qualifiers -Winit-self -Wpointer-arith -Werror=format-security -fno-strict-aliasing -fsigned-char -ftemplate-depth-1024 -Wnon-virtual-dtor -Wno-invalid-offsetof -g -DGTEST_USE_OWN_TR1_TUPLE=1 -I/usr/local/include -Wno-unused-local-typedef -Wno-mismatched-tags -Wno-macro-redefined -Wno-unused-function -Wno-unused-label -Wno-undefined-bool-conversion -Wno-unused-private-field -Wno-unused-local-typedef -Wno-uninitialized -Wno-gnu-designator -Wno-inconsistent-missing-override -Wno-deprecated-declarations -std=gnu++11 -MT rgw/librgw_la-rgw_basic_types.lo -MD -MP -MF rgw/.deps/librgw_la-rgw_basic_types.Tpo -c rgw/rgw_basic_types.cc -o rgw/librgw_la-rgw_basic_types.o >/dev/null 2>&1 In file included from rgw/rgw_client_io.cc:8: In file included from rgw/rgw_client_io.h:13: In file included from rgw/rgw_common.h:37: In file included from rgw/rgw_website.h:18: rgw/rgw_xml.h:168:12: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] while (o = iter.get_next()) { ~~^~~~~~~~~~~~~~~~~ rgw/rgw_xml.h:168:12: note: place parentheses around the assignment to silence this warning while (o = iter.get_next()) { ^ ( ) rgw/rgw_xml.h:168:12: note: use '==' to turn this assignment into an equality comparison while (o = iter.get_next()) { ^ == In file included from rgw/rgw_cache.cc:4: In file included from rgw/rgw_cache.h:7: In file included from rgw/rgw_rados.h:11: In file included from rgw/rgw_common.h:37: In file included from rgw/rgw_website.h:18: rgw/rgw_xml.h:168:12: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] while (o = iter.get_next()) { ~~^~~~~~~~~~~~~~~~~ rgw/rgw_xml.h:168:12: note: place parentheses around the assignment to silence this warning while (o = iter.get_next()) { ^ ( ) rgw/rgw_xml.h:168:12: note: use '==' to turn this assignment into an equality comparison while (o = iter.get_next()) { ^ == In file included from rgw/rgw_cr_rados.cc:1: In file included from rgw/rgw_rados.h:11: In file included from rgw/rgw_common.h:37: In file included from rgw/rgw_website.h:18: rgw/rgw_xml.h:168:12: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] while (o = iter.get_next()) { ~~^~~~~~~~~~~~~~~~~ rgw/rgw_xml.h:168:12: note: place parentheses around the assignment to silence this warning while (o = iter.get_next()) { ^ ( ) rgw/rgw_xml.h:168:12: note: use '==' to turn this assignment into an equality comparison while (o = iter.get_next()) { ^ == In file included from rgw/rgw_tools.cc:11: In file included from rgw/rgw_common.h:37: In file included from rgw/rgw_website.h:18: rgw/rgw_xml.h:168:12: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] while (o = iter.get_next()) { ~~^~~~~~~~~~~~~~~~~ rgw/rgw_xml.h:168:12: note: place parentheses around the assignment to silence this warning while (o = iter.get_next()) { ^ ( ) rgw/rgw_xml.h:168:12: note: use '==' to turn this assignment into an equality comparison while (o = iter.get_next()) { ^ == In file included from rgw/rgw_bucket.cc:11: In file included from rgw/rgw_rados.h:11: In file included from rgw/rgw_common.h:37: In file included from rgw/rgw_website.h:18: rgw/rgw_xml.h:168:12: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] while (o = iter.get_next()) { ~~^~~~~~~~~~~~~~~~~ rgw/rgw_xml.h:168:12: note: place parentheses around the assignment to silence this warning while (o = iter.get_next()) { ^ ( ) rgw/rgw_xml.h:168:12: note: use '==' to turn this assignment into an equality comparison while (o = iter.get_next()) { ^ == In file included from rgw/rgw_cache.cc:4: In file included from rgw/rgw_cache.h:7: In file included from rgw/rgw_rados.h:8: In file included from ./include/Context.h:19: In file included from ./common/dout.h:19: In file included from ./global/global_context.h:18: In file included from ./common/ceph_context.h:26: In file included from ./common/cmdparse.h:12: In file included from ./common/Formatter.h:8: /usr/include/c++/v1/deque:912:49: error: invalid application of 'sizeof' to an incomplete type 'value_type' (aka 'RGWPeriod') static const difference_type __block_size = sizeof(value_type) < 256 ? 4096 / sizeof(value_type) : 16; ^~~~~~~~~~~~~~~~~~ /usr/include/c++/v1/deque:1159:15: note: in instantiation of template class 'std::__1::__deque_base >' requested here : private __deque_base<_Tp, _Allocator> ^ rgw/rgw_period_history.h:26:27: note: in instantiation of template class 'std::__1::deque >' requested here std::deque periods; ^ rgw/rgw_period_history.h:16:7: note: forward declaration of 'RGWPeriod' class RGWPeriod; ^