Boost logo

Boost Users :

Subject: Re: [Boost-users] boost 1.63 fails to build with zlib and bzip2 in different directories
From: Andrea Bocci (andrea.bocci_at_[hidden])
Date: 2017-01-05 13:13:15


On 01/05/2017 10:34 AM, Edward Diener wrote:
> Try removing the -sBZIP2... and -sZLIB... lines and adding to your
> userconfig.jam:
>
> using bzip2 : 1.0.6 : <include>full-path-to/bzip2-1.0.6
> <search>full-path-to/bzip2-1.0.6 ;
> using zlib : 1.2.10 : <include>full-path-to/zlib-1.2.10
> <search>full-path-to/zlib-1.2.10 ;

On 5 January 2017 at 18:42, Steven Watanabe <watanabesj_at_[hidden]> wrote:
> That will have the same problem. The bug
> is at a pretty low level. It will trigger
> regardless of how you specify the paths.

Hi Edward, Steven,
indeed, replacing the -SBZIP2... and -sZLIB... lines with the suggested
entries in user-config.jam gives me the same problem.

In the meantime I've followed the problem down to
libs/iostreams/build/Jamfile.v2 - here is a simplified version of it that
causes the same error:

$ cat ~/user-config.jam
# local installation of bzip2
using bzip2 : 1.0.6 : <include>/home/fwyzard/src/boost/bzip2-1.0.6
<search>/home/fwyzard/src/boost/bzip2-1.0.6 ;

# local installation of zlib
using zlib : 1.2.10 : <include>/home/fwyzard/src/boost/zlib-1.2.10
<search>/home/fwyzard/src/boost/zlib-1.2.10 ;

$ cat Jamfile.v2
project /boost/iostreams : source-location ../src ;

local sources = file_descriptor.cpp mapped_file.cpp zlib.cpp gzip.cpp
bzip2.cpp ;

lib boost_iostreams
    : $(sources)
    : <link>shared:<define>BOOST_IOSTREAMS_DYN_LINK=1
      <define>BOOST_IOSTREAMS_USE_DEPRECATED
      <library>/zlib//zlib
      <library>/bzip2//bzip2
    :
    : <link>shared:<define>BOOST_IOSTREAMS_DYN_LINK=1
    ;

boost-install boost_iostreams : bzip2-requirements ;

However, if I replace the library definitions with my own, it does work:

$ cat Jamfile.v2
project /boost/iostreams : source-location ../src ;

local sources = file_descriptor.cpp mapped_file.cpp zlib.cpp gzip.cpp
bzip2.cpp ;

lib zlib
    :
    : <name>z <include>/home/fwyzard/src/boost/common/include
<search>/home/fwyzard/src/boost/common/lib
    ;

lib bzip2
    :
    : <name>bz2 <include>/home/fwyzard/src/boost/common/include
<search>/home/fwyzard/src/boost/common/lib
    ;

lib boost_iostreams
    : $(sources)
    : <link>shared:<define>BOOST_IOSTREAMS_DYN_LINK=1
      <define>BOOST_IOSTREAMS_USE_DEPRECATED
      <library>/zlib//zlib
      <library>/bzip2//bzip2
    :
    : <link>shared:<define>BOOST_IOSTREAMS_DYN_LINK=1
    ;

boost-install boost_iostreams : bzip2-requirements ;

So it seems to be a problem with the way tools/build/src/tools/bzip2.jam ,
tools/build/src/tools/zlib.jam , etc. are implemented ?

Is there a way to see what
      <library>/zlib//zlib
      <library>/bzip2//bzip2
expand to ?

Thank you,
.Andrea

-- 
Strategy is a system of expedients.
Generalfeldmarschall Helmuth Karl Bernhard Graf von Moltke


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net