Fw: Mysterious Boost.System-related errors when running Beast tests

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Fw: Mysterious Boost.System-related errors when running Beast tests

Boost - Dev mailing list
The story starts with

https://travis-ci.org/vinniefalco/beast/jobs/375049193

which gives the error

dyld: Symbol not found: __ZN5boost6system6detail19system_category_ncxEv
  Referenced from:
/Users/travis/build/vinniefalco/boost-root/bin.v2/libs/beast/test/beast/core/clang-darwin-4.2.1/debug/threadapi-pthread/threading-multi/fat-tests
  Expected in: /usr/local/lib/libboost_system.dylib

boost::system::detail::system_category_ncx is a new function (in develop),
and careful reading of the above reveals that the compiler is trying to link
to a preinstalled libboost_system.dylib, in /usr/local/lib.

Looking at the log, Boost.System is not even being built. This is odd; the
Beast root Jamfile contains

    <library>/boost/system//boost_system

(at https://github.com/boostorg/beast/blob/develop/Jamfile#L78)

but even if it didn't, it also links to Filesystem, which _is_ being built,
and Filesystem also depends on System in its build/Jamfile:

https://github.com/boostorg/filesystem/blob/develop/build/Jamfile.v2#L29

So Boost.System should be built, but it isn't. Its Jamfile hasn't been
touched in 10 years:

https://github.com/boostorg/system/blob/develop/build/Jamfile.v2

In addition, there's not even a `mklink-or-dir boost/system` in the log,
even though the link must be created because the new headers are being used
(this could be a separate issue).

The Linux/g++ job, https://travis-ci.org/vinniefalco/beast/jobs/375049187,
also doesn't seem to build Boost.System, but it works for some reason.

When I try `b2 libs/beast/test` on Windows, with msvc-14.1, Boost.System is
being built, in the very beginning:

...patience...
...patience...
...patience...
...found 6992 targets...
...updating 1090 targets...
link.hardlink ..\..\boost\utility\string_view.hpp
Hardlink created for ..\..\boost\utility\string_view.hpp <<===>>
..\utility\include\boost\utility\string_view.hpp
compile-c-c++
..\..\bin.v2\libs\beast\test\beast\core\type_traits.test\msvc-14.1\debug\threadapi-win32\threading-multi\type_traits.obj
type_traits.cpp
compile-c-c++
..\..\bin.v2\libs\beast\test\beast\core\type_traits.test\msvc-14.1\debug\threadapi-win32\threading-multi\main.obj
main.cpp
compile-c-c++
..\..\bin.v2\libs\system\build\msvc-14.1\debug\threading-multi\error_code.obj
error_code.cpp
msvc.link.dll
..\..\bin.v2\libs\system\build\msvc-14.1\debug\threading-multi\boost_system-vc141-mt-gd-x32-1_66.dll

(The 1.66 version instead of 1.68 was caused by a typo in the superproject
which is now fixed.)

When I try the same on Ubuntu Trusty, the result is the same as on Travis;
no `mklink-or-dir boost/system`, no building of Boost.System, yet everything
compiles and works, and I don't have a preinstalled Boost on my VM.

It makes no sense at all.

Does anyone have any ideas what might be happening here?


_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Reply | Threaded
Open this post in threaded view
|

Re: Fw: Mysterious Boost.System-related errors when running Beast tests

Boost - Dev mailing list
> When I try the same on Ubuntu Trusty, the result is the same as on Travis;
> no `mklink-or-dir boost/system`, no building of Boost.System, yet
> everything compiles and works, and I don't have a preinstalled Boost on my
> VM.
>
> It makes no sense at all.

Examining the boost/ and bin.v2/ directories however reveals that
Boost.System has been symlinked and built.

It almost looks like all lines containing 'system' are hidden from the b2
output, but cursory examination shows no such logic there.


_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost