bfgroup / b2

B2 makes it easy to build C++ projects, everywhere.
https://www.bfgroup.xyz/b2/
Boost Software License 1.0
75 stars 228 forks source link

after setting using zstd in project-config.jam boost.iostreams still can not detect zstd #400

Closed xiongyang closed 2 months ago

xiongyang commented 2 months ago

Environment and version details

 [sr@iZ8vb1c8z4g9x2ge3hej9xZ boost_1_84_0]$ ./b2 --reconfigre --debug-configure
Performing configuration checks

    - default address-model    : 64-bit [1]
    - default architecture     : x86 [1]

Building the Boost C++ Libraries.

    - compiler supports SSE2   : yes [2]
    - compiler supports SSE4.1 : yes [2]
    - cxx11_static_assert      : yes [2]
    - cxx20_hdr_concepts       : no [2]
    - cxx20_hdr_concepts       : no [3]
    - has std::atomic_ref      : no [2]
    - has -Wl,--no-undefined   : yes [2]
    - has statx                : no [2]
    - has statx syscall        : no [2]
    - has init_priority attribute : yes [2]
    - has stat::st_blksize     : yes [2]
    - has stat::st_mtim        : yes [2]
    - has stat::st_mtimensec   : no [2]
    - has stat::st_mtimespec   : no [2]
    - has stat::st_birthtim    : no [2]
    - has stat::st_birthtimensec : no [2]
    - has stat::st_birthtimespec : no [2]
    - has fdopendir(O_NOFOLLOW) : yes [2]
    - has dirent::d_type       : yes [2]
    - has POSIX *at APIs       : yes [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]
^C
[sr@iZ8vb1c8z4g9x2ge3hej9xZ boost_1_84_0]$ ./b2 --reconfigre --debug-configuration
notice: found boost-build.jam at /home/sr/download/pkgs/boost_1_84_0/boost-build.jam
notice: loading B2 from /home/sr/download/pkgs/boost_1_84_0/tools/build/src/kernel/bootstrap.jam
notice: Searching '/etc' '/home/sr' '/home/sr/download/pkgs/boost_1_84_0/tools/build/src/kernel' '/home/sr/download/pkgs/boost_1_84_0/tools/build/src/util' '/home/sr/download/pkgs/boost_1_84_0/tools/build/src/build' '/home/sr/download/pkgs/boost_1_84_0/tools/build/src/tools' '/home/sr/download/pkgs/boost_1_84_0/tools/build/src/contrib' '/home/sr/download/pkgs/boost_1_84_0/tools/build/src/.' for site-config configuration file 'site-config.jam'.
notice: Configuration file 'site-config.jam' not found in '/etc' '/home/sr' '/home/sr/download/pkgs/boost_1_84_0/tools/build/src/kernel' '/home/sr/download/pkgs/boost_1_84_0/tools/build/src/util' '/home/sr/download/pkgs/boost_1_84_0/tools/build/src/build' '/home/sr/download/pkgs/boost_1_84_0/tools/build/src/tools' '/home/sr/download/pkgs/boost_1_84_0/tools/build/src/contrib' '/home/sr/download/pkgs/boost_1_84_0/tools/build/src/.'.
notice: Searching '/home/sr' '/home/sr/download/pkgs/boost_1_84_0/tools/build/src/kernel' '/home/sr/download/pkgs/boost_1_84_0/tools/build/src/util' '/home/sr/download/pkgs/boost_1_84_0/tools/build/src/build' '/home/sr/download/pkgs/boost_1_84_0/tools/build/src/tools' '/home/sr/download/pkgs/boost_1_84_0/tools/build/src/contrib' '/home/sr/download/pkgs/boost_1_84_0/tools/build/src/.' for user-config configuration file 'user-config.jam'.
notice: Configuration file 'user-config.jam' not found in '/home/sr' '/home/sr/download/pkgs/boost_1_84_0/tools/build/src/kernel' '/home/sr/download/pkgs/boost_1_84_0/tools/build/src/util' '/home/sr/download/pkgs/boost_1_84_0/tools/build/src/build' '/home/sr/download/pkgs/boost_1_84_0/tools/build/src/tools' '/home/sr/download/pkgs/boost_1_84_0/tools/build/src/contrib' '/home/sr/download/pkgs/boost_1_84_0/tools/build/src/.'.
notice: Searching '.' for project-config configuration file 'project-config.jam'.
notice: Loading project-config configuration file 'project-config.jam' from '.'.
notice: [zstd] Using pre-installed library
notice: [zstd] Condition
notice: will use 'g++' for gcc, condition <toolset>gcc-11
notice: using gcc libraries :: <toolset>gcc-11 :: /opt/rh/devtoolset-11/root/usr/bin /opt/rh/devtoolset-11/root/usr/lib /opt/rh/devtoolset-11/root/usr/lib32 /opt/rh/devtoolset-11/root/usr/lib64
notice: using gcc archiver :: <toolset>gcc-11 :: /opt/rh/devtoolset-11/root/usr/libexec/gcc/x86_64-redhat-linux/11/ar
warning: toolset gcc initialization: can not find tool windres
warning: initialized from project-config.jam:14
notice: using rc compiler :: <toolset>gcc-11 :: /opt/rh/devtoolset-11/root/usr/bin/as
notice: [python-cfg] Configuring python...
notice: [python-cfg]   user-specified version: "2.7"
notice: [python-cfg]   user-specified cmd-or-prefix: "/usr"
notice: [python-cfg] Checking interpreter command "/usr/bin/python2.7"...
notice: [python-cfg] running command '/usr/bin/python2.7 -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: "/usr/bin/python2.7"
notice: [python-cfg]   include path: "/usr/include/python2.7"
notice: [python-cfg]   library path: "/usr/lib/python2.7/config" "/usr/lib"
notice: [python-cfg] Checking for NumPy...
notice: [python-cfg] running command '/usr/bin/python2.7 -c "import sys; sys.stderr = sys.stdout; import numpy; print(numpy.get_include())"'
notice: [python-cfg] NumPy disabled. Reason:
notice: [python-cfg]   /usr/bin/python2.7 -c "import sys; sys.stderr = sys.stdout; import numpy; print(numpy.get_include())" aborted with
notice: [python-cfg]   Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: No module named numpy
notice: [zlib] Using pre-installed library
notice: [zlib] Condition
notice: [bzip2] Using pre-installed library
notice: [bzip2] Condition
notice: [lzma] Using pre-installed library
notice: [lzma] Condition
notice: [zstd] zstd is already configured
Performing configuration checks

    - default address-model    : 64-bit [1]
    - default architecture     : x86 [1]

