conan-io / conan-center-index

Recipes for the ConanCenter repository
https://conan.io/center
MIT License
950 stars 1.73k forks source link

boost/1.72.0: Build with x86_64_w64_mingw32 fails to detect cross compiler #14942

Closed klausholstjacobsen closed 1 year ago

klausholstjacobsen commented 1 year ago

Description

I month ago boost 1.72.0 (and 1.81.0) would build just fine with both 32bit and 64bit mingw. Now it doesn't anymore. It seems to completely fail to detect the cross compiler which is located in a conan package (x86_64-w64-mingw32/1.0.5) included as a build require in the host profile:

notice: will use '/usr/bin/g++' for gcc, condition <toolset>gcc-11
notice: using gcc libraries :: <toolset>gcc-11 :: /usr/bin /usr/lib /usr/lib32 /usr/lib64
notice: using gcc archiver :: <toolset>gcc-11 :: /usr/bin/ar
notice: using rc compiler :: <toolset>gcc-11 :: windres

I guess some recipe update caused this to break. I am however not able to troubleshoot as I have no b2 knowledge.

Package and Environment Details

Conan profile

Configuration (profile_host): [settings] arch=x86_64 build_type=Release compiler=gcc compiler.libcxx=libstdc++11 compiler.version=9.4 os=Windows [options] [build_requires] *: x86_64-w64-mingw32/1.0.5 [env]

Configuration (profile_build): [settings] arch=x86_64 build_type=Release compiler=gcc compiler.libcxx=libstdc++11 compiler.version=9.4 os=Linux [options] [build_requires] *: x86_64-pc-linux-gnu/1.0.5 [env]

The build_requires package x86_64-w64-mingw32/1.0.5 sets all proper env variables:

    def package_info(self):
        triplet = "x86_64-w64-mingw32"
        path = os.path.join(self.package_folder, triplet)
        sysroot  = os.path.join(path, triplet, "sysroot")

        self.env_info.CC       = os.path.join(path, "bin/{}-gcc".format(triplet))
        self.env_info.CXX      = os.path.join(path, "bin/{}-g++".format(triplet))
        self.env_info.WINDRES  = os.path.join(path, "bin/{}-windres".format(triplet))
        self.env_info.RC       = os.path.join(path, "bin/{}-windres".format(triplet))
        self.env_info.LD       = os.path.join(path, "bin/{}-ld".format(triplet))
        self.env_info.RANLIB   = os.path.join(path, "bin/{}-ranlib".format(triplet))
        self.env_info.NM       = os.path.join(path, "bin/{}-nm".format(triplet))
        self.env_info.AR       = os.path.join(path, "bin/{}-ar".format(triplet))
        self.env_info.STRIP    = os.path.join(path, "bin/{}-strip".format(triplet))
        self.env_info.OBJDUMP  = os.path.join(path, "bin/{}-objdump".format(triplet))

        self.env_info.SYSROOT = sysroot

        if self.settings.build_type == "Debug":
            self.env_info.CFLAGS   = "-std=gnu11 -O0 -ggdb -Wall"
            self.env_info.CXXFLAGS = "-std=gnu++14 -O0 -ggdb -Wall"
        else:
            self.env_info.CFLAGS   = "-std=gnu11 -s -Os -Wall"
            self.env_info.CXXFLAGS = "-std=gnu++14 -s -Os -Wall"

Steps to reproduce

run conan install

Logs

outpyut from conan install:

boost/1.72.0: Applying build-requirement: x86_64-w64-mingw32/1.0.5
boost/1.72.0: Applying build-requirement: b2/4.9.2
boost/1.72.0: WARN: Build folder is dirty, removing it: [conan_data_dir]/boost/1.72.0/_/_/build/bb6de499e8c0865a0fbb48a6ade91c8f2037413a
boost/1.72.0: Building your package in [conan_data_dir]/boost/1.72.0/_/_/build/bb6de499e8c0865a0fbb48a6ade91c8f2037413a
boost/1.72.0: Generator txt created conanbuildinfo.txt
boost/1.72.0: Calling generate()
boost/1.72.0: Aggregating env generators
boost/1.72.0: Calling build()
boost/1.72.0: WARN: replace_in_file didn't find pattern '$(>) > $(<)' in '[conan_data_dir]/boost/1.72.0/_/_/source/src/libs/stacktrace/build/Jamfile.v2' file.
boost/1.72.0: WARN: replace_in_file didn't find pattern '/* thread_local */' in '[conan_data_dir]/boost/1.72.0/_/_/source/src/boost/stacktrace/detail/libbacktrace_impls.hpp' file.
boost/1.72.0: WARN: replace_in_file didn't find pattern '/* static __thread */' in '[conan_data_dir]/boost/1.72.0/_/_/source/src/boost/stacktrace/detail/libbacktrace_impls.hpp' file.
boost/1.72.0: WARN: replace_in_file didn't find pattern 'local generic-os = [ set.difference $(all-os) : aix darwin vxworks solaris osf hpux ] ;' in '[conan_data_dir]/boost/1.72.0/_/_/source/src/tools/build/src/tools/gcc.jam' file.
boost/1.72.0: WARN: replace_in_file didn't find pattern 'local no-threading = android beos haiku sgi darwin vxworks ;' in '[conan_data_dir]/boost/1.72.0/_/_/source/src/tools/build/src/tools/gcc.jam' file.
boost/1.72.0: WARN: replace_in_file didn't find pattern '    <conditional>@numa' in '[conan_data_dir]/boost/1.72.0/_/_/source/src/libs/fiber/build/Jamfile.v2' file.
boost/1.72.0: WARN: Patching user-config.jam
boost/1.72.0: WARN:
using zlib : 1.2.13 : <include>"[conan_data_dir]/zlib/1.2.13/_/_/package/5468314007bf24cab9581d2ee822baff77a0a673/include" <search>"[conan_data_dir]/zlib/1.2.13/_/_/package/5468314007bf24cab9581d2ee822baff77a0a673/lib" <name>z ;
using "gcc" :  :  /usr/bin/g++ :
 ;
boost/1.72.0: Cross building, detecting compiler...
boost/1.72.0: Cross building flags: []
boost/1.72.0: WARN: b2 -q target-os=windows architecture=x86 address-model=64 binary-format=pe abi=ms --layout=system --user-config=[conan_data_dir]/boost/1.72.0/_/_/source/src/tools/build/user-config.jam -sNO_ZLIB=0 -sNO_BZIP2=1 -sNO_LZMA=1 -sNO_ZSTD=1 boost.locale.icu=off --disable-icu boost.locale.iconv=off --disable-iconv threading=multi visibility=hidden link=static variant=release --with-atomic --with-chrono --with-container --with-context --with-contract --with-coroutine --with-date_time --with-exception --with-filesystem --with-graph --with-iostreams --with-math --with-program_options --with-random --with-regex --with-serialization --with-system --with-test --with-thread --with-timer --with-type_erasure --with-wave toolset=gcc define=_GLIBCXX_USE_CXX11_ABI=1 pch=on linkflags="" cxxflags="-fPIC" install --prefix=[conan_data_dir]/boost/1.72.0/_/_/package/bb6de499e8c0865a0fbb48a6ade91c8f2037413a -j16 --abbreviate-paths -d0 --debug-configuration --build-dir="[conan_data_dir]/boost/1.72.0/_/_/build/bb6de499e8c0865a0fbb48a6ade91c8f2037413a/build-release"
notice: found boost-build.jam at [conan_data_dir]/boost/1.72.0/_/_/source/src/boost-build.jam
notice: loading B2 from [conan_data_dir]/b2/4.9.2/_/_/package/4db1be536558d833e52e862fd84d64d75c2b3656/bin/.b2/kernel/bootstrap.jam
notice: Searching '/etc' '/home/khj' '[conan_data_dir]/b2/4.9.2/_/_/package/4db1be536558d833e52e862fd84d64d75c2b3656/bin/.b2/kernel' '[conan_data_dir]/b2/4.9.2/_/_/package/4db1be536558d833e52e862fd84d64d75c2b3656/bin/.b2/util' '[conan_data_dir]/b2/4.9.2/_/_/package/4db1be536558d833e52e862fd84d64d75c2b3656/bin/.b2/build' '[conan_data_dir]/b2/4.9.2/_/_/package/4db1be536558d833e52e862fd84d64d75c2b3656/bin/.b2/tools' '[conan_data_dir]/b2/4.9.2/_/_/package/4db1be536558d833e52e862fd84d64d75c2b3656/bin/.b2/contrib' '[conan_data_dir]/b2/4.9.2/_/_/package/4db1be536558d833e52e862fd84d64d75c2b3656/bin/.b2/.' for site-config configuration file 'site-config.jam'.
notice: Configuration file 'site-config.jam' not found in '/etc' '/home/khj' '[conan_data_dir]/b2/4.9.2/_/_/package/4db1be536558d833e52e862fd84d64d75c2b3656/bin/.b2/kernel' '[conan_data_dir]/b2/4.9.2/_/_/package/4db1be536558d833e52e862fd84d64d75c2b3656/bin/.b2/util' '[conan_data_dir]/b2/4.9.2/_/_/package/4db1be536558d833e52e862fd84d64d75c2b3656/bin/.b2/build' '[conan_data_dir]/b2/4.9.2/_/_/package/4db1be536558d833e52e862fd84d64d75c2b3656/bin/.b2/tools' '[conan_data_dir]/b2/4.9.2/_/_/package/4db1be536558d833e52e862fd84d64d75c2b3656/bin/.b2/contrib' '[conan_data_dir]/b2/4.9.2/_/_/package/4db1be536558d833e52e862fd84d64d75c2b3656/bin/.b2/.'.
notice: Loading explicitly specified user configuration file:
    [conan_data_dir]/boost/1.72.0/_/_/source/src/tools/build/user-config.jam
notice: Searching '[conan_data_dir]/boost/1.72.0/_/_/source/src/tools/build' for user-config configuration file 'user-config.jam'.
notice: Loading user-config configuration file 'user-config.jam' from '[conan_data_dir]/boost/1.72.0/_/_/source/src/tools/build'.
notice: [zlib] Using pre-installed library
notice: [zlib] Condition
notice: will use '/usr/bin/g++' for gcc, condition <toolset>gcc-11
notice: using gcc libraries :: <toolset>gcc-11 :: /usr/bin /usr/lib /usr/lib32 /usr/lib64
notice: using gcc archiver :: <toolset>gcc-11 :: /usr/bin/ar
notice: using rc compiler :: <toolset>gcc-11 :: windres
notice: [zlib] zlib is already configured
notice: iostreams: not using bzip compression
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' % (version_info[0],version_info[1],platform,prefix,exec_prefix,executable))" 2>&1'
notice: [python-cfg] ...requested configuration matched!
notice: [python-cfg] Details of this Python configuration:
notice: [python-cfg]   interpreter command: "python"
notice: [python-cfg]   include path: "/usr/include/python3.10"
notice: [python-cfg]   library path: "/usr/lib/python3.10/config" "/usr/lib"
notice: [python-cfg] Checking for NumPy...
notice: [python-cfg] running command 'python -c "import sys; sys.stderr = sys.stdout; import numpy; print(numpy.get_include())"'
notice: [python-cfg] NumPy enabled
Performing configuration checks

    - default address-model    : 64-bit [1]
    - default architecture     : x86 [1]
    - C++11 mutex              : no [2]
    - has_icu builds           : no [2]
    - zlib                     : no [3]
    - gcc visibility           : no [2]
    - gcc visibility           : no [4]
    - long double support      : no [4]
    - gcc visibility           : no [5]
    - long double support      : no [5]
    - BOOST_COMP_GNUC >= 4.3.0 : no [2]

[1] gcc-11/trgt-os-wndws
[2] gcc-11/rls/abi-ms/bnry-frmt-pe/bst.l-off/bst.l-off/lnk-sttc/pythn-3.10/trgt-os-wndws/thrdp-wn32/thrd-mlt/vsblt-hdn
[3] lnk-sttc
[4] gcc-11/rls/abi-ms/bnry-frmt-pe/bst.l-off/bst.l-off/lnk-sttc/pch-off/pythn-3.10/trgt-os-wndws/thrdp-wn32/thrd-mlt/vsblt-hdn
[5] gcc-11/rls/abi-ms/bnry-frmt-pe/bst.l-off/bst.l-off/bld-no/lnk-sttc/pch-off/pythn-3.10/trgt-os-wndws/thrdp-wn32/thrd-mlt/vsblt-hdn

