libbitcoin / libbitcoin-system

Bitcoin Cross-Platform C++ Development Toolkit
https://libbitcoin.info/
Other
1.3k stars 384 forks source link

macOS: boost build failure. #1508

Closed evoskuil closed 3 months ago

evoskuil commented 3 months ago

https://github.com/libbitcoin/libbitcoin-system/actions/runs/10117544724/job/27982749947

Apple clang version 15.0.0 (clang-1500.3.9.4)
Target: arm64-apple-darwin23.5.0
Thread model: posix
InstalledDir: /Applications/Xcode_15.4.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

###
###

> clang++ -x c++ -std=c++11 -w -O3 -s -DNDEBUG builtins.cpp class.cpp command.cpp compile.cpp constants.cpp cwd.cpp debug.cpp debugger.cpp execcmd.cpp execnt.cpp execunix.cpp filesys.cpp filent.cpp fileunix.cpp frames.cpp function.cpp glob.cpp hash.cpp hcache.cpp hdrmacro.cpp headers.cpp jam_strings.cpp jam.cpp jamgram.cpp lists.cpp make.cpp make1.cpp md5.cpp mem.cpp modules.cpp native.cpp object.cpp option.cpp output.cpp parse.cpp pathnt.cpp pathsys.cpp pathunix.cpp regexp.cpp rules.cpp scan.cpp search.cpp startup.cpp subst.cpp sysinfo.cpp timestamp.cpp variable.cpp w32_getreg.cpp modules/order.cpp modules/path.cpp modules/property-set.cpp modules/regex.cpp modules/sequence.cpp modules/set.cpp -o b2
> cp b2 bjam
Detecting Python version... 3.12
Detecting Python root... /Library/Frameworks/Python.framework/Versions/3.12
Unicode/ICU support for Boost.Regex?... not found.
Generating B2 configuration in project-config.jam for clang...

Bootstrapping is done. To build, run:

    ./b2

To generate header files, run:

    ./b2 headers

The configuration generated uses clang to build by default. If that is
unintended either use the --with-toolset option or adjust configuration, by
editing 'project-config.jam'.

Further information:

   - Command line help:
     ./b2 --help

   - Getting started guide: 
     http://www.boost.org/more/getting_started/unix-variants.html

   - B2 documentation:
     http://www.boost.org/build/

Performing configuration checks

    - default address-model    : 64-bit [1]
    - default architecture     : arm [1]
    - zlib                     : yes
    - lzma                     : no
    - lzma                     : no  (cached)
    - has_lzma_cputhreads builds : no [2]
    - cxx11_constexpr          : yes [2]
    - cxx11_decltype           : yes [2]
    - cxx11_hdr_tuple          : yes [2]
    - cxx11_template_aliases   : yes [2]
    - cxx11_variadic_templates : yes [2]
    - cxx11_basic_alignas      : yes [2]
    - iconv (libc)             : no [2]
    - iconv (separate)         : yes [2]
    - icu                      : no [2]
    - icu (lib64)              : no [2]
    - BOOST_COMP_GNUC >= 4.3.0 : no [2]
    - BOOST_COMP_GNUC >= 4.3.0 : no [3]
    - lockfree boost::atomic_flag : yes [2]

[1] clang-15
[2] clang-darwin-15/release/boost.locale.iconv-on/boost.locale.posix-on/cxxstd-11-iso/python-3.12/threadapi-pthread/threading-multi/visibility-hidden
[3] clang-darwin-15/release/boost.locale.iconv-on/boost.locale.posix-on/cxxstd-11-iso/link-static/python-3.12/threadapi-pthread/threading-multi/visibility-hidden

Component configuration:

    - atomic                   : not building
    - chrono                   : building
    - container                : not building
    - context                  : not building
    - contract                 : not building
    - coroutine                : not building
    - date_time                : not building
    - exception                : not building
    - fiber                    : not building
    - filesystem               : not building
    - graph                    : not building
    - graph_parallel           : not building
    - headers                  : not building
    - iostreams                : building
    - json                     : building
    - locale                   : building
    - log                      : not building
    - math                     : not building
    - mpi                      : not building
    - nowide                   : not building
    - program_options          : building
    - python                   : not building
    - random                   : not building
    - regex                    : not building
    - serialization            : not building
    - stacktrace               : not building
    - system                   : building
    - test                     : building
    - thread                   : building
    - timer                    : not building
    - type_erasure             : not building
    - wave                     : not building

In file included from libs/locale/src/shared/date_time.cpp:11:
In file included from ./boost/thread/locks.hpp:10:
In file included from ./boost/thread/lock_algorithms.hpp:11:
In file included from ./boost/thread/lock_types.hpp:18:
In file included from ./boost/thread/thread_time.hpp:11:
In file included from ./boost/date_time/posix_time/posix_time_types.hpp:16:
In file included from ./boost/date_time/posix_time/posix_time_duration.hpp:15:
In file included from ./boost/numeric/conversion/cast.hpp:33:
In file included from ./boost/numeric/conversion/converter.hpp:13:
In file included from ./boost/numeric/conversion/conversion_traits.hpp:13:
In file included from ./boost/numeric/conversion/detail/conversion_traits.hpp:18:
In file included from ./boost/numeric/conversion/detail/int_float_mixture.hpp:19:
In file included from ./boost/mpl/integral_c.hpp:32:
./boost/mpl/aux_/integral_wrapper.hpp:73:31: error: integer value -1 is outside the valid range of values [0, 3] for this enumeration type [-Wenum-constexpr-conversion]
    typedef AUX_WRAPPER_INST( BOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (value - 1)) ) prior;
                              ^
./boost/mpl/aux_/static_cast.hpp:24:47: note: expanded from macro 'BOOST_MPL_AUX_STATIC_CAST'
#   define BOOST_MPL_AUX_STATIC_CAST(T, expr) static_cast<T>(expr)
pmienk commented 3 months ago

Addressed generally by libbitcoin/libbitcoin-build#326 and specifically by #1511