Building Boost, eventually
Hi, I finally got some time time to work on a Boost library and I am, as usual, fighting with bjam. === 14:58:08 [alainm@pollux boost]# ./bootstrap.sh --with-toolset=intel-linux Building B2 engine.. ... icpx (ICX) 2021.1 Beta 20200304 # why not icpc ? ...
icpx -x c++ -std=c++11 -O3 -s -static -DNDEBUG .... -o b2 ld: cannot find -lstdc++ ld: cannot find -lstdc++ ===
The problem here is the -static option, as libstdc++ is not available as an archive on linux (not on the ones I use). I submitted a fix, with no effect: https://github.com/bfgroup/b2/pull/133/files Also apparently some good soul (thank you!) started working on a CMake alternative that just work (checked twice). Its only issue is that the tests don't seems to have moved to CMake. So my question is: 1) Am I better off trying to port the testing of Boost.MPI to CMake and just forget about bjam or, 2) Try to invoke some demonic entity to get bjam working with intel-linux. What is the recommended build method recommended for libraries developers at this point ? Best regards ---- Alain Miniussi DSI, Pôles Calcul et Genie Log. Observatoire de la Côte d'Azur Tél. : +33492003009 (Mont-Gros) +33483618544 (Sophia Antipolis) +33609650665
On 2/9/22 17:04, Alain O' Miniussi via Boost wrote:
Hi,
I finally got some time time to work on a Boost library and I am, as usual, fighting with bjam. === 14:58:08 [alainm@pollux boost]# ./bootstrap.sh --with-toolset=intel-linux Building B2 engine.. ... icpx (ICX) 2021.1 Beta 20200304 # why not icpc ? ...
icpx -x c++ -std=c++11 -O3 -s -static -DNDEBUG .... -o b2 ld: cannot find -lstdc++ ld: cannot find -lstdc++ ===
The problem here is the -static option, as libstdc++ is not available as an archive on linux (not on the ones I use).
I submitted a fix, with no effect: https://github.com/bfgroup/b2/pull/133/files
Also apparently some good soul (thank you!) started working on a CMake alternative that just work (checked twice). Its only issue is that the tests don't seems to have moved to CMake. So my question is: 1) Am I better off trying to port the testing of Boost.MPI to CMake and just forget about bjam or, 2) Try to invoke some demonic entity to get bjam working with intel-linux.
What is the recommended build method recommended for libraries developers at this point ?
Boost.Build is still the official way to build and test Boost libraries. In particular, the official Boost packages (and probably most, if not all, downstream packages) are built using Boost.Build. CMake support is experimental. I suppose, you can use whatever suits you best in your workflow, but you should still ensure Boost.Build works correctly in all configurations you intend to support.
On Wed, 9 Feb 2022 at 15:15, Alain O' Miniussi via Boost
Hi,
I finally got some time time to work on a Boost library and I am, as usual, fighting with bjam. === 14:58:08 [alainm@pollux boost]# ./bootstrap.sh --with-toolset=intel-linux Building B2 engine.. ...
As a workaround, simply, build the B2 itself with GCC, which presumably is the default on most Linux systems, by just ./bootstrap.sh Then use intel-linux toolset to build Boost libraries b2 --toolset=intel-linux The two, building B2 and building Boost, are orthogonal actions, so chances are Boost will build with intel-linux just fine. Best regards, -- Mateusz Loskot, http://mateusz.loskot.net
Thanks Mateusz
On Wed, 9 Feb 2022 at 15:15, Alain O' Miniussi via Boost ... As a workaround, simply, build the B2 itself with GCC, which presumably is the default on most Linux systems, by just ./bootstrap.sh
Then use intel-linux toolset to build Boost libraries b2 --toolset=intel-linux
The two, building B2 and building Boost, are orthogonal actions, so chances are Boost will build with intel-linux just fine.
Thanks, I'm trying that. Is there a way to force the compiler name ? right now it uses icpx instead of icpc which trigger a lot of warnings and trigger a few crashes in clang. Best regards
On Wed, 9 Feb 2022 at 16:09, Alain O' Miniussi via Boost
On Wed, 9 Feb 2022 at 15:15, Alain O' Miniussi via Boost ... As a workaround, simply, build the B2 itself with GCC, which presumably is the default on most Linux systems, by just ./bootstrap.sh
Then use intel-linux toolset to build Boost libraries b2 --toolset=intel-linux
The two, building B2 and building Boost, are orthogonal actions, so chances are Boost will build with intel-linux just fine.
Thanks, I'm trying that. Is there a way to force the compiler name ? right now it uses icpx instead of icpc which trigger a lot of warnings and trigger a few crashes in clang.
Altering the PATH to remove icpx and prioritise icpc? as per https://lists.boost.org/boost-users/2021/08/91012.php Configuring the toolset in user-config.jam? as per https://lists.boost.org/boost-users/2021/08/91013.php? Best regards, -- Mateusz Loskot, http://mateusz.loskot.net
participants (3)
-
Alain O' Miniussi
-
Andrey Semashev
-
Mateusz Loskot