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 acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk