On 21/04/2016 10:36, Дмитрий Марков wrote:
Hello,
I updated my cygwin yesterday, because I found strange bug when using 
boost::asio::ip::tcp::socket for sending some text information(some information 
became broken). I haven't got such bug under my Linux OS, so I decide upgrade 
the cygwin.
After successful updating of cygwin I can't build my project.

The cygwin header has been recently update and reshuffled.

The first error of compiler is:

In file included from /usr/include/boost/thread/thread_time.hpp:10:0,
from /usr/include/boost/thread/lock_types.hpp:18,
from /usr/include/boost/thread/pthread/thread_data.hpp:12,
from /usr/include/boost/thread/thread_only.hpp:17,
from /usr/include/boost/thread/thread.hpp:12,
from ../src/DoubleChannelCalculations.hpp:21,
from ../src/DoubleChannelCalculations.cpp:14:
/usr/include/boost/date_time/microsec_time_clock.hpp: In static member function 'static 
time_type 
boost::date_time::microsec_clock<time_type>::create_time(boost::date_time::microsec_clock<time_type>::time_converter)':
/usr/include/boost/date_time/microsec_time_clock.hpp:84:26: error: there are no 
arguments to 'gettimeofday' that depend on a template parameter, so a 
declaration of 'gettimeofday' must be available [-fpermissive]
gettimeofday(&tv, 0); //gettimeofday does not support TZ adjust on Linux.

The definition is in /usr/include/sys/time.h

protected by
#if __MISC_VISIBLE || __XSI_VISIBLE

The second error message:
/usr/include/boost/date_time/microsec_time_clock.hpp:84:26: note: (if you use 
'-fpermissive', G++ will accept your code, but allowing the use of an 
undeclared name is deprecated)
In file included from /usr/include/boost/asio/detail/signal_blocker.hpp:25:0,
from /usr/include/boost/asio/detail/impl/select_reactor.ipp:29,
from /usr/include/boost/asio/detail/select_reactor.hpp:212,
from /usr/include/boost/asio/detail/reactor.hpp:29,
from /usr/include/boost/asio/detail/impl/task_io_service.ipp:24,
from /usr/include/boost/asio/detail/task_io_service.hpp:198,
from /usr/include/boost/asio/impl/io_service.hpp:71,
from /usr/include/boost/asio/io_service.hpp:767,
from ../src/PrintPlots.hpp:17,
from ../src/DoubleChannelCalculations.cpp:19:
/usr/include/boost/asio/detail/posix_signal_blocker.hpp: In constructor 
'boost::asio::detail::posix_signal_blocker::posix_signal_blocker()':
/usr/include/boost/asio/detail/posix_signal_blocker.hpp:42:25: error: 
'sigfillset' was not declared in this scope
sigfillset(&new_mask);

in /usr/include/sys/signal.h

protected by
#if __BSD_VISIBLE || __XSI_VISIBLE >= 4


I have tried to use -fpermissive, but it's not help me. I also have tried to 
add define _GNU_SOURCE, _POSIX_C_SOURCE=200809L, _XOPEN_SOURCE=700. If I define 
_GNU_SOURCE or _XOPEN_SOURCE=700 the project build successful, but it's not 
work, because boost::asio::ip::tcp::socket raise exception that 
socket.available() is not supported(but it was).
I also try full reinstall of cygwin, but it's not help. I attached output of command 
"cygcheck -s -v -r".

What it may be the problem and how I may resolve it?


try using __XSI_VISIBLE=4

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

Reply via email to