Re: [Boost-users] libboost_filesystem compile error in qnx
Ricardo Perrone wrote:
Hi,
I am trying to compile/install boost libraries (1.35.0 version) and some erros appears in console:
Does anybody know how to solve this? My qcc/QCC is set to 3.3.5,gcc_ntox86. The same error appears when i try with bjam
No but it helps if you put the library name in the title so the author is made aware of the issue :-)
you're right :-)
Looks like a configuration issue: does QNX have the POSIX re-entrant std lib functions such as strerror_r ? If not there's probably a macro that can set (or maybe unset) somewhere in Boost.System to solve this.
John.
i agree with you, but considering that i am a new user and i don't have so much experience to configure appropriately, how can i check this std lib? In $BOOS_ROOT/boost/config/platform/qnxnto.hpp there are the following default informations: // QNX specific config options: #define BOOST_PLATFORM "QNX" #define BOOST_HAS_UNISTD_H #include <boost/config/posix_features.hpp> // QNX claims XOpen version 5 compatibility, but doesn't have an nl_types.h // or log1p and expm1: #undef BOOST_HAS_NL_TYPES_H #undef BOOST_HAS_LOG1P #undef BOOST_HAS_EXPM1 #define BOOST_HAS_SCHED_YIELD #define BOOST_HAS_PTHREADS #define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE #define BOOST_HAS_GETTIMEOFDAY #define BOOST_HAS_CLOCK_GETTIME #define BOOST_HAS_NANOSLEEP At this moment i am using QNX 6.3.2 and i don' t know what is the macro that enables the std lib functions in accordance with POSIX. Thanks Ricardo __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com
Hi, according to the QNX documentation, strerror itself is thread-safe, therefore I thought it correct to add the QNX switch to libs\system\src\error_code.cpp:86 # if defined(BOOST_WINDOWS_API) || defined(__hpux) || defined(__sun)\ || (defined(__linux) && (!defined(__USE_XOPEN2K) || defined(BOOST_SYSTEM_USE_STRERROR)))\ || (defined(__osf__) && !defined(_REENTRANT))\ || (defined(__vms))\ || (defined(__QNXNTO__)) // <=================================== Any comments on that? In addition, I had to uncomment the case statement for EALREADY later in this file. Since the QNX errno.h header defines #define EALREADY EBUSY it won't compile otherwise. Hope that helps. best regards Guenther
participants (2)
-
Guenther Stattenberger
-
Ricardo Perrone