Building the Boost C++ Libraries.

    - compiler supports SSE2   : yes [2]
    - compiler supports SSE4.1 : yes [2]
    - cxx11_static_assert      : yes [2]
    - cxx20_hdr_concepts       : no [2]
    - cxx20_hdr_concepts       : no [3]
    - has std::atomic_ref      : no [2]
    - has -Wl,--no-undefined   : yes [2]
    - has statx                : no [2]
    - has statx syscall        : no [2]
    - has init_priority attribute : yes [2]
    - has stat::st_blksize     : yes [2]
    - has stat::st_mtim        : yes [2]
    - has stat::st_mtimensec   : no [2]
    - has stat::st_mtimespec   : no [2]
    - has stat::st_birthtim    : no [2]
    - has stat::st_birthtimensec : no [2]
    - has stat::st_birthtimespec : no [2]
    - has fdopendir(O_NOFOLLOW) : yes [2]
    - has dirent::d_type       : yes [2]
    - has POSIX *at APIs       : yes [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]
warning: Graph library does not contain MPI-based parallel components.
note: to enable them, add "using mpi ;" to your user-config.jam.
note: to suppress this message, pass "--without-graph_parallel" to bjam.
    - zlib                     : no
    - bzip2                    : no
    - lzma                     : no
    - zstd                     : no

Brief problem description

I place using zstd in project-config.jam try to build boost.iostreams with zstd enable. but it does not detect zstd here is the using. [using zstd : : "/home/sr/pkgs/z/zstd/v1.5.5/1b70c2144c9d486e9526561ab9c9986e/include" "/home/sr/pkgs/z/zstd/v1.5.5/1b70c2144c9d487e9526561ab9c9986e/lib" libzstd ;]

Steps to reproduce the issue

tar xf boost_1_84_0.tar.bz2 cd boost_1_84_0 ./bootstrap.sh add using zstd : : "/home/sr/pkgs/z/zstd/v1.5.5/1b70c2144c9d486e9526561ab9c9986e/include" "/home/sr/pkgs/z/zstd/v1.5.5/1b70c2144c9d486e9526561ab9c9986e/lib" libzstd ; to the project-config.jam run ./b2 --reconfigure

Actual behavior summary

it dected zstd as

Expected behavior summary

I think it should detect zstd right. the output of path [sr@iZ8vb1c8z4g9x2ge3hej9xZ boost_1_84_0]$ ls -l /home/sr/pkgs/z/zstd/v1.5.5/1b70c2144c9d486e9526561ab9c9986e/lib total 944 -rw-rw-r-- 1 sr sr 958834 Jun 7 18:36 libzstd.a drwxrwxr-x 2 sr sr 4096 Jun 7 18:36 pkgconfig [sr@iZ8vb1c8z4g9x2ge3hej9xZ boost_1_84_0]$ ls -l /home/sr/pkgs/z/zstd/v1.5.5/1b70c2144c9d486e9526561ab9c9986e/include total 204 -rw-rw-r-- 1 sr sr 26433 Jun 7 18:36 zdict.h -rw-rw-r-- 1 sr sr 4532 Jun 7 18:36 zstd_errors.h -rw-rw-r-- 1 sr sr 171378 Jun 7 18:36 zstd.h

grisumbras commented 2 months ago

This:

[using zstd : : "/home/sr/pkgs/z/zstd/v1.5.5/1b70c2144c9d486e9526561ab9c9986e/include" "/home/sr/pkgs/z/zstd/v1.5.5/1b70c2144c9d487e9526561ab9c9986e/lib" libzstd ;]

doesn't look correct. Try this:

using zstd
   :
   : <include>"/home/sr/pkgs/z/zstd/v1.5.5/1b70c2144c9d486e9526561ab9c9986e/include" 
     <search>"/home/sr/pkgs/z/zstd/v1.5.5/1b70c2144c9d487e9526561ab9c9986e/lib"
   ;

Note: formatting is not important, I added it for clarity.

xiongyang commented 2 months ago

actucally I add it as using zstd : : \<include>"/home/sr/pkgs/z/zstd/v1.5.5/1b70c2144c9d486e9526561ab9c9986e/include" \<search>"/home/sr/pkgs/z/zstd/v1.5.5/1b70c2144c9d486e9526561ab9c9986e/lib" \<name>libzstd ;

the origin post do not display \< > tags after you post I try remove the \<name> tag, and now it works using zstd : : \<include>"/home/sr/pkgs/z/zstd/v1.5.5/1b70c2144c9d486e9526561ab9c9986e/include" \<search>"/home/sr/pkgs/z/zstd/v1.5.5/1b70c2144c9d486e9526561ab9c9986e/lib ;"