
Robert Ramey wrote:
When I look at the trunk results I see the following:
a) failure due to the fact that wide character serialization won't build for certain platforms. On the branch, I tweaked to test/Jamfile to make some tests depended on test results on in test/config. So that tests which don't make sense aren't run. This works on my system but I have no idea whether its kosher. In Jamfiles for V1, this was addressed but that code was broken when things moved to V2. I don't know if this combination was tested with 1.34 so I don't know if reverting would help here.
Ah, I think the errors in the log reports are misleading, when building with Minw I see: gcc.link.dll ..\..\..\bin.v2\libs\serialization\build\gcc-mingw-mw\debug\boost_s erialization-mgw-d-1_35.lib ..\..\..\bin.v2\libs\serialization\build\gcc-mingw-m w\debug\boost_serialization-mgw-d-1_35.dll Creating library file: ..\..\..\bin.v2\libs\serialization\build\gcc-mingw-mw\deb ug\boost_serialization-mgw-d-1_35.lib ..\..\..\bin.v2\libs\serialization\build\gcc-mingw-mw\debug\codecvt_null.o: In f unction `ZNSt23__codecvt_abstract_baseIwciED1Ev':C:/MinGW/bin/../lib/gcc/mingw32 /3.4.2/../../../../include/c++/3.4.2/bits/codecvt.h:(.rdata$_ZTVN5boost7archive1 2codecvt_nullIwEE[vtable for boost::archive::codecvt_null<wchar_t>]+0x14): undef ined reference to `std::codecvt<wchar_t, char, int>::do_unshift(int&, char*, cha r*, char*&) const' :C:/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../../include/c++/3.4.2/bits/codecv t.h:(.rdata$_ZTVN5boost7archive12codecvt_nullIwEE[vtable for boost::archive::cod ecvt_null<wchar_t>]+0x20): undefined reference to `std::codecvt<wchar_t, char, i nt>::do_always_noconv() const' :C:/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../../include/c++/3.4.2/bits/codecv t.h:(.rdata$_ZTVN5boost7archive12codecvt_nullIwEE[vtable for boost::archive::cod ecvt_null<wchar_t>]+0x24): undefined reference to `std::codecvt<wchar_t, char, i nt>::do_length(int&, char const*, char const*, unsigned int) const' :C:/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../../include/c++/3.4.2/bits/codecv t.h:(.rdata$_ZTVSt7codecvtIwciE[vtable for std::codecvt<wchar_t, char, int>]+0x1 0): undefined reference to `std::codecvt<wchar_t, char, int>::do_out(int&, wchar _t const*, wchar_t const*, wchar_t const*&, char*, char*, char*&) const' :C:/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../../include/c++/3.4.2/bits/codecv t.h:(.rdata$_ZTVSt7codecvtIwciE[vtable for std::codecvt<wchar_t, char, int>]+0x1 4): undefined reference to `std::codecvt<wchar_t, char, int>::do_unshift(int&, c har*, char*, char*&) const' :C:/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../../include/c++/3.4.2/bits/codecv t.h:(.rdata$_ZTVSt7codecvtIwciE[vtable for std::codecvt<wchar_t, char, int>]+0x1 8): undefined reference to `std::codecvt<wchar_t, char, int>::do_in(int&, char c onst*, char const*, char const*&, wchar_t*, wchar_t*, wchar_t*&) const' :C:/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../../include/c++/3.4.2/bits/codecv t.h:(.rdata$_ZTVSt7codecvtIwciE[vtable for std::codecvt<wchar_t, char, int>]+0x1 c): undefined reference to `std::codecvt<wchar_t, char, int>::do_encoding() cons t' :C:/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../../include/c++/3.4.2/bits/codecv t.h:(.rdata$_ZTVSt7codecvtIwciE[vtable for std::codecvt<wchar_t, char, int>]+0x2 0): undefined reference to `std::codecvt<wchar_t, char, int>::do_always_noconv() const' :C:/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../../include/c++/3.4.2/bits/codecv t.h:(.rdata$_ZTVSt7codecvtIwciE[vtable for std::codecvt<wchar_t, char, int>]+0x2 4): undefined reference to `std::codecvt<wchar_t, char, int>::do_length(int&, ch ar const*, char const*, unsigned int) const' :C:/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../../include/c++/3.4.2/bits/codecv t.h:(.rdata$_ZTVSt7codecvtIwciE[vtable for std::codecvt<wchar_t, char, int>]+0x2 8): undefined reference to `std::codecvt<wchar_t, char, int>::do_max_length() co nst' collect2: ld returned 1 exit status So this is a linker error in building the *narrow character* serialization library: there are several tests in Date-time and elsewhere that are then also failing because of this. This may be caused by the change to BBv2 though: as dynamic rather than static linking is now the default. The easy hack I guess would be to enforce static linking only of Boost.Serialization on MingW32 (as the tests do build with link=static), but it would be better to #ifdef the code so as not to use wide character primitives in the first place.
b) tests of portable_binary_demo fail on high endien platforms. This demo illustrates how to add functionality to an archive via derivation. However, changes to binary_archive at a basic level break this idea for binary archives. This this demo is broken and in no longer serves its original purpose. I haven't had time to replace it.
If it's broken or outdated it should probably be removed from SVN for now: ultimately it would be confusing to end users to have a broken example in the distribution. HTH, John.