Simon South created THRIFT-3497: ----------------------------------- Summary: Build fails with "invalid use of incomplete type" Key: THRIFT-3497 URL: https://issues.apache.org/jira/browse/THRIFT-3497 Project: Thrift Issue Type: Bug Components: C++ - Library Affects Versions: 0.9.4 Environment: gcc 4.8.5 on Haiku hrev49934 (x86) Reporter: Simon South Assignee: Simon South Priority: Minor
Building the latest code in git on [Haiku|http://haiku-os.org/] fails with a number of error messages like {noformat} In file included from src/thrift/concurrency/Monitor.cpp:22:0: ./src/thrift/concurrency/Util.h: In static member function 'static void apache::thrift::concurrency::Util::toTimeval(apache::thrift::concurrency::timeval&, int64_t)': ./src/thrift/concurrency/Util.h:73:11: error: invalid use of incomplete type 'struct apache::thrift::concurrency::timeval' result.tv_sec = static_cast<uint32_t>(value / MS_PER_S); // ms to s ^ In file included from src/thrift/concurrency/Monitor.cpp:20:0: ./src/thrift/concurrency/Monitor.h:88:32: error: forward declaration of 'struct apache::thrift::concurrency::timeval' int waitForTime(const struct timeval* abstime) const; ... {noformat} This seems to be caused by {{Monitor.h}} using {{struct timeval}} but not explicitly including {{sys/time.h}}. Changing {{Monitor.h}} so it conditionally includes {{sys/time.h}} on systems that have it resolves the issue. -- This message was sent by Atlassian JIRA (v6.3.4#6332)