Opened 8 years ago

Closed 7 years ago

Last modified 7 years ago

#11219 closed Bugs (wontfix)

~basic_irachive is protected in library causing linking to fail

Reported by: Mika Fischer <mika.fischer@…> Owned by: Robert Ramey
Milestone: To Be Determined Component: serialization
Version: Boost 1.58.0 Severity: Problem
Keywords: Cc:

Description

~basic_iarchive is declared public, but somehow in the library it ends up as protected, causing a linker failure.

This happens with 1.58.0 on Windows 32 bit with VC 2013. It does not happen on Windows 64 bits or on Linux.

dumpbin Output 32bits:

591 00000000 UNDEF  notype ()    External     | ??1basic_iarchive@detail@archive@boost@@IAE@XZ (protected: __thiscall boost::archive::detail::basic_iarchive::~basic_iarchive(void))

dumpbin Output 64bits:

337 00000000 UNDEF  notype ()    External     | ??1basic_iarchive@detail@archive@boost@@QEAA@XZ (public: __cdecl boost::archive::detail::basic_iarchive::~basic_iarchive(void))

linker error on 32bit Windows with VC2013

error LNK2019: unresolved external symbol "public: __thiscall boost::archive::detail::basic_iarchive::~basic_iarchive(void)" (??1basic_iarchi

Change History (4)

comment:1 by Robert Ramey, 7 years ago

Resolution: wontfix
Status: newclosed

I'm marking this won't fix - what I mean is "can't fix". It seems to be something outside of the scope of the source code itself.

comment:2 by Mika Fischer <mika.fischer@…>, 7 years ago

Well, something changed from 1.57 - where this does not happen - to 1.58 in the boost source code that causes this issue. So, I would disagree that it's something that you can't fix. Reverting to 1.57 would fix it!

It's a regression that makes boost serialization completely unusable for us in Boost 1.58, because I really have no idea what could cause this and how I could fix is myself...

comment:3 by Robert Ramey, 7 years ago

LOL - OK I'll amend my statement to say I don't know how to fix it.

"This happens with 1.58.0 on Windows 32 bit with VC 2013. It does not happen on Windows 64 bits or on Linux."

Strongly suggests that some workaround specific to VC 2013/32 bits would be required. Given that I don't have this platform, there is no way I can replicate the problem nor know if any change has fixed it. If you want to investigate this and suggest a specific change, I'll be happy to take a look at it.

comment:4 by Mika Fischer <mika.fischer@…>, 7 years ago

OK, it seems this was somehow caused by reusing the build directory from boost 1.57 (where it really was protected) for 1.58 (where it's public). Sorry for the noise...

Note: See TracTickets for help on using tickets.