Open DominikDeak opened 10 months ago
Hello @DominikDeak ! Boost Cobalt requires C++20 (https://www.boost.org/doc/libs/1_84_0/libs/cobalt/doc/html/index.html) due coroutines. It's explicit in its project too: https://github.com/boostorg/cobalt/blob/develop/CMakeLists.txt#L68C49-L68C59
I see your profile is using compiler.cppstd=14
which does not fit the expected standard. Please, try with compiler.cppstd=20
.
It's clearly a bug if it doesn't build out of the box. cobalt shouldn't be enabled by default when compiler.cppstd
is not C++20 or higher, or if compiler.cppstd
is not set but default C++ standard of compiler is not C++20 or higher (but here C++20 should be injected under the hood if supported by compiler, which is not done in boost recipe on the contrary of most CCI recipes with better C++ standard management through target_compile_features()
in CMake based recipes for example. It's an old known big flaw of this recipe).
Moreover this recipe has incorrect assumption about default C++ standard of apple-clang, it's C++98 irrespective of apple-clang version.
I don't know where these informations about apple-clang introduced by https://github.com/conan-io/conan-center-index/pull/21747 come from but it's wrong: https://github.com/conan-io/conan-center-index/blob/65499b379d6e0f0053985b0070878dc14868c7ee/recipes/boost/all/conanfile.py#L164-L173 https://github.com/conan-io/conan-center-index/blob/65499b379d6e0f0053985b0070878dc14868c7ee/recipes/boost/all/conanfile.py#L175-L184
apple-clang 14 & 15 support C++20 standard (and C++11 obviously), but their default C++ standard is C++98.
@SpaceIm Right, I added a revert to the PR https://github.com/conan-io/conan-center-index/pull/22554
Indeed Apple Clang still uses 98 by default. What changed was XCode using C++20, but it does not reflect apple clang directly.
I see your profile is using compiler.cppstd=14 which does not fit the expected standard. Please, try with compiler.cppstd=20.
@uilianries Thanks for the tip, but unfortunately, building with compiler.cppstd=20
emits a different kind of error, see log snippet below.
In file included from libs/cobalt/src/detail/exception.cpp:8:
In file included from ./boost/cobalt/detail/exception.hpp:12:
./boost/cobalt/config.hpp:55:10: fatal error: 'memory_resource' file not found
#include <memory_resource>
^~~~~~~~~~~~~~~~~
1 error generated.
In file included from libs/cobalt/src/error.cpp:6:
In file included from ./boost/cobalt/error.hpp:8:
./boost/cobalt/config.hpp:55:10: fatal error: 'memory_resource' file not found
#include <memory_resource>
^~~~~~~~~~~~~~~~~
1 error generated.
In file included from libs/cobalt/src/detail/util.cpp:6:
In file included from ./boost/cobalt/detail/util.hpp:8:
./boost/cobalt/config.hpp:55:10: fatal error: 'memory_resource' file not found
#include <memory_resource>
^~~~~~~~~~~~~~~~~
1 error generated.
In file included from libs/cobalt/src/channel.cpp:8:
In file included from ./boost/cobalt/channel.hpp:11:
In file included from ./boost/cobalt/this_thread.hpp:11:
./boost/cobalt/config.hpp:55:10: fatal error: 'memory_resource' file not found
#include <memory_resource>
^~~~~~~~~~~~~~~~~
1 error generated.
In file included from libs/cobalt/src/this_thread.cpp:8:
In file included from ./boost/cobalt/this_thread.hpp:11:
./boost/cobalt/config.hpp:55:10: fatal error: 'memory_resource' file not found
#include <memory_resource>
^~~~~~~~~~~~~~~~~
1 error generated.
In file included from libs/cobalt/src/main.cpp:8:
In file included from ./boost/cobalt/main.hpp:9:
In file included from ./boost/cobalt/this_coro.hpp:8:
In file included from ./boost/cobalt/this_thread.hpp:11:
./boost/cobalt/config.hpp:55:10: fatal error: 'memory_resource' file not found
#include <memory_resource>
^~~~~~~~~~~~~~~~~
1 error generated.
In file included from libs/cobalt/src/thread.cpp:8:
In file included from ./boost/cobalt/thread.hpp:11:
In file included from ./boost/cobalt/detail/thread.hpp:11:
./boost/cobalt/config.hpp:55:10: fatal error: 'memory_resource' file not found
#include <memory_resource>
^~~~~~~~~~~~~~~~~
libboost_cobalt.dylib for lack of
detail/exception.o... ...skipped
libboost_cobalt.dylib for lack of
libboost_cobalt.dylib... ...failed updating 7 targets... boost/1.84.0: boost/1.84.0: ERROR: Package '6bb499797e4072d42a1270cfd011db2a06dec593' build failed boost/1.84.0: WARN: Build folder /Users/dom/.conan/data/boost/1.84.0/_/_/build/6bb499797e4072d42a1270cfd011db2a06dec593/build-release ERROR: boost/1.84.0: Error in build() method, line 935 self.run(full_command) ConanException: Error 1 while executing b2 -q numa=on target-os=darwin architecture=arm address-model=64 binary-format=mach-o abi=aapcs --layout=system --user-config=/Users/dom/.conan/data/boost/1.84.0/_/_/source/src/tools/build/user-config.jam -sNO_ZLIB=0 -sNO_BZIP2=0 -sNO_LZMA=0 -sNO_ZSTD=0 boost.locale.icu=off --disable-icu boost.locale.iconv=on boost.locale.iconv.lib=libiconv threading=multi visibility=hidden link=shared variant=release --with-atomic --with-chrono --with-cobalt --with-container --with-context --with-contract --with-coroutine --with-date_time --with-exception --with-fiber --with-filesystem --with-graph --with-iostreams --with-json --with-locale --with-log --with-math --with-nowide --with-program_options --with-random --with-regex --with-serialization --with-stacktrace --with-system --with-test --with-thread --with-timer --with-type_erasure --with-url --with-wave toolset=clang-darwin cxxflags=-std=c++20 pch=on -sLIBBACKTRACE_PATH=/Users/dom/.conan/data/libbacktrace/cci.20210118/_/_/package/bcd3acb45732a7b421d1472bb9724eb6854281a0 -sICONV_PATH=/Users/dom/.conan/data/libiconv/1.17/_/_/package/bcd3acb45732a7b421d1472bb9724eb6854281a0 linkflags="-stdlib=libc++ -mmacosx-version-min=11.0" cxxflags="-fPIC -stdlib=libc++ -mmacosx-version-min=11.0 -DBOOST_STACKTRACE_ADDR2LINE_LOCATION=/usr/bin/addr2line" install --prefix=/Users/dom/.conan/data/boost/1.84.0/_/_/package/6bb499797e4072d42a1270cfd011db2a06dec593 -j8 --abbreviate-paths -d0 --debug-configuration --build-dir="/Users/dom/.conan/data/boost/1.84.0/_/_/build/6bb499797e4072d42a1270cfd011db2a06dec593/build-release" error: Command exited with error. ```
Modified conan profile with C++20 standard:
[settings]
os=Macos
os.version=11.0
os_build=Macos
arch=armv8
arch_build=armv8
compiler=apple-clang
compiler.version=14.0
compiler.libcxx=libc++
compiler.cppstd=20
build_type=Release
[options]
[build_requires]
[env]
[conf]
Upon further investigation, seems like <memory_resource>
STL header is not implemented in Xcode 14 build environments, but it was eventually introduced in Xcode 15. (See Polymorphic memory resources table entry.) Currently I'm stuck with Xcode 14 for technical reasons and can't upgrade right now.
At any rate, I think the solution for this is to implicitly force -o boost:without_cobalt
on Apple build environments older than Xcode 15.
Hello @DominikDeak we merged an official patch to Boost recently, that is related to C++20 and Macos. I did not test locally, but it could be related to it. Could please try it?
The PR in question is https://github.com/conan-io/conan-center-index/pull/22641
To update your local copy of boost:
conan install -r conancenter --update --requires=boost/1.84.0
@uilianries Thanks for taking the time looking into this, unfortunately the command you gave me generated the error below. Maybe because I'm still on Conan 1?
conan install -r conancenter --update --requires=boost/1.84.0
Conan 1 is on a deprecation path, please consider migrating to Conan 2
usage: conan install [-h] [-g GENERATOR] [-if INSTALL_FOLDER] [-of OUTPUT_FOLDER] [-m [MANIFESTS]] [-mi [MANIFESTS_INTERACTIVE]] [-v [VERIFY]]
[--no-imports] [--build-require] [-j JSON] [-b [BUILD]] [-r REMOTE] [-u] [-l LOCKFILE] [--lockfile-out LOCKFILE_OUT]
[-e ENV_HOST] [-e:b ENV_BUILD] [-e:h ENV_HOST] [-o OPTIONS_HOST] [-o:b OPTIONS_BUILD] [-o:h OPTIONS_HOST]
[-pr PROFILE_HOST] [-pr:b PROFILE_BUILD] [-pr:h PROFILE_HOST] [-s SETTINGS_HOST] [-s:b SETTINGS_BUILD]
[-s:h SETTINGS_HOST] [-c CONF_HOST] [-c:b CONF_BUILD] [-c:h CONF_HOST] [--lockfile-node-id LOCKFILE_NODE_ID]
[--require-override REQUIRE_OVERRIDE]
path_or_reference [reference]
conan install: error: the following arguments are required: path_or_reference
ERROR: Exiting with code: 2
Anyway, I tried running the command below instead, still getting the same build errors as mentioned here
conan install boost/1.84.0@ --update --build -r conancenter
Thanks for taking the time looking into this, unfortunately the command you gave me generated the error below. Maybe because I'm still on Conan 1?
@DominikDeak Yes, you are correct, it's because you are running Conan 1.x
Anyway, I tried running the command below instead, still getting the same build errors as mentioned https://github.com/conan-io/conan-center-index/issues/22548#issuecomment-1913777164
That's unfortunate, let me try to build Boost with Cobalt locally (Mac M1). Plus, it could be a bug in boost, because Cobalt is new, but at same time I know they really test hard everything there.
@DominikDeak You can build with Conan 1.x, I'm able to do that here. But you have to pass -s compiler.cppstd=20
. In Conan 1.x the cppstd
was introduced after 1.0, that's why is not present by default, but is highly recommends having it in your profile. In Conan 2.x it's configured by default. Plus, I would recommend moving to Conan 2.x when possible. Anyway, here is my build result:
% conan create all boost/1.84.0@ -o boost:without_cobalt=False -s:h compiler.cppstd=20
Conan 1 is on a deprecation path, please consider migrating to Conan 2
Exporting package recipe
boost/1.84.0 exports: File 'conandata.yml' found. Exporting it...
boost/1.84.0 exports: Copied 1 '.yml' file: conandata.yml
boost/1.84.0: Calling export()
boost/1.84.0: Copied 1 '.yml' file: dependencies-1.84.0.yml
boost/1.84.0: Calling export_sources()
1.84.0:
- patch_description: Optional flag to specify iconv from either libc of libiconv
patch_file: patches/1.82.0-locale-iconv-library-option.patch
patch_type: conan
- patch_description: Fix compilation with cppstd=20 on libcxx platforms (e.g. MacOS)
patch_file: patches/1.84.0-reimplement-string_set-as-any-string.patch
patch_source: https://github.com/boostorg/locale/commit/c5e8f02c903696a213fc4b710f6740ccd1f07f4e
patch_type: official
sources:
1.84.0:
sha256: cc4b893acf645c9d4b698e9a0f08ca8846aa5d6c68275c14c3e7949c24109454
url:
- https://boostorg.jfrog.io/artifactory/main/release/1.84.0/source/boost_1_84_0.tar.bz2
- https://sourceforge.net/projects/boost/files/boost/1.84.0/boost_1_84_0.tar.bz2
boost/1.84.0: A new conanfile.py version was exported
boost/1.84.0: Folder: /Users/uilian/.conan/data/boost/1.84.0/_/_/export
boost/1.84.0: Using the exported files summary hash as the recipe revision: 7604ce1e7485780469dffb6430f232ea
boost/1.84.0: Exported revision: 7604ce1e7485780469dffb6430f232ea
Configuration:
[settings]
arch=armv8
arch_build=armv8
build_type=Release
compiler=apple-clang
compiler.cppstd=20
compiler.libcxx=libc++
compiler.version=14
os=Macos
os_build=Macos
[options]
boost:without_cobalt=False
[build_requires]
[env]
[conf]
tools.system.package_manager:mode=install
boost/1.84.0: Forced build from source
Version ranges solved
Version range '>=1.2.11 <2' required by 'boost/1.84.0' resolved to 'zlib/1.2.13' in local cache
boost/1.84.0 (test package): Installing package
Requirements
boost/1.84.0 from local cache - Cache
bzip2/1.0.8 from 'conancenter' - Cache
libbacktrace/cci.20210118 from 'conancenter' - Cache
libiconv/1.17 from 'conancenter' - Cache
zlib/1.2.13 from 'conancenter' - Cache
Packages
boost/1.84.0:573e1d6c15335a318a1bcebf566fa1d4526dd781 - Build
bzip2/1.0.8:238a93dc813ca1550968399f1f8925565feeff8e - Cache
libbacktrace/cci.20210118:240c2182163325b213ca6886a7614c8ed2bf1738 - Cache
libiconv/1.17:240c2182163325b213ca6886a7614c8ed2bf1738 - Cache
zlib/1.2.13:240c2182163325b213ca6886a7614c8ed2bf1738 - Cache
Build requirements
b2/4.10.1 from 'conancenter' - Cache
Build requirements packages
b2/4.10.1:4e1751b0fa83186dec61c3f59d918b6b17b28aad - Cache
Installing (downloading, building) binaries...
b2/4.10.1: Already installed!
bzip2/1.0.8: Already installed!
libbacktrace/cci.20210118: Already installed!
libiconv/1.17: Already installed!
libiconv/1.17: Appending PATH environment var: /Users/uilian/.conan/data/libiconv/1.17/_/_/package/240c2182163325b213ca6886a7614c8ed2bf1738/bin
zlib/1.2.13: Already installed!
boost/1.84.0: Applying build-requirement: b2/4.10.1
boost/1.84.0: Configuring sources in /Users/uilian/.conan/data/boost/1.84.0/_/_/source/src
Downloading boost_1_84_0.tar.bz2 completed [120225.14k] boost/1.84.0: /1.84.0:
boost/1.84.0:
boost/1.84.0: Apply patch (conan): Optional flag to specify iconv from either libc of libiconv
boost/1.84.0: Apply patch (official): Fix compilation with cppstd=20 on libcxx platforms (e.g. MacOS)
boost/1.84.0: Building your package in /Users/uilian/.conan/data/boost/1.84.0/_/_/build/573e1d6c15335a318a1bcebf566fa1d4526dd781
boost/1.84.0: Generator txt created conanbuildinfo.txt
boost/1.84.0: Calling generate()
boost/1.84.0: Aggregating env generators
boost/1.84.0: Calling build()
boost/1.84.0: WARN: replace_in_file didn't find pattern '/* thread_local */' in '/Users/uilian/.conan/data/boost/1.84.0/_/_/source/src/boost/stacktrace/detail/libbacktrace_impls.hpp' file.
boost/1.84.0: WARN: replace_in_file didn't find pattern '/* static __thread */' in '/Users/uilian/.conan/data/boost/1.84.0/_/_/source/src/boost/stacktrace/detail/libbacktrace_impls.hpp' file.
boost/1.84.0: WARN: replace_in_file didn't find pattern 'local generic-os = [ set.difference $(all-os) : aix darwin vxworks solaris osf hpux ] ;' in '/Users/uilian/.conan/data/boost/1.84.0/_/_/source/src/tools/build/src/tools/gcc.jam' file.
boost/1.84.0: WARN: replace_in_file didn't find pattern 'local no-threading = android beos haiku sgi darwin vxworks ;' in '/Users/uilian/.conan/data/boost/1.84.0/_/_/source/src/tools/build/src/tools/gcc.jam' file.
boost/1.84.0: WARN: Patching user-config.jam
boost/1.84.0: WARN: Using the new toolchains and generators without specifying a build profile (e.g: -pr:b=default) is discouraged and might cause failures and unexpected behavior
boost/1.84.0: WARN:
using zlib : 1.2.13 : <include>"/Users/uilian/.conan/data/zlib/1.2.13/_/_/package/240c2182163325b213ca6886a7614c8ed2bf1738/include" <search>"/Users/uilian/.conan/data/zlib/1.2.13/_/_/package/240c2182163325b213ca6886a7614c8ed2bf1738/lib" <name>z ;
using bzip2 : 1.0.8 : <include>"/Users/uilian/.conan/data/bzip2/1.0.8/_/_/package/238a93dc813ca1550968399f1f8925565feeff8e/include" <search>"/Users/uilian/.conan/data/bzip2/1.0.8/_/_/package/238a93dc813ca1550968399f1f8925565feeff8e/lib" <name>bz2 ;
using "clang-darwin" : : "/Library/Developer/CommandLineTools/usr/bin/clang++" -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -arch arm64 :
<archiver>"/Library/Developer/CommandLineTools/usr/bin/ar" <ranlib>"/Library/Developer/CommandLineTools/usr/bin/ranlib" <compileflags>"-I/Users/uilian/.conan/data/libbacktrace/cci.20210118/_/_/package/240c2182163325b213ca6886a7614c8ed2bf1738/include" <linkflags>"-L/Users/uilian/.conan/data/libbacktrace/cci.20210118/_/_/package/240c2182163325b213ca6886a7614c8ed2bf1738/lib" ;
boost/1.84.0: WARN: Using the new toolchains and generators without specifying a build profile (e.g: -pr:b=default) is discouraged and might cause failures and unexpected behavior
boost/1.84.0: WARN: b2 -q numa=on target-os=darwin architecture=arm address-model=64 binary-format=mach-o abi=aapcs --layout=system --user-config=/Users/uilian/.conan/data/boost/1.84.0/_/_/source/src/tools/build/user-config.jam -sNO_ZLIB=0 -sNO_BZIP2=0 -sNO_LZMA=1 -sNO_ZSTD=1 boost.locale.icu=off --disable-icu boost.locale.iconv=on boost.locale.iconv.lib=libiconv threading=multi visibility=hidden link=static variant=release --with-atomic --with-chrono --with-cobalt --with-container --with-context --with-contract --with-coroutine --with-date_time --with-exception --with-fiber --with-filesystem --with-graph --with-iostreams --with-json --with-locale --with-log --with-math --with-nowide --with-program_options --with-random --with-regex --with-serialization --with-stacktrace --with-system --with-test --with-thread --with-timer --with-type_erasure --with-url --with-wave toolset=clang-darwin cxxstd=20 pch=on -sLIBBACKTRACE_PATH=/Users/uilian/.conan/data/libbacktrace/cci.20210118/_/_/package/240c2182163325b213ca6886a7614c8ed2bf1738 -sICONV_PATH=/Users/uilian/.conan/data/libiconv/1.17/_/_/package/240c2182163325b213ca6886a7614c8ed2bf1738 linkflags="-stdlib=libc++" cxxflags="-fPIC -stdlib=libc++ -DBOOST_STACKTRACE_ADDR2LINE_LOCATION=/usr/bin/addr2line" install --prefix=/Users/uilian/.conan/data/boost/1.84.0/_/_/package/573e1d6c15335a318a1bcebf566fa1d4526dd781 -j10 --abbreviate-paths -d0 --debug-configuration --build-dir="/Users/uilian/.conan/data/boost/1.84.0/_/_/build/573e1d6c15335a318a1bcebf566fa1d4526dd781/build-release"
----Running------
> . "/Users/uilian/.conan/data/boost/1.84.0/_/_/build/573e1d6c15335a318a1bcebf566fa1d4526dd781/build-release/conan/conanbuild.sh" && b2 -q numa=on target-os=darwin architecture=arm address-model=64 binary-format=mach-o abi=aapcs --layout=system --user-config=/Users/uilian/.conan/data/boost/1.84.0/_/_/source/src/tools/build/user-config.jam -sNO_ZLIB=0 -sNO_BZIP2=0 -sNO_LZMA=1 -sNO_ZSTD=1 boost.locale.icu=off --disable-icu boost.locale.iconv=on boost.locale.iconv.lib=libiconv threading=multi visibility=hidden link=static variant=release --with-atomic --with-chrono --with-cobalt --with-container --with-context --with-contract --with-coroutine --with-date_time --with-exception --with-fiber --with-filesystem --with-graph --with-iostreams --with-json --with-locale --with-log --with-math --with-nowide --with-program_options --with-random --with-regex --with-serialization --with-stacktrace --with-system --with-test --with-thread --with-timer --with-type_erasure --with-url --with-wave toolset=clang-darwin cxxstd=20 pch=on -sLIBBACKTRACE_PATH=/Users/uilian/.conan/data/libbacktrace/cci.20210118/_/_/package/240c2182163325b213ca6886a7614c8ed2bf1738 -sICONV_PATH=/Users/uilian/.conan/data/libiconv/1.17/_/_/package/240c2182163325b213ca6886a7614c8ed2bf1738 linkflags="-stdlib=libc++" cxxflags="-fPIC -stdlib=libc++ -DBOOST_STACKTRACE_ADDR2LINE_LOCATION=/usr/bin/addr2line" install --prefix=/Users/uilian/.conan/data/boost/1.84.0/_/_/package/573e1d6c15335a318a1bcebf566fa1d4526dd781 -j10 --abbreviate-paths -d0 --debug-configuration --build-dir="/Users/uilian/.conan/data/boost/1.84.0/_/_/build/573e1d6c15335a318a1bcebf566fa1d4526dd781/build-release"
-----------------
notice: found boost-build.jam at /Users/uilian/.conan/data/boost/1.84.0/_/_/source/src/boost-build.jam
notice: loading B2 from /Users/uilian/.conan/data/b2/4.10.1/_/_/package/4e1751b0fa83186dec61c3f59d918b6b17b28aad/bin/.b2/kernel/bootstrap.jam
notice: Loading explicitly specified user configuration file:
/Users/uilian/.conan/data/boost/1.84.0/_/_/source/src/tools/build/user-config.jam
notice: Searching '/Users/uilian/.conan/data/boost/1.84.0/_/_/source/src/tools/build' for user-config configuration file 'user-config.jam'.
notice: Loading user-config configuration file 'user-config.jam' from '/Users/uilian/.conan/data/boost/1.84.0/_/_/source/src/tools/build'.
notice: [zlib] Using pre-installed library
notice: [zlib] Condition
notice: [bzip2] Using pre-installed library
notice: [bzip2] Condition
notice: will use '/Library/Developer/CommandLineTools/usr/bin/clang++' '-isysroot' '/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk' '-arch' 'arm64' for clang-darwin, condition <toolset>clang-15
notice: [zlib] zlib is already configured
notice: [bzip2] bzip is already configured
notice: iostreams: not using lzma compression
notice: iostreams: not using zstd compression
notice: [python-cfg] Configuring python...
notice: [python-cfg] Checking interpreter command "python"...
notice: [python-cfg] running command 'python -c "from sys import *; print('version=%d.%d\nplatform=%s\nprefix=%s\nexec_prefix=%s\nexecutable=%s' %
notice: [python-cfg] no framework directory found; using library path
Performing configuration checks
- default address-model : 64-bit [1]
- default architecture : arm [1]
- cxx11_static_assert : yes [2]
- cxx20_hdr_concepts : yes [2]
- cpp_lib_memory_resource : yes [2]
warning: non-free usage requirements <boost.cobalt.pmr>std ignored
warning: in main-target boost_cobalt at libs/cobalt/build/Jamfile:73
- has std::atomic_ref : no [2]
- has statx : no [2]
- has statx syscall : no [2]
- has init_priority attribute : yes [2]
- has stat::st_blksize : no [2]
- has stat::st_mtim : no [2]
- has stat::st_mtimensec : no [2]
- has stat::st_mtimespec : yes [2]
- has stat::st_birthtim : no [2]
- has stat::st_birthtimensec : no [2]
- has stat::st_birthtimespec : yes [2]
- has fdopendir(O_NOFOLLOW) : yes [2]
- has dirent::d_type : yes [2]
- has POSIX *at APIs : no [2]
- cxx11_auto_declarations : yes [2]
- cxx11_constexpr : yes [2]
- cxx11_defaulted_functions : yes [2]
- cxx11_final : yes [2]
- cxx11_hdr_mutex : yes [2]
- cxx11_hdr_tuple : yes [2]
- cxx11_lambdas : yes [2]
- cxx11_noexcept : yes [2]
- cxx11_nullptr : yes [2]
- cxx11_rvalue_references : yes [2]
- cxx11_template_aliases : yes [2]
- cxx11_thread_local : yes [2]
- cxx11_variadic_templates : yes [2]
- has_icu builds : no [2]
- zlib : yes [3]
- bzip2 : yes [3]
- cxx11_decltype : yes [2]
- cxx11_basic_alignas : yes [2]
- iconv (libc) : no [2]
- iconv (separate) : yes [2]
- cxx11_defaulted_moves : yes [2]
- cxx11_hdr_functional : yes [2]
- cxx11_hdr_type_traits : yes [2]
- cxx11_override : yes [2]
- cxx11_range_based_for : yes [2]
- cxx11_scoped_enums : yes [2]
- cxx11_smart_ptr : yes [2]
- native atomic int32 supported : yes [2]
- native syslog supported : yes [2]
- pthread supports robust mutexes : no [2]
- Boost.Regex is header-only : yes [2]
- lockfree boost::atomic_flag : yes [2]
- gcc visibility : yes [2]
- sfinae_expr : yes [2]
- cxx11_unified_initialization_syntax : yes [2]
- cxx11_hdr_initializer_list : yes [2]
- cxx11_hdr_chrono : yes [2]
- cxx11_numeric_limits : yes [2]
- cxx11_hdr_array : yes [2]
- cxx11_hdr_atomic : yes [2]
- cxx11_allocator : yes [2]
- cxx11_explicit_conversion_operators : yes [2]
- long double support : yes [2]
- cxx11_char16_t : yes [2]
- cxx11_char32_t : yes [2]
- Has Large File Support : yes [2]
- Has attribute init_priority : yes [2]
- std_wstreambuf builds : yes [2]
- std_wstreambuf : yes [2]
- libbacktrace builds : yes [2]
- addr2line builds : yes [2]
- WinDbg builds : no [2]
- cxx11_rvalue_references : yes [4]
- WinDbg builds : no [4]
- WinDbgCached builds : no [2]
- WinDbgCached builds : no [4]
- BOOST_COMP_GNUC >= 4.3.0 : no [2]
- cxx11_hdr_thread : yes [2]
- cxx11_hdr_regex : yes [2]
[1] clng-15
[2] clng-drwn-15/rls/bst.l-lbcnv/bst.l-on/bst.l-off/cxstd-20-iso/lnk-sttc/nm-on/pythn-3.10/thrd-mlt/vsblt-hdn
[3] lnk-sttc
[4] clng-drwn-15/rls/bst.l-lbcnv/bst.l-on/bst.l-off/bld-no/cxstd-20-iso/lnk-sttc/nm-on/pythn-3.10/thrd-mlt/vsblt-hdn
Component configuration:
- atomic : building
- chrono : building
- cobalt : building
- container : building
- context : building
- contract : building
- coroutine : building
- date_time : building
- exception : building
- fiber : building
- filesystem : building
- graph : building
- graph_parallel : not building
- headers : not building
- iostreams : building
- json : building
- locale : building
- log : building
- math : building
- mpi : not building
- nowide : building
- program_options : building
- python : not building
- random : building
- regex : building
- serialization : building
- stacktrace : building
- system : building
- test : building
- thread : building
- timer : building
- type_erasure : building
- url : building
- wave : building
boost/1.84.0: Package '573e1d6c15335a318a1bcebf566fa1d4526dd781' built
boost/1.84.0: Build folder /Users/uilian/.conan/data/boost/1.84.0/_/_/build/573e1d6c15335a318a1bcebf566fa1d4526dd781/build-release
boost/1.84.0: Generated conaninfo.txt
boost/1.84.0: Generated conanbuildinfo.txt
boost/1.84.0: Generating the package
boost/1.84.0: Package folder /Users/uilian/.conan/data/boost/1.84.0/_/_/package/573e1d6c15335a318a1bcebf566fa1d4526dd781
boost/1.84.0: Calling package()
boost/1.84.0: Copied 1 '.txt' file: LICENSE_1_0.txt
boost/1.84.0 package(): Packaged 1 '.txt' file: LICENSE_1_0.txt
boost/1.84.0 package(): Packaged 15186 '.hpp' files
boost/1.84.0 package(): Packaged 149 '.h' files
boost/1.84.0 package(): Packaged 17 files
boost/1.84.0 package(): Packaged 317 '.ipp' files
boost/1.84.0 package(): Packaged 2 '.inc' files: strict_cpp_re.inc, cpp_re.inc
boost/1.84.0 package(): Packaged 43 '.a' files
boost/1.84.0: Package '573e1d6c15335a318a1bcebf566fa1d4526dd781' created
boost/1.84.0: Created package revision 2464492c569a58e249c258708589e5f0
Hello @DominikDeak we merged an official patch to Boost recently, that is related to C++20 and Macos. I did not test locally, but it could be related to it. Could please try it?
The PR in question is #22641
To update your local copy of boost:
conan install -r conancenter --update --requires=boost/1.84.0
Component configuration:
- atomic : building
- chrono : building
- cobalt : not building
- container : building
- context : building
- contract : building
- coroutine : building
- date_time : building
- exception : building
- fiber : building
- filesystem : building
- graph : building
- graph_parallel : not building
- headers : not building
- iostreams : building
- json : building
- locale : building
- log : building
- math : building
- mpi : not building
- nowide : building
- program_options : building
- python : not building
- random : building
- regex : building
- serialization : building
- stacktrace : building
- system : building
- test : building
- thread : building
- timer : building
- type_erasure : building
- url : building
- wave : building
All green on Mac Silicon and Xcode 15.2
@DominikDeak You can build with Conan 1.x, I'm able to do that here. But you have to pass -s compiler.cppstd=20.
Yep, ran again with the switch you have suggested. To be thorough, I also completely reinstalled Conan also deleted the old ~/.conan
folder before reinstalling and trying boost
again.
conan install boost/1.84.0@ --update --build -r conancenter -s compiler.cppstd=20
Unfortunately, even with the cppstd=20
switch, I'm getting the same build error. See full_build_log.txt for details.
In Conan 1.x the cppstd was introduced after 1.0, that's why is not present by default, but is highly recommends having it in your profile.
I have made those changes in the default profile, as per your suggestion earlier. See compiler.cppstd=20
entry. I assume that's what you meant?
[settings]
os=Macos
os.version=11.0
os_build=Macos
arch=armv8
arch_build=armv8
compiler=apple-clang
compiler.version=14.0
compiler.libcxx=libc++
compiler.cppstd=20
build_type=Release
[options]
[build_requires]
[env]
[conf]
I've independently discovered and created a fix for this issue for our internal copy of the Boost package. I'll clean it up and submit it as a PR.
Description
Building boost/1.84.0 fails, because the boost component
cobalt
appears to be missing libraries.Current work-around is building without the
cobalt
component:conan install boost/1.84.0@ -o boost:without_cobalt --build
Package and Environment Details
Conan profile
[settings] os=Macos os.version=11.0 os_build=Macos arch=armv8 arch_build=armv8 compiler=apple-clang compiler.version=14.0 compiler.libcxx=libc++ build_type=Release [options] [conf] [build_requires] [env]
Steps to reproduce
conan install boost/1.84.0@ --build
Logs
Click to expand log
``` boost/1.84.0: Applying build-requirement: b2/4.10.1 Downloading conan_sources.tgz completed [0.41k] Decompressing conan_sources.tgz completed [0.00k] boost/1.84.0: Configuring sources in /Users/dom/.conan/data/boost/1.84.0/_/_/source/src Downloading boost_1_84_0.tar.bz2 completed [120225.14k] boost/1.84.0: /1.84.0: boost/1.84.0: boost/1.84.0: Apply patch (conan): Optional flag to specify iconv from either libc of libiconv boost/1.84.0: Building your package in /Users/dom/.conan/data/boost/1.84.0/_/_/build/e1da00df8136ddc5ecdfd921443e327ff2fd8c2d boost/1.84.0: Generator txt created conanbuildinfo.txt boost/1.84.0: Calling generate() boost/1.84.0: Aggregating env generators boost/1.84.0: Calling build() boost/1.84.0: WARN: replace_in_file didn't find pattern '/* thread_local */' in '/Users/dom/.conan/data/boost/1.84.0/_/_/source/src/boost/stacktrace/detail/libbacktrace_impls.hpp' file. boost/1.84.0: WARN: replace_in_file didn't find pattern '/* static __thread */' in '/Users/dom/.conan/data/boost/1.84.0/_/_/source/src/boost/stacktrace/detail/libbacktrace_impls.hpp' file. boost/1.84.0: WARN: replace_in_file didn't find pattern 'local generic-os = [ set.difference $(all-os) : aix darwin vxworks solaris osf hpux ] ;' in '/Users/dom/.conan/data/boost/1.84.0/_/_/source/src/tools/build/src/tools/gcc.jam' file. boost/1.84.0: WARN: replace_in_file didn't find pattern 'local no-threading = android beos haiku sgi darwin vxworks ;' in '/Users/dom/.conan/data/boost/1.84.0/_/_/source/src/tools/build/src/tools/gcc.jam' file. boost/1.84.0: WARN: Patching user-config.jam boost/1.84.0: WARN: Using the new toolchains and generators without specifying a build profile (e.g: -pr:b=default) is discouraged and might cause failures and unexpected behavior boost/1.84.0: WARN: using zlib : 1.3.1 :