Component configuration:

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

g++: error: unrecognized command-line option ‘-mthreads’; did you mean ‘-pthread’?
g++: error: unrecognized command-line option ‘-mthreads’; did you mean ‘-pthread’?
g++: error: unrecognized command-line option ‘-mthreads’; did you mean ‘-pthread’?
g++: error: unrecognized command-line option ‘-mthreads’; did you mean ‘-pthread’?
...failed updating 4 targets...
boost/1.72.0:
boost/1.72.0: ERROR: Package 'bb6de499e8c0865a0fbb48a6ade91c8f2037413a' build failed
boost/1.72.0: WARN: Build folder [conan_data_dir]/boost/1.72.0/_/_/build/bb6de499e8c0865a0fbb48a6ade91c8f2037413a/build-release
ERROR: boost/1.72.0: Error in build() method, line 850
        self.run(full_command)
        ConanException: Error 1 while executing b2 -q target-os=windows architecture=x86 address-model=64 binary-format=pe abi=ms --layout=system --user-config=[conan_data_dir]/boost/1.72.0/_/_/source/src/tools/build/user-config.jam -sNO_ZLIB=0 -sNO_BZIP2=1 -sNO_LZMA=1 -sNO_ZSTD=1 boost.locale.icu=off --disable-icu boost.locale.iconv=off --disable-iconv threading=multi visibility=hidden link=static variant=release --with-atomic --with-chrono --with-container --with-context --with-contract --with-coroutine --with-date_time --with-exception --with-filesystem --with-graph --with-iostreams --with-math --with-program_options --with-random --with-regex --with-serialization --with-system --with-test --with-thread --with-timer --with-type_erasure --with-wave toolset=gcc define=_GLIBCXX_USE_CXX11_ABI=1 pch=on linkflags="" cxxflags="-fPIC" install --prefix=[conan_data_dir]/boost/1.72.0/_/_/package/bb6de499e8c0865a0fbb48a6ade91c8f2037413a -j16 --abbreviate-paths -d0 --debug-configuration --build-dir="[conan_data_dir]/boost/1.72.0/_/_/build/bb6de499e8c0865a0fbb48a6ade91c8f2037413a/build-release"

SpaceIm commented 1 year ago

That's because this x86_64-w64-mingw32/1.0.5 recipe has not been upgraded to work with conan v2 recipes (similar issues than https://github.com/conan-io/conan-center-index/issues/14767 & https://github.com/conan-io/conan-center-index/issues/14880).

recipes based on conan v2 build helpers don't understand env_info, they listen buildenv_info and several conf parameters: see https://github.com/conan-io/conan-center-index/issues/14781

As a source of inspiration for cross-compiler recipes compatible with conan v1 & v2 recipes, you can take a look at package_info() of android-ndk & emsdk recipes.

klausholstjacobsen commented 1 year ago

Inspired by the android-ndk recipe I updated the package_info() method:

    def package_info(self):
        triplet = "x86_64-w64-mingw32"
        path = os.path.join(self.package_folder, triplet)

        sysroot  = os.path.join(path, triplet, "sysroot")
        cc = os.path.join(path, "bin/{}-gcc".format(triplet))
        cxx = os.path.join(path, "bin/{}-g++".format(triplet))

        self.buildenv_info.define_path("CC",      cc)
        self.buildenv_info.define_path("CXX",     cxx)
        self.buildenv_info.define_path("WINDRES", os.path.join(path, "bin/{}-windres".format(triplet)))
        self.buildenv_info.define_path("RC",      os.path.join(path, "bin/{}-windres".format(triplet)))
        self.buildenv_info.define_path("LD",      os.path.join(path, "bin/{}-ld".format(triplet)))
        self.buildenv_info.define_path("RANLIB",  os.path.join(path, "bin/{}-ranlib".format(triplet)))
        self.buildenv_info.define_path("NM",      os.path.join(path, "bin/{}-nm".format(triplet)))
        self.buildenv_info.define_path("AR",      os.path.join(path, "bin/{}-ar".format(triplet)))
        self.buildenv_info.define_path("STRIP",   os.path.join(path, "bin/{}-strip".format(triplet)))
        self.buildenv_info.define_path("OBJDUMP", os.path.join(path, "bin/{}-objdump".format(triplet)))
        self.buildenv_info.define_path("READELF", os.path.join(path, "bin/{}-readelf".format(triplet)))
        #Do not add toolchain bin dir to path. It may cause tools like autom4te to fail

        self.buildenv_info.define_path("SYSROOT", sysroot)

        compiler_executables = {
            "c": cc,
            "cpp": cxx,
        }

        self.conf_info.define("tools.build:sysroot", sysroot)
        self.conf_info.update("tools.build:compiler_executables", compiler_executables)

        if self.settings.build_type == "Debug":
            self.buildenv_info.define("CFLAGS", "-std=gnu11 -O0 -ggdb -Wall")
            self.buildenv_info.define("CXXFLAGS", "-std=gnu++14 -O0 -ggdb -Wall")
        else:
            self.buildenv_info.define("CFLAGS",   "-std=gnu11 -s -Os -Wall")
            self.buildenv_info.define("CXXFLAGS", "-std=gnu++14 -s -Os -Wall")

Unfortunately that did not change the result. Still the same. I did put in some print statements in the package_info() method to verify that I am indeed using the new updated recipe. Am I missing something crucial?

conan install output:

boost/1.72.0: WARN: Build folder is dirty, removing it: [conan_data_dir]/boost/1.72.0/_/_/build/bb6de499e8c0865a0fbb48a6ade91c8f2037413a
boost/1.72.0: Building your package in [conan_data_dir]/boost/1.72.0/_/_/build/bb6de499e8c0865a0fbb48a6ade91c8f2037413a
boost/1.72.0: Generator txt created conanbuildinfo.txt
boost/1.72.0: Calling generate()
boost/1.72.0: Aggregating env generators
boost/1.72.0: Calling build()
boost/1.72.0: WARN: replace_in_file didn't find pattern '$(>) > $(<)' in '[conan_data_dir]/boost/1.72.0/_/_/source/src/libs/stacktrace/build/Jamfile.v2' file.
boost/1.72.0: WARN: replace_in_file didn't find pattern '/* thread_local */' in '[conan_data_dir]/boost/1.72.0/_/_/source/src/boost/stacktrace/detail/libbacktrace_impls.hpp' file.
boost/1.72.0: WARN: replace_in_file didn't find pattern '/* static __thread */' in '[conan_data_dir]/boost/1.72.0/_/_/source/src/boost/stacktrace/detail/libbacktrace_impls.hpp' file.
boost/1.72.0: WARN: replace_in_file didn't find pattern 'local generic-os = [ set.difference $(all-os) : aix darwin vxworks solaris osf hpux ] ;' in '[conan_data_dir]/boost/1.72.0/_/_/source/src/tools/build/src/tools/gcc.jam' file.
boost/1.72.0: WARN: replace_in_file didn't find pattern 'local no-threading = android beos haiku sgi darwin vxworks ;' in '[conan_data_dir]/boost/1.72.0/_/_/source/src/tools/build/src/tools/gcc.jam' file.
boost/1.72.0: WARN: replace_in_file didn't find pattern '    <conditional>@numa' in '[conan_data_dir]/boost/1.72.0/_/_/source/src/libs/fiber/build/Jamfile.v2' file.
boost/1.72.0: WARN: Patching user-config.jam
boost/1.72.0: WARN:
using zlib : 1.2.13 : <include>"[conan_data_dir]/zlib/1.2.13/_/_/package/5468314007bf24cab9581d2ee822baff77a0a673/include" <search>"[conan_data_dir]/zlib/1.2.13/_/_/package/5468314007bf24cab9581d2ee822baff77a0a673/lib" <name>z ;
using "gcc" :  :  /usr/bin/g++ :
 ;
boost/1.72.0: Cross building, detecting compiler...
boost/1.72.0: Cross building flags: []
boost/1.72.0: WARN: b2 -q target-os=windows architecture=x86 address-model=64 binary-format=pe abi=ms --layout=system --user-config=[conan_data_dir]/boost/1.72.0/_/_/source/src/tools/build/user-config.jam -sNO_ZLIB=0 -sNO_BZIP2=1 -sNO_LZMA=1 -sNO_ZSTD=1 boost.locale.icu=off --disable-icu boost.locale.iconv=off --disable-iconv threading=multi visibility=hidden link=static variant=release --with-atomic --with-chrono --with-container --with-context --with-contract --with-coroutine --with-date_time --with-exception --with-filesystem --with-graph --with-iostreams --with-math --with-program_options --with-random --with-regex --with-serialization --with-system --with-test --with-thread --with-timer --with-type_erasure --with-wave toolset=gcc define=_GLIBCXX_USE_CXX11_ABI=1 pch=on linkflags="" cxxflags="-fPIC" install --prefix=[conan_data_dir]/boost/1.72.0/_/_/package/bb6de499e8c0865a0fbb48a6ade91c8f2037413a -j16 --abbreviate-paths -d0 --debug-configuration --build-dir="[conan_data_dir]/boost/1.72.0/_/_/build/bb6de499e8c0865a0fbb48a6ade91c8f2037413a/build-release"
notice: found boost-build.jam at [conan_data_dir]/boost/1.72.0/_/_/source/src/boost-build.jam
notice: loading B2 from [conan_data_dir]/b2/4.9.2/_/_/package/4db1be536558d833e52e862fd84d64d75c2b3656/bin/.b2/kernel/bootstrap.jam
notice: Searching '/etc' '/home/khj' '[conan_data_dir]/b2/4.9.2/_/_/package/4db1be536558d833e52e862fd84d64d75c2b3656/bin/.b2/kernel' '[conan_data_dir]/b2/4.9.2/_/_/package/4db1be536558d833e52e862fd84d64d75c2b3656/bin/.b2/util' '[conan_data_dir]/b2/4.9.2/_/_/package/4db1be536558d833e52e862fd84d64d75c2b3656/bin/.b2/build' '[conan_data_dir]/b2/4.9.2/_/_/package/4db1be536558d833e52e862fd84d64d75c2b3656/bin/.b2/tools' '[conan_data_dir]/b2/4.9.2/_/_/package/4db1be536558d833e52e862fd84d64d75c2b3656/bin/.b2/contrib' '[conan_data_dir]/b2/4.9.2/_/_/package/4db1be536558d833e52e862fd84d64d75c2b3656/bin/.b2/.' for site-config configuration file 'site-config.jam'.
notice: Configuration file 'site-config.jam' not found in '/etc' '/home/khj' '[conan_data_dir]/b2/4.9.2/_/_/package/4db1be536558d833e52e862fd84d64d75c2b3656/bin/.b2/kernel' '[conan_data_dir]/b2/4.9.2/_/_/package/4db1be536558d833e52e862fd84d64d75c2b3656/bin/.b2/util' '[conan_data_dir]/b2/4.9.2/_/_/package/4db1be536558d833e52e862fd84d64d75c2b3656/bin/.b2/build' '[conan_data_dir]/b2/4.9.2/_/_/package/4db1be536558d833e52e862fd84d64d75c2b3656/bin/.b2/tools' '[conan_data_dir]/b2/4.9.2/_/_/package/4db1be536558d833e52e862fd84d64d75c2b3656/bin/.b2/contrib' '[conan_data_dir]/b2/4.9.2/_/_/package/4db1be536558d833e52e862fd84d64d75c2b3656/bin/.b2/.'.
notice: Loading explicitly specified user configuration file:
    [conan_data_dir]/boost/1.72.0/_/_/source/src/tools/build/user-config.jam
notice: Searching '[conan_data_dir]/boost/1.72.0/_/_/source/src/tools/build' for user-config configuration file 'user-config.jam'.
notice: Loading user-config configuration file 'user-config.jam' from '[conan_data_dir]/boost/1.72.0/_/_/source/src/tools/build'.
notice: [zlib] Using pre-installed library
notice: [zlib] Condition
notice: will use '/usr/bin/g++' for gcc, condition <toolset>gcc-11
notice: using gcc libraries :: <toolset>gcc-11 :: /usr/bin /usr/lib /usr/lib32 /usr/lib64
notice: using gcc archiver :: <toolset>gcc-11 :: /usr/bin/ar
notice: using rc compiler :: <toolset>gcc-11 :: windres
notice: [zlib] zlib is already configured
notice: iostreams: not using bzip compression
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' % (version_info[0],version_info[1],platform,prefix,exec_prefix,executable))" 2>&1'
notice: [python-cfg] ...requested configuration matched!
notice: [python-cfg] Details of this Python configuration:
notice: [python-cfg]   interpreter command: "python"
notice: [python-cfg]   include path: "/usr/include/python3.10"
notice: [python-cfg]   library path: "/usr/lib/python3.10/config" "/usr/lib"
notice: [python-cfg] Checking for NumPy...
notice: [python-cfg] running command 'python -c "import sys; sys.stderr = sys.stdout; import numpy; print(numpy.get_include())"'
notice: [python-cfg] NumPy enabled
Performing configuration checks

    - default address-model    : 64-bit [1]
    - default architecture     : x86 [1]
    - C++11 mutex              : no [2]
    - has_icu builds           : no [2]
    - zlib                     : no [3]
    - gcc visibility           : no [2]
    - gcc visibility           : no [4]
    - long double support      : no [4]
    - gcc visibility           : no [5]
    - long double support      : no [5]
    - BOOST_COMP_GNUC >= 4.3.0 : no [2]

[1] gcc-11/trgt-os-wndws
[2] gcc-11/rls/abi-ms/bnry-frmt-pe/bst.l-off/bst.l-off/lnk-sttc/pythn-3.10/trgt-os-wndws/thrdp-wn32/thrd-mlt/vsblt-hdn
[3] lnk-sttc
[4] gcc-11/rls/abi-ms/bnry-frmt-pe/bst.l-off/bst.l-off/lnk-sttc/pch-off/pythn-3.10/trgt-os-wndws/thrdp-wn32/thrd-mlt/vsblt-hdn
[5] gcc-11/rls/abi-ms/bnry-frmt-pe/bst.l-off/bst.l-off/bld-no/lnk-sttc/pch-off/pythn-3.10/trgt-os-wndws/thrdp-wn32/thrd-mlt/vsblt-hdn

Component configuration:

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

g++: error: unrecognized command-line option ‘-mthreads’; did you mean ‘-pthread’?
g++: error: unrecognized command-line option ‘-mthreads’; did you mean ‘-pthread’?
...failed updating 1 target...
boost/1.72.0:
boost/1.72.0: ERROR: Package 'bb6de499e8c0865a0fbb48a6ade91c8f2037413a' build failed
boost/1.72.0: WARN: Build folder [conan_data_dir]/boost/1.72.0/_/_/build/bb6de499e8c0865a0fbb48a6ade91c8f2037413a/build-release
ERROR: boost/1.72.0: Error in build() method, line 850
        self.run(full_command)
        ConanException: Error 1 while executing b2 -q target-os=windows architecture=x86 address-model=64 binary-format=pe abi=ms --layout=system --user-config=[conan_data_dir]/boost/1.72.0/_/_/source/src/tools/build/user-config.jam -sNO_ZLIB=0 -sNO_BZIP2=1 -sNO_LZMA=1 -sNO_ZSTD=1 boost.locale.icu=off --disable-icu boost.locale.iconv=off --disable-iconv threading=multi visibility=hidden link=static variant=release --with-atomic --with-chrono --with-container --with-context --with-contract --with-coroutine --with-date_time --with-exception --with-filesystem --with-graph --with-iostreams --with-math --with-program_options --with-random --with-regex --with-serialization --with-system --with-test --with-thread --with-timer --with-type_erasure --with-wave toolset=gcc define=_GLIBCXX_USE_CXX11_ABI=1 pch=on linkflags="" cxxflags="-fPIC" install --prefix=[conan_data_dir]/boost/1.72.0/_/_/package/bb6de499e8c0865a0fbb48a6ade91c8f2037413a -j16 --abbreviate-paths -d0 --debug-configuration --build-dir="[conan_data_dir]/boost/1.72.0/_/_/build/bb6de499e8c0865a0fbb48a6ade91c8f2037413a/build-release"

Rgds Klaus

SpaceIm commented 1 year ago

https://github.com/conan-io/conan-center-index/pull/14776 should be merged soon, tell me if it's better with these improvements in boost recipe.

klausholstjacobsen commented 1 year ago

Works like a charm! Tested with native linux gcc 9.4, i686-w64-mingw32 9.4, x86_64-w64-mingw32 9.4, qnx gcc 5.4