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<RGWPeriod,
      std::__1::allocator<RGWPeriod> >' requested here
    : private __deque_base<_Tp, _Allocator>
              ^
rgw/rgw_period_history.h:26:27: note: in instantiation of template class
'std::__1::deque<RGWPeriod, std::__1::allocator<RGWPeriod>
      >' requested here
    std::deque<RGWPeriod> periods;
                          ^
rgw/rgw_period_history.h:16:7: note: forward declaration of 'RGWPeriod'
class RGWPeriod;
      ^
_______________________________________________
freebsd-toolchain@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-toolchain
To unsubscribe, send any mail to "freebsd-toolchain-unsubscr...@freebsd.org"

Reply via email to