Opened 6 years ago
Last modified 5 years ago
#12205 new Bugs
FTBFS boost.serialization 1.61: undefined reference to boost::archive::codecvt_null<wchar_t>
Reported by: | xantares | Owned by: | Robert Ramey |
---|---|---|---|
Milestone: | To Be Determined | Component: | serialization |
Version: | Boost 1.61.0 | Severity: | Regression |
Keywords: | Cc: |
Description
hello,
I cannot compile boost 1.61 (1.60 is fine with the same setup):
boost/archive/codecvt_null.hpp:93: undefined reference to `vtable for boost::archive::codecvt_null<wchar_t>
The incriminated package seems serialization, as it goes on with '--without-serialization' flag.
The setup is mingw-w64 on linux, with gcc 6.1.
See full log attached.
Change History (12)
comment:1 by , 6 years ago
comment:2 by , 6 years ago
Could it be related to https://github.com/boostorg/serialization/pull/31 ? Or https://github.com/boostorg/serialization/commit/a64bf6e4d55970dbc7b92e9fcbdd596cdbc32564 ?
If I move codecvt_null to WSOURCES to compilation continues, but in that case maybe BOOST_ARCHIVE_DECL should be changed to BOOST_WARCHIVE_DECL.
comment:3 by , 6 years ago
In 1.61 and develop branch, codecvt_null is compiled in archive: https://github.com/boostorg/serialization/blob/develop/build/Jamfile.v2 whereas in codecvt_null.hpp uses BOOST_WARCHIVE_DECL: https://github.com/boostorg/serialization/blob/develop/include/boost/archive/codecvt_null.hpp
If I move codecvt_null from SOURCES to WSOURCES in Jamfile.v2, the build passes.
comment:7 by , 6 years ago
+1, same on Windows for Mingw-w64 <Debug,Release>+shared configurations; not reproduced for ICC or MSVC.
with PR: #42 applied, build error gone for Release+shared configuration only, while still reproduce for Debug+shared.
comment:9 by , 5 years ago
I can reproduce this with an appveyor build of uuid, which depends on serialization:
https://ci.appveyor.com/project/jeking3/uuid/build/job/8h9yd8425mydtaqt
PR with the appveyor file:
https://github.com/boostorg/uuid/pull/27
Also this looks a lot like #12741.
comment:10 by , 5 years ago
I am also able to reproduce this locally by installing msys2 and then running the build like:
Jim.King@Jking-P70 MINGW64 /c/boost/libs/serialization $ ../../b2.exe test toolset=gcc
gcc.link ..\..\bin.v2\libs\serialization\test\test_bitset_text_archive.test\gcc- mingw-6.3.0\debug\test_bitset_text_archive.exe ..\..\bin.v2\libs\serialization\test\test_bitset_text_archive.test\gcc-mingw-6.3 .0\debug\test_bitset.o:test_bitset.cpp:(.rdata$.refptr._ZTVN5boost7archive12code cvt_nullIwEE[.refptr._ZTVN5boost7archive12codecvt_nullIwEE]+0x0): undefined refe rence to `vtable for boost::archive::codecvt_null<wchar_t>' collect2.exe: error: ld returned 1 exit status
Log was too big: