Boost logo

Boost :

Subject: [boost] Boost 1.57 hot-out-of-Git fails to compile for Windows Phone
From: Moshe Rubin (moshe_at_[hidden])
Date: 2014-12-03 10:06:39


I cloned Boost 1.57 from GitHub, intending to run b2 with the appropriate options to build libraries for Windows Phone. I understand that Steven Gates's pull requests for Windows Phone have already been merged in. Running the appropriate "b2" command fails with an error message. Can you help?

Here are the steps I took (I'm running MSVC 2013, so I've got all required libs etc.):

(*) Clone Boost 1.57 from GitHub
(*) cd to the boost folder
(*) Execute "bootstrap"
(*) Execute "b2 headers"
(*) Execute "b2 toolset=msvc-12.0 windows-api=phone architecture=arm link=static variant=debug debug-symbols=on debug-store=database stage"

I get the following output:

    =============================================================================
    Performing configuration checks

        - symlinks supported : no (cached)
        - junctions supported : yes (cached)
        - hardlinks supported : yes (cached)
        - 32-bit : yes
        - has_icu builds : no
    warning: Graph library does not contain MPI-based parallel components.
    note: to enable them, add "using mpi ;" to your user-config.jam
        - zlib : no
        - iconv (libc) : no
        - iconv (separate) : no
        - icu : no
        - icu (lib64) : no
        - message-compiler : yes
        - gcc visibility : no
        - long double support : no
    warning: skipping optional Message Passing Interface (MPI) library.
    note: to enable MPI support, add "using mpi ;" to user-config.jam.
    note: to suppress this message, pass "--without-mpi" to bjam.
    note: otherwise, you can safely ignore this message.
    error: Name clash for '<pstage\lib>libboost_system-vc120-mt-gd-1_58.lib'
    error:
    error: Tried to build the target twice, with property sets having
    error: these incompabile properties:
    error:
    error: - <warnings>all
    error: - <address-model>32 <warnings>on
    error:
    error: Please make sure to have consistent requirements for these
    error: properties everywhere in your project, especially for install
    error: targets.
    =============================================================================

When I examine the generated file bin.v2\project-cache.jam, I see that "set junctions" and "set hardlinks" commands are duplicated for "<windows-api>phone", where the only difference between them is "<warnings>on" and "<warnings>all", possibly causing the error messages:

<snippet>
set "symlinks supported-<abi>ms-<architecture>arm...-<warnings>on-<windows-api>phone" : "false" ;
set "junctions supported-<abi>ms-<architecture>arm...-<warnings>on-<windows-api>phone" : "true" ;
set "hardlinks supported-<abi>ms-<architecture>arm...-<warnings>on-<windows-api>phone" : "true" ;
set "symlinks supported-<abi>ms-<architecture>arm...-<warnings>all-<windows-api>phone" : "false" ;
set "junctions supported-<abi>ms-<architecture>arm...-<warnings>all-<windows-api>phone" : "true" ;
set "hardlinks supported-<abi>ms-<architecture>arm...-<warnings>all-<windows-api>phone" : "true" ;
</snippet>

(1) Why are the first three statements duplicated for windows-api=phone?
(2) Why does <warnings> differ between them?
(3) Where in Boost.Build is this generated?
(4) How can I solve the problem and move forward?

Many thanks in advance,

Moshe


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk