|
Boost Testing : |
From: Jim Douglas (jim_at_[hidden])
Date: 2005-10-17 05:26:35
(Continuation of correspondence with Rene Rivera from boost.user group)
Just to note to say that I have not given up. I was slightly delayed by
the release of a QNX service pack which I have been evaluating and
deploying. This pack upgrades the gcc compiler from 3.3.1 to 3.3.5.
I am attempting to run the tests on QNX 6.3.0 SP2 (AKA Neutrino) with
the gcc compiler called via the proprietary 'qcc/QCC' front-end.
Available libraries are GNU and Dinkumware (see below).
I have been running the tests on the code from RC_1_33_0 using the
'run_tests.sh' script. The tests will run to completion, but the
process_jam_log application crashes with a memory fault before it can
complete the report. FYI I have attached the fragment it produces. At
some point I will build a debug version and run it through gdb to find
out what is happening. (Rene, do you have a version that runs OK?)
It may be that the 20+ MByte regress.log file is too big? I appear to be
getting this size because some of the libs and tests produce error and
warning messages that makes my terminal window look like 'The Matrix' on
steroids :-)
By far the most common warning seems to be the "virtual functions but
non-virtual destructor" which, if true, is something that perhaps should
be fixed? AFAIK there is not an option to suppress this warning in gcc
version 3.3.5 (or indeed any version of gcc).
I have modified qcc-tools.jam to force the correct version of the
compiler and library i.e.
GXX = QCC -V3.3.5,gcc_ntox86_gpp -lang-c++
I have also inserted a few case statements in gcc-tools.bjam so that the
'-Wxx' and '-fxx' options are prefixed with '-Wc,' - a quirk of QCC. I
couldn't figure out how to force a local override of the options in
qcc-tools.jam. If this can be done what is the syntax?
QNX has a choice of GNU or Dinkumware C++ libraries and within
Dinkumware there are 6 variants! I started with Dinkumware because it is
the default, but I was able to identify that the python library was
failing because it uses the macro __GNUC__ to determine the presence or
otherwise of the file 'cxxabi.h'. In other words there is an implicit
assumption that if you are using the GNU compiler you MUST also have the
associated GNU library. This is a Very Bad Thing. OK, so changing to the
GNU library fixed this particular problem but...
On a more philosophical note QNX does open up quite a can of worms. To
quote from their website:
"QNX Momentics PE gives you choice. You can ... work with multiple
development hosts (Windows, Solaris, QNX Neutrino), and target a variety
of processors (x86, MIPS, PowerPC, ARM, StrongARM, Intel® XScale
Microarchitecture, and SH-4) - all from the same IDE."
So, ideally the Boost configuration options would need to be capable of
_independently_ specifying:
Host OS,
Target Platform,
Target OS, (so that it can be applied to other than QNX)
Tools (there is a choice of GNU 2.95.5, 3.3.5 or Intel C++ with QNX),
C++ Library
...but that's for the future.
Regards
Jim Douglas
Compiler Status: Generic UnixRun Date: 19:27:46 UTC, Sunday 16 October 2005 |
GNU C++ version 3.3.5 (qnx-nto) __cplusplus =1 __STDC__ =1 __GNUC__ =3 __GNUC_MINOR__ =3 __STDC_VERSION__ =199901L __GNUG__ =3 __VERSION__ ="3.3.5 (qnx-nto)" __REGISTER_PREFIX__ [no value] __USER_LABEL_PREFIX__ [no value] __EXCEPTIONS =1 __ELF__ =1 __i386__ =1 __unix =1 __i386 =1 i386 =1 __STDC_HOSTED__ =1 ********************************************************************* GNU libstdc++ version 20040930 _CPPLIB_VER =402 _HAS_EXCEPTIONS =1 __GLIBCPP__ =20040930 _GLIBCPP_VERSION ="3.3.5" ********************************************************************* Detected Platform: Generic Unix Type char is signed Type wchar_t is unsigned byte order for type short =0 8 byte order for type int =0 8 16 24 byte order for type long =0 8 16 24 sizeof(wchar_t) =4 sizeof(short) =2 sizeof(int) =4 sizeof(long) =4 sizeof(size_t) =4 sizeof(ptrdiff_t) =4 sizeof(void*) =4 sizeof(void(*)(void)) =4 sizeof(float) =4 sizeof(double) =8 sizeof(long double) =12 CHAR_BIT =8 CHAR_MAX =127 WCHAR_MAX =0x7fffffff SHRT_MAX =32767 INT_MAX =2147483647 LONG_MAX =2147483647L LLONG_MAX =9223372036854775807LL LONGLONG_MAX =9223372036854775807LL ULLONG_MAX =18446744073709551615ULL ULONGLONG_MAX =18446744073709551615ULL __STDC_IEC_559__ =1 __STDC_IEC_559_COMPLEX__ =1 __STDC_ISO_10646__ =200009L _LARGEFILE64_SOURCE =1 _POSIX_CHOWN_RESTRICTED =1 _POSIX_FSYNC =1 _POSIX_MEMORY_PROTECTION =1 _POSIX_MESSAGE_PASSING =1 _POSIX_NO_TRUNC =1 _POSIX_PRIORITY_SCHEDULING =1 _POSIX_REALTIME_SIGNALS =1 _POSIX_SAVED_IDS =1 _POSIX_SEMAPHORES =1 _POSIX_SHARED_MEMORY_OBJECTS =1 _POSIX_SYNCHRONIZED_IO =1 _POSIX_THREAD_ATTR_STACKADDR =1 _POSIX_THREAD_ATTR_STACKSIZE =1 _POSIX_THREAD_PRIO_INHERIT =1 _POSIX_THREAD_PRIORITY_SCHEDULING =1 _POSIX_THREAD_PROCESS_SHARED =1 _POSIX_THREADS =1 _POSIX_TIMEOUTS =1 _POSIX_TIMERS =1 _POSIX_VDISABLE =0 _POSIX_VERSION =199506L _POSIX2_C_BIND =1 _POSIX2_CHAR_TERM =1 _POSIX2_FORT_DEV =1 _POSIX2_FORT_RUN =1 _POSIX2_LOCALEDEF =1 _POSIX2_SW_DEV =1 _POSIX2_UPE =1 _POSIX2_VERSION =1 _XBS5_ILP32_OFF32 =1 _XBS5_ILP32_OFFBIG =1 _XBS5_LP64_OFF64 =1 _XBS5_LPBIG_OFFBIG =1 _XOPEN_CRYPT =1 _XOPEN_ENH_I18N =1 _XOPEN_LEGACY =1 _XOPEN_REALTIME =1 _XOPEN_REALTIME_THREADS =1 _XOPEN_SHM =1 _XOPEN_UNIX =1 _XOPEN_VERSION =500 ********************************************************************* Boost version 103301 BOOST_USER_CONFIG =<boost/config/user.hpp> BOOST_COMPILER_CONFIG ="boost/config/compiler/gcc.hpp" BOOST_STDLIB_CONFIG ="boost/config/stdlib/libstdcpp3.hpp" BOOST_PLATFORM_CONFIG ="boost/config/platform/qnx.hpp" BOOST_DEDUCED_TYPENAME =typename BOOST_HAS_LONG_LONG [no value] BOOST_HAS_NRVO [no value] BOOST_HAS_PARTIAL_STD_ALLOCATOR [no value] BOOST_HAS_STDINT_H [no value] BOOST_MSVC6_MEMBER_TEMPLATES [no value] BOOST_NESTED_TEMPLATE =template BOOST_NO_CWCHAR [no value] BOOST_NO_CWCTYPE [no value] BOOST_NO_HASH [no value] BOOST_NO_IS_ABSTRACT [no value] BOOST_NO_MS_INT64_NUMERIC_LIMITS [no value] BOOST_NO_SLIST [no value] BOOST_NO_STD_WSTREAMBUF [no value] BOOST_NO_STD_WSTRING [no value] BOOST_NO_SWPRINTF [no value] BOOST_STD_EXTENSION_NAMESPACE =std BOOST_UNREACHABLE_RETURN(0) [no value] EXIT STATUS: 0
In file included from /root/workspaces/Libs/boost_dev/libs/config/test/config_test.cpp:409: /root/workspaces/Libs/boost_dev/libs/config/test/boost_has_stdint_h.ipp: In function `int boost_has_stdint_h::test()': /root/workspaces/Libs/boost_dev/libs/config/test/boost_has_stdint_h.ipp:29: error: ` int_fast8_t' undeclared (first use this function) /root/workspaces/Libs/boost_dev/libs/config/test/boost_has_stdint_h.ipp:29: error: (Each undeclared identifier is reported only once for each function it appears in.) /root/workspaces/Libs/boost_dev/libs/config/test/boost_has_stdint_h.ipp:29: error: parse error before `=' token /root/workspaces/Libs/boost_dev/libs/config/test/boost_has_stdint_h.ipp:30: error: ` int_least8_t' undeclared (first use this function) /root/workspaces/Libs/boost_dev/libs/config/test/boost_has_stdint_h.ipp:32: error: ` j' undeclared (first use this function) /root/workspaces/Libs/boost_dev/libs/config/test/boost_has_stdint_h.ipp:33: error: ` k' undeclared (first use this function) cc: /usr/qnx630/host/qnx6/x86/usr/lib/gcc-lib/i386-pc-nto-qnx6.3.0/3.3.5/cc1plus error 1 set -e "QCC" -V3.3.5,gcc_ntox86_gpp -lang-c++ -c -Wc,-Wall,-ftemplate-depth-255 -g -O0 -Wc,-fno-inline -I"../bin/boost/status" -I "/root/workspaces/Libs/boost_dev" -o "../bin/boost/status/config_test.test/qcc/debug/config_test.o" "/root/workspaces/Libs/boost_dev/libs/config/test/config_test.cpp"
In file included from /root/workspaces/Libs/boost_dev/boost/integer.hpp:20, from /root/workspaces/Libs/boost_dev/boost/crc.hpp:13, from /root/workspaces/Libs/boost_dev/libs/crc/crc_test.cpp:18: /root/workspaces/Libs/boost_dev/boost/integer_traits.hpp:117:2: #error No WCHAR_MIN and WCHAR_MAX present, please adjust integer_traits<> for your compiler. In file included from /root/workspaces/Libs/boost_dev/boost/integer.hpp:20, from /root/workspaces/Libs/boost_dev/boost/crc.hpp:13, from /root/workspaces/Libs/boost_dev/libs/crc/crc_test.cpp:18: /root/workspaces/Libs/boost_dev/boost/integer_traits.hpp:119: error: parse error before `{' token cc: /usr/qnx630/host/qnx6/x86/usr/lib/gcc-lib/i386-pc-nto-qnx6.3.0/3.3.5/cc1plus error 1 set -e "QCC" -V3.3.5,gcc_ntox86_gpp -lang-c++ -c -Wc,-Wall,-ftemplate-depth-255 -g -O0 -Wc,-fno-inline -I"../bin/boost/status" -I "/root/workspaces/Libs/boost_dev" -o "../bin/boost/status/crc_test.test/qc