Boost logo

Boost-Build :

Subject: [Boost-build] Problem building iostreams with zlib
From: Edward Diener (eldiener_at_[hidden])
Date: 2016-12-06 20:53:25


I try to build the iostreams library with zlib support on Windows. I
have a binary DLL called zlib1.dll in the PATH, my import library is at
E:\Utilities\zlib\lib and my include files are at
E:\Utilities\zlib\include. In my user-config.jam I have:

using zlib : 1.2.8 : <search>E:/Utilities/zlib/lib
<include>E:/Utilities/zlib/include <name>zdll ;

I invoke b2 from the iostreams build directory as:

b2 --build-dir=C:/Programming/VersionControl/modular-boost/build
--reconfigure "-sNO_BZIP2=1" -d2 toolset=gcc-6.2

The output ends with:

gcc.compile.c++
C:\Programming\VersionControl\modular-boost\build\boost\architecture\gcc-mingw-6.2\debug\sparc.o

 
"C:/Utilities/mingw-w64/i686-6.2.0-posix-dwarf-rt_v5-rev1/mingw32/bin/g++"
  -ftemplate-depth-128 -Wno-unused-local-typedefs
-ftrack-macro-expansion=0 -Wno-unused-variable -std=c++03 -O0
-fno-inline -Wall -g -c -o
"C:\Programming\VersionControl\modular-boost\build\boost\architecture\gcc-mingw-6.2\debug\sparc.o"
"..\..\..\libs\config\checks\architecture\sparc.cpp"

..\..\..\libs\config\checks\architecture\sparc.cpp:10:2: error: #error
"Not SPARC"
  #error "Not SPARC"
   ^~~~~
...failed gcc.compile.c++
C:\Programming\VersionControl\modular-boost\build\boost\architecture\gcc-mingw-6.2\debug\sparc.o...
...failed updating 1 target...
     - sparc : no
...found 2 targets...
     - x86 : yes
...found 10 targets...
     - zlib : yes
error: at
E:/Programming/VersionControl/modular-boost/tools/build/src/kernel\modules.jam:107
error: Name clash for
'<pC:\Programming\VersionControl\modular-boost\build\boost\bin.v2\standalone\ac\gcc-mingw-6.2\debug>zdll.exe'
error:
error: Tried to build the target twice, with property sets having
error: these incompatible properties:
error:
error: - none
error: - <address-model>32 <architecture>x86
<deduced-address-model>32 <deduced-architecture>x86
error:
error: Please make sure to have consistent requirements for these
error: properties everywhere in your project, especially for install
error: targets.

In the latest iostreams build jamfile you can see these relevant lines:

for local v in NO_COMPRESSION
                NO_ZLIB
                NO_BZIP2
{
     $(v) = [ modules.peek : $(v) ] ;
}

if $(NO_COMPRESSION) != 1 && $(NO_ZLIB) != 1
{
     using zlib : : <build-name>boost_zlib <tag>@tag : : true ;
     zlib-requirements =
         [ ac.check-library /zlib//zlib : <library>/zlib//zlib
           <source>zlib.cpp <source>gzip.cpp ] ;
}
else
{
     if $(debug)
     {
         ECHO "notice: iostreams: not using zlib compression " ;
     }
}

local sources = file_descriptor.cpp mapped_file.cpp ;

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

Why am I having the problem that I am seeing ?


Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk