Boost logo

Boost Testing :

Subject: Re: [Boost-testing] mingw serialization test issue
From: Robert Ramey (ramey_at_[hidden])
Date: 2016-05-06 14:07:17


On 4/27/16 1:08 PM, Robert Ramey wrote:
> On 1/17/16 9:35 AM, Robert Ramey wrote:
>> The serialization library is failing tests on all mingw versions. When I
>> try to discover the cause here:
>>
>> http://www.boost.org/development/tests/develop/developer/output/igaztanaga-gcc-5-2c++14-boost-bin-v2-libs-serialization-test-test_binary_binary_archive-test-gcc-mngw-5-2c+-dbg-dbg-symbl-off.html
>>
>>
>>
>> it shows that a particular module compiles successfully, but otherwise
>> no other information of any kind. If anyone has any insight on what it
>> would take to pass on this platform, I'd be interested in hearing
>> about it.
>>
>> Robert Ramey
>
> Note that problem also occurs with the file system tests. So it's not
> just a serialization issue. I'm suspecting that the import/export
> mechanism is mixed up for mingw - which contains elements of posix and
> windows.
>
> Robert Ramey

More information. The tests which use codecvt have this problem on
mingw accross the board. Here's an example from the boost file tests.

http://www.boost.org/development/tests/develop/developer/output/igaztanaga-gcc-4-6c++11-boost-bin-v2-libs-filesystem-test-path_unit_test-test-gcc-mngw-4-6c+-dbg-dbg-symbl-off.html

the error output is
 
"C:/Programs/mingw-builds/x32-4.6.4-posix-dwarf-rev0/mingw32/bin/gcc-4.6.bat"
  -ftemplate-depth-128 -pipe -std=c++0x -O0 -fno-inline -Wall
-march=i686 -m32 -DBOOST_ALL_NO_LIB=1 -DBOOST_FILESYSTEM_DYN_LINK=1
-DBOOST_SYSTEM_DYN_LINK=1 -I".." -c -o
"c:\boost\develop\results\boost\bin.v2\libs\filesystem\test\path_unit_test.test\gcc-mngw-4.6c+\dbg\dbg-symbl-off\path_unit_test.o"
"..\libs\filesystem\test\path_unit_test.cpp"

In file included from
../boost/filesystem/detail/utf8_codecvt_facet.hpp:18:0,
                  from ..\libs\filesystem\test\path_unit_test.cpp:34:
../boost/detail/utf8_codecvt_facet.hpp:116:30: error: function
'boost::filesystem::detail::utf8_codecvt_facet::utf8_codecvt_facet(std::size_t)'
definition is marked dllimport

The problem is that this function SHOULD BE marked with dllimport as
it's imported from the boost file dll !

There's a few possibilities which occur to me for the source of this error:

a) compiler error - flags error when there isn't one

b) using dllimport on a static build. I can't tell from the test
report if we're testing the static or shared library build here.

c) some issue in config with the dynamic/shared import/export
DECL setup

d) some other thing which hasn't occured to me

e) some combination of the above.

One fact that is worthy of note is that this is only happening with the
mingw platform/system. Of course I don't have this plaform so it's even
harder to find the problem.

Robert Ramey


Boost-testing list run by mbergal at meta-comm.com