boostorg / bcp Goto Github PK
View Code? Open in Web Editor NEWBoost.org bcp module
Home Page: http://boost.org/libs/bcp
License: Other
Boost.org bcp module
Home Page: http://boost.org/libs/bcp
License: Other
Hi,
I'm not sure if this is a bug or not, as it's quite obscure.
Example using Boost 1.79.0: https://gist.github.com/foundry-markf/89e0d9893ecf6614821e4d55188be158
In short, extracting and building Boost Python using bcp, results in an error failing to find a header:
In file included from libs/python/src/object/inheritance.cpp:7:
In file included from ./boost/graph/breadth_first_search.hpp:26:
./boost/graph/two_bit_color_map.hpp:106:10: fatal error: 'boost/graph/detail/empty_header.hpp' file not found
#include BOOST_GRAPH_MPI_INCLUDE(<boost/graph/distributed/two_bit_color_map.hpp>)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./boost/graph/detail/mpi_include.hpp:13:36: note: expanded from macro 'BOOST_GRAPH_MPI_INCLUDE'
#define BOOST_GRAPH_MPI_INCLUDE(x) <boost/graph/detail/empty_header.hpp>
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
This header is rather obscurely included, from its definition
#if defined BOOST_GRAPH_USE_MPI
#define BOOST_GRAPH_MPI_INCLUDE(x) x
#else
#define BOOST_GRAPH_MPI_INCLUDE(x) <boost/graph/detail/empty_header.hpp>
#endif
and use
#include BOOST_GRAPH_MPI_INCLUDE(< boost / graph / distributed / two_bit_color_map.hpp >)
so I'm not surprised at the error.
The question here is should bcp cope with this?
I've included in the gist, a workaround, by specifying the missing header on the module list, so this is not a blocker for me.
Thanks.
Using https://github.com/conan-community/conan-boost with boost:namespace = boost_ns
and boost:namespace_alias = True
will fail with Boost 1.70 on ubuntu 16.04 with a core dump.
...
INFO: tracking source dependencies of library log due to presence of "class light_rw_mutex
{" in file "boost/log/detail/light_rw_mutex.hpp"
INFO: tracking source dependencies of library random due to presence of "class random_device : private noncopyable
{" in file "boost/random/random_device.hpp"
CAUTION: don't know how to trace depenencies through macro: "BOOST_SPIRIT_HEADER" in file: libs/spirit/repository/test/test_headers/test.cpp
CAUTION: don't know how to trace depenencies through macro: "BOOST_SPIRIT_HEADER" in file: libs/spirit/repository/test/test_headers/test.cpp
CAUTION: don't know how to trace depenencies through macro: "BOOST_SPIRIT_HEADER" in file: libs/spirit/test/test_headers/test.cpp
CAUTION: don't know how to trace depenencies through macro: "BOOST_SPIRIT_HEADER" in file: libs/spirit/test/test_headers/test.cpp
Segmentation fault (core dumped)
The stack trace looks like this and goes on with the same two function calls
#0 0x00007fbbf6ae2bbc in _int_malloc (av=av@entry=0x7fbbf6e25b20 <main_arena>, bytes=bytes@entry=64) at malloc.c:3353
#1 0x00007fbbf6ae5184 in __GI___libc_malloc (bytes=64) at malloc.c:2913
#2 0x00007fbbf70cee78 in operator new(unsigned long) () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#3 0x000000000041b931 in std::_Rb_tree<boost::filesystem::path, boost::filesystem::path, std::_Identity<boost::filesystem::path>, path_less, std::allocator<boost::filesystem::path> >::_M_insert_unique(boost::filesystem::path const&) ()
#4 0x000000000041542f in bcp_implementation::add_file(boost::filesystem::path const&) ()
#5 0x0000000000419dc6 in bcp_implementation::add_path(boost::filesystem::path const&) ()
The bcp command-line
bcp --namespace=boost_ns --namespace-alias --boost=boost_1_70_0 compatibility uuid array tti lockfree utility units archive signals2 preprocessor move program_options system config static_assert bind algorithm ratio crc regex property_tree process property_map yap ptr_container exception safe_numerics intrusive pool function_types timer coroutine icl boost-build.jam fusion lexical_cast build contract flyweight scope_exit typeof endian variant multi_index msm tuple mpi callable_traits statechart local_function numeric hof vmd fiber chrono polygon detail outcome core accumulators graph histogram coroutine2 multiprecision type_erasure poly_collection bimap context python geometry asio boost_install compute mp11 xpressive disjoint_sets spirit graph_parallel foreach logic test atomic type_traits date_time pending thread iostreams iterator qvm circular_buffer locale function log beast optional functional integer container concept assert dynamic_bitset unordered range io conversion type_index serialization any dll predef align concept_check assign phoenix stacktrace format convert hana parameter metaparse mpl proto heap multi_array lambda parameter_python math random filesystem rational sort boostcpp.jam headers gil container_hash throw_exception interprocess tokenizer winapi smart_ptr wave custom-boost
It worked fine with Boost 1.69. It also works with 1.70 on CentOS 7, ubuntu 18.04, ubuntu 19.04 and Kali 2019.2.
I am using the default compiler on a x86_64 machine.
The master branch hasn't been updated in a while.
As a result bcp can't be built within a checkout of boostorg/boost version 1.86, since they're using the master branch of bcp.
Using this script:
tar -xjf boost_1_71_0.tar.bz2
cd boost_1_71_0
./bootstrap.sh
./b2 tools/bcp/
mkdir nsboost
./dist/bin/bcp --namespace=nsboost boost libs tools status LICENSE_1_0.txt b2 bjam boost-build.jam boostcpp.jam ./nsboost
cd nsboost
./bootstrap.sh
./b2
I get this:
.
gcc.compile.c++ bin.v2/libs/python/build/gcc-7/release/python-2.7/threading-multi/visibility-hidden/object/inheritance.o
In file included from ./boost/unordered/detail/set.hpp:6:0,
from ./boost/unordered/unordered_set.hpp:20,
from ./boost/unordered_set.hpp:17,
from ./boost/graph/adjacency_list.hpp:21,
from libs/python/src/object/inheritance.cpp:11:
./boost/unordered/detail/implementation.hpp:1606:52: error: ‘boost’ has not been declared
BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 1, boost)
^
./boost/unordered/detail/implementation.hpp:1583:5: note: in definition of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x) \
^~~~~~~~~~
./boost/unordered/detail/implementation.hpp:1583:56: error: expected unqualified-id before ‘const’
namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x) \
^
./boost/unordered/detail/implementation.hpp:1606:9: note: in expansion of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 1, boost)
^
./boost/unordered/detail/implementation.hpp:1583:56: error: expected ‘)’ before ‘const’
namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x) \
^
./boost/unordered/detail/implementation.hpp:1606:9: note: in expansion of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 1, boost)
^
./boost/unordered/detail/implementation.hpp:1583:63: error: expected initializer before ‘x’
namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x) \
^
./boost/unordered/detail/implementation.hpp:1606:9: note: in expansion of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 1, boost)
^
./boost/unordered/detail/implementation.hpp:1607:52: error: ‘boost’ has not been declared
BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 2, boost)
^
./boost/unordered/detail/implementation.hpp:1583:5: note: in definition of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x) \
^~~~~~~~~~
./boost/unordered/detail/implementation.hpp:1583:56: error: expected unqualified-id before ‘const’
namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x) \
^
./boost/unordered/detail/implementation.hpp:1607:9: note: in expansion of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 2, boost)
^
./boost/unordered/detail/implementation.hpp:1583:56: error: expected ‘)’ before ‘const’
namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x) \
^
./boost/unordered/detail/implementation.hpp:1607:9: note: in expansion of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 2, boost)
^
./boost/unordered/detail/implementation.hpp:1583:63: error: expected initializer before ‘x’
namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x) \
^
./boost/unordered/detail/implementation.hpp:1607:9: note: in expansion of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 2, boost)
^
./boost/unordered/detail/implementation.hpp:1608:52: error: ‘boost’ has not been declared
BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 3, boost)
^
./boost/unordered/detail/implementation.hpp:1583:5: note: in definition of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x) \
^~~~~~~~~~
./boost/unordered/detail/implementation.hpp:1583:56: error: expected unqualified-id before ‘const’
namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x) \
^
./boost/unordered/detail/implementation.hpp:1608:9: note: in expansion of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 3, boost)
^
./boost/unordered/detail/implementation.hpp:1583:56: error: expected ‘)’ before ‘const’
namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x) \
^
./boost/unordered/detail/implementation.hpp:1608:9: note: in expansion of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 3, boost)
^
./boost/unordered/detail/implementation.hpp:1583:63: error: expected initializer before ‘x’
namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x) \
^
./boost/unordered/detail/implementation.hpp:1608:9: note: in expansion of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 3, boost)
^
./boost/unordered/detail/implementation.hpp:1609:52: error: ‘boost’ has not been declared
BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 4, boost)
^
./boost/unordered/detail/implementation.hpp:1583:5: note: in definition of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x) \
^~~~~~~~~~
./boost/unordered/detail/implementation.hpp:1583:56: error: expected unqualified-id before ‘const’
namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x) \
^
./boost/unordered/detail/implementation.hpp:1609:9: note: in expansion of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 4, boost)
^
./boost/unordered/detail/implementation.hpp:1583:56: error: expected ‘)’ before ‘const’
namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x) \
^
./boost/unordered/detail/implementation.hpp:1609:9: note: in expansion of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 4, boost)
^
./boost/unordered/detail/implementation.hpp:1583:63: error: expected initializer before ‘x’
namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x) \
^
./boost/unordered/detail/implementation.hpp:1609:9: note: in expansion of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 4, boost)
^
./boost/unordered/detail/implementation.hpp:1610:52: error: ‘boost’ has not been declared
BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 5, boost)
^
./boost/unordered/detail/implementation.hpp:1583:5: note: in definition of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x) \
^~~~~~~~~~
./boost/unordered/detail/implementation.hpp:1583:56: error: expected unqualified-id before ‘const’
namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x) \
^
./boost/unordered/detail/implementation.hpp:1610:9: note: in expansion of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 5, boost)
^
./boost/unordered/detail/implementation.hpp:1583:56: error: expected ‘)’ before ‘const’
namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x) \
^
./boost/unordered/detail/implementation.hpp:1610:9: note: in expansion of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 5, boost)
^
./boost/unordered/detail/implementation.hpp:1583:63: error: expected initializer before ‘x’
namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x) \
^
./boost/unordered/detail/implementation.hpp:1610:9: note: in expansion of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 5, boost)
^
./boost/unordered/detail/implementation.hpp:1611:52: error: ‘boost’ has not been declared
BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 6, boost)
^
./boost/unordered/detail/implementation.hpp:1583:5: note: in definition of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x) \
^~~~~~~~~~
./boost/unordered/detail/implementation.hpp:1583:56: error: expected unqualified-id before ‘const’
namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x) \
^
./boost/unordered/detail/implementation.hpp:1611:9: note: in expansion of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 6, boost)
^
./boost/unordered/detail/implementation.hpp:1583:56: error: expected ‘)’ before ‘const’
namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x) \
^
./boost/unordered/detail/implementation.hpp:1611:9: note: in expansion of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 6, boost)
^
./boost/unordered/detail/implementation.hpp:1583:63: error: expected initializer before ‘x’
namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x) \
^
./boost/unordered/detail/implementation.hpp:1611:9: note: in expansion of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 6, boost)
^
./boost/unordered/detail/implementation.hpp:1612:52: error: ‘boost’ has not been declared
BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 7, boost)
^
./boost/unordered/detail/implementation.hpp:1583:5: note: in definition of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x) \
^~~~~~~~~~
./boost/unordered/detail/implementation.hpp:1583:56: error: expected unqualified-id before ‘const’
namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x) \
^
./boost/unordered/detail/implementation.hpp:1612:9: note: in expansion of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 7, boost)
^
./boost/unordered/detail/implementation.hpp:1583:56: error: expected ‘)’ before ‘const’
namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x) \
^
./boost/unordered/detail/implementation.hpp:1612:9: note: in expansion of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 7, boost)
^
./boost/unordered/detail/implementation.hpp:1583:63: error: expected initializer before ‘x’
namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x) \
^
./boost/unordered/detail/implementation.hpp:1612:9: note: in expansion of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 7, boost)
^
./boost/unordered/detail/implementation.hpp:1613:52: error: ‘boost’ has not been declared
BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 8, boost)
^
./boost/unordered/detail/implementation.hpp:1583:5: note: in definition of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x) \
^~~~~~~~~~
./boost/unordered/detail/implementation.hpp:1583:56: error: expected unqualified-id before ‘const’
namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x) \
^
./boost/unordered/detail/implementation.hpp:1613:9: note: in expansion of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 8, boost)
^
./boost/unordered/detail/implementation.hpp:1583:56: error: expected ‘)’ before ‘const’
namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x) \
^
./boost/unordered/detail/implementation.hpp:1613:9: note: in expansion of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 8, boost)
^
./boost/unordered/detail/implementation.hpp:1583:63: error: expected initializer before ‘x’
namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x) \
^
./boost/unordered/detail/implementation.hpp:1613:9: note: in expansion of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 8, boost)
^
./boost/unordered/detail/implementation.hpp:1614:52: error: ‘boost’ has not been declared
BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 9, boost)
^
./boost/unordered/detail/implementation.hpp:1583:5: note: in definition of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x) \
^~~~~~~~~~
./boost/unordered/detail/implementation.hpp:1583:56: error: expected unqualified-id before ‘const’
namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x) \
^
./boost/unordered/detail/implementation.hpp:1614:9: note: in expansion of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 9, boost)
^
./boost/unordered/detail/implementation.hpp:1583:56: error: expected ‘)’ before ‘const’
namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x) \
^
./boost/unordered/detail/implementation.hpp:1614:9: note: in expansion of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 9, boost)
^
./boost/unordered/detail/implementation.hpp:1583:63: error: expected initializer before ‘x’
namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x) \
^
./boost/unordered/detail/implementation.hpp:1614:9: note: in expansion of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 9, boost)
^
./boost/unordered/detail/implementation.hpp:1615:53: error: ‘boost’ has not been declared
BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 10, boost)
^
./boost/unordered/detail/implementation.hpp:1583:5: note: in definition of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x) \
^~~~~~~~~~
./boost/unordered/detail/implementation.hpp:1583:56: error: expected unqualified-id before ‘const’
namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x) \
^
./boost/unordered/detail/implementation.hpp:1615:9: note: in expansion of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 10, boost)
^
./boost/unordered/detail/implementation.hpp:1583:56: error: expected ‘)’ before ‘const’
namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x) \
^
./boost/unordered/detail/implementation.hpp:1615:9: note: in expansion of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 10, boost)
^
./boost/unordered/detail/implementation.hpp:1583:63: error: expected initializer before ‘x’
namespace_::tuple<BOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x) \
^
./boost/unordered/detail/implementation.hpp:1615:9: note: in expansion of macro ‘BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE’
BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(1, 10, boost)
^
"g++" -fvisibility-inlines-hidden -fPIC -m64 -pthread -O3 -finline-functions -Wno-inline -Wall -fvisibility=hidden -DBOOST_ALL_NO_LIB=1 -DBOOST_PYTHON_SOURCE -DNDEBUG -I"." -I"/usr/include/python2.7" -c -o "bin.v2/libs/python/build/gcc-7/release/python-2.7/threading-multi/visibility-hidden/object/inheritance.o" "libs/python/src/object/inheritance.cpp"
...failed gcc.compile.c++ bin.v2/libs/python/build/gcc-7/release/python-2.7/threading-multi/visibility-hidden/object/inheritance.o...
...failed updating 1 target...
It appears that the boost
inside the BOOST_UNORDERED_CONSTRUCT_FROM_TUPLE
macro should be nsboost
.
CAUTION: don't know how to trace depenencies through macro: " <memory>" in file: boost\exception\detail\shared_ptr.hpp
// before bcp (normally use)
#include <boost/foo/bar.hpp>
boost::foo::bar bar;
// after bcp (ideally use)
#include <toast/foo/bar.hpp>
toast::foo::bar bar;
#include <boost/foo/bar.hpp>
with toast::foo::bar bar
insteadI tried
bcp regex config build /tmp/dest
(I don't care about the namespace things and I'm aware they may not work anyway.)
Trying to build in /tmp/dest
caused an error with boost-install
missing, so I added boost_install
. Then log
and predef
. Then there's an error I can't seem to fix:
error: Unable to find file or target named
error: '/boost/headers'
error: referred to from project at
error: 'libs/atomic/build'
bcp uses a couple of features that have been removed from boost::filesystem in the 1.85.0 release of boost.
See https://www.boost.org/doc/libs/1_85_0/libs/filesystem/doc/deprecated.html
As a result bcp can't be built anymore using the latest version.
It looks like most of the issues are functions that had their name changed, or definitions that moved to a different header.
This was fixed on the develop branch, but master hasn't been updated yet.
When using bcp.exe to create a boost subset with a new namespace, building the subset is broken because in the Jamfile the import for boost_install has had the "boost_" portion renamed to the new namespace.
Build\boost>.\dist\bin\bcp.exe --namespace=myboost --namespace-alias regex log headers predef config build boost_install ..\foo
Build\boost>cd ..\foo
Build\foo>.\bootstrap.bat
Build\foo>.\b2 toolset=msvc-14.1 --with-regex --with-log
boost-install.jam: No such file or directory
Jamroot:307: in boost-install
ERROR: rule "boost-install.boost-install" unknown in module "Jamfile<Build\foo>".
libs\atomic\build\Jamfile.v2:38: in modules.load
Using bcp with namespace alias breaks the Jamroot in at least two locations:
In previous releases (specifically 1.79.0 and before) I could do:
bcp build core system stacktrace /tmp/test
and /tmp/test
includes bootstrap.sh
, boost-build.jam
, and so on. All the infrastructure needed so I can just run bootstrap.sh
and then b2
to build the necessary libraries. But in 1.81.0 it does not. (I've no idea why: it looks like bcp itself is identical in the two versions.)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.