Opened 8 years ago

Last modified 8 years ago

#10784 new Bugs

Error compiling syslog_backend with icc-11.1.064

Reported by: bhall@… Owned by: chris_kohlhoff
Milestone: To Be Determined Component: asio
Version: Boost 1.56.0 Severity: Problem
Keywords: Cc: Andrey.Semashev@…

Description

I am trying to compile boost 1.56.0 with icc-11.1.064 on ubuntu 12.04. That specific compiler is needed for compatibility with existing code.

It's failing with this error:

./boost/asio/detail/keyword_tss_ptr.hpp(62): error: template argument list must match the parameter list

BOOST_ASIO_THREAD_KEYWORD T* keyword_tss_ptr<T>::value_;

compilation aborted for libs/log/src/syslog_backend.cpp (code 2)

"icpc" -c -xc++ -w1 -inline-level=2 -O3 -ip -pthread -fPIC -fPIC -wd177,780,2196,1782,193,304,981,1418,411,734,279 -DBOOST_ALL_NO_LIB=1 -DBOOST_CHRONO_DYN_LINK=1 -DBOOST_DATE_TIME_DYN_LINK=1 -DBOOST_FILESYSTEM_DYN_LINK=1 -DBOOST_HAS_ICU=1 -DBOOST_LOG_BUILDING_THE_LIB=1 -DBOOST_LOG_DLL -DBOOST_LOG_USE_NATIVE_SYSLOG -DBOOST_LOG_USE_SSSE3 -DBOOST_LOG_WITHOUT_EVENT_LOG -DBOOST_SPIRIT_USE_PHOENIX_V3=1 -DBOOST_SYSTEM_DYN_LINK=1 -DBOOST_SYSTEM_NO_DEPRECATED -DBOOST_THREAD_BUILD_DLL=1 -DBOOST_THREAD_DONT_USE_CHRONO=1 -DBOOST_THREAD_POSIX -DBOOST_THREAD_USE_DLL=1 -DDATE_TIME_INLINE -DNDEBUG -D_GNU_SOURCE=1 -D_XOPEN_SOURCE=600 -I"." -I"/usr/include" -c -o "bin.v2/libs/log/build/intel-linux/release/build-no/log-api-unix/threading-multi/syslog_backend.o" "libs/log/src/syslog_backend.cpp"

...failed intel-linux.compile.c++ bin.v2/libs/log/build/intel-linux/release/build-no/log-api-unix/threading-multi/syslog_backend.o... intel-linux.compile.c++ bin.v2/libs/log/build/intel-linux/release/build-no/log-api-unix/threading-multi/threadsafe_queue.o intel-linux.compile.c++ bin.v2/libs/log/build/intel-linux/release/build-no/log-api-unix/threading-multi/trivial.o

If I compile with 'define=BOOST_LOG_WITHOUT_SYSLOG' then it builds successfully but I'd like to have the syslog backend support available. Any help would be much appreciated.

Change History (1)

comment:1 by Andrey Semashev, 8 years ago

Cc: Andrey.Semashev@… added
Component: logasio
Owner: changed from Andrey Semashev to chris_kohlhoff

This looks like a compiler bug to me, or it doesn't actually support the __thread keyword ASIO uses. I cannot work around it in Boost.Log, so I'm reassigning the ticket to Boost.ASIO.

In the meantime you can try compiling Boost.Log with BOOST_LOG_NO_ASIO defined. You will only be able to use native syslog API.

Note: See TracTickets for help on using tickets.