Boost logo

Boost :

Subject: Re: [boost] [serialization] Errors when testing withe mingw-64/gcc on Windows
From: Edward Diener (eldiener_at_[hidden])
Date: 2015-07-18 18:52:20

On 7/18/2015 10:04 AM, Robert Ramey wrote:
> On 7/17/15 10:51 PM, Edward Diener wrote:
>> When running serialization tests with mingw-64/gcc on Windows I get
>> repeated errors of the form:
>> ..\..\../boost/archive/detail/basic_oarchive.hpp:64:5: error: function
>> 'boost::archive::detail::helper_collection&
>> boost::archive::detail::basic_oarchive::get_helper_collection()'
>> definition is marked dllimport
>> get_helper_collection(){
>> Is this a known problem ?
>> Testing with VC++ does not give any errors.
> A couple of months ago I made efforts to limit symbol visibility on
> compilers other than Visual Studio. This was to resolve complaints
> about the serialization library exporting many more symbols than
> necessary on these platforms. This turned out to be quite a bit more
> intricate than I expected as there's some confusion between vs and other
> platforms on this point and they use different syntax. I managed to get
> it all together - except for MinGW - which still has problems in this
> area. I noticed it was failing the MinGW tests (when they were being
> run). But I couldn't really fix it because I have neither Visual Studio
> nor MinGW.
> As I said, it turned out some what more complex than I expected due to
> one thing in particular. The wide version of the DLL exports it's own
> symbols, but import symbols from the the base version of the DLL. So
> one has to get it just right. For a while I was experiencing the
> situation where fixing it for one version would create problems in the
> other. I never could figure out which syntax MinGW uses. If one has
> all three (or four) platforms gcc, mingw, clang, and Visual studion and
> some patience it's an easy fix - once you discover it. But without this
> setup, it's sort of chasing one's tail.
> So if you want to do this, I would be grateful. Not that if you get it
> wrong, it shows up in some tests but not in others. So one has to be
> prepared to run the whole serialization test suite before declaring
> victory.

I will look at it. I can run the serialization tests with
mingw/mingw-64/gcc, clang, and VC++ on Windows and gcc and clang on Linux.

Boost list run by bdawes at, gregod at, cpdaniel at, john at