Boost logo

Boost-Build :

Subject: Re: [Boost-build] program_options fails to copy lib in msvc-141 after bcpCopy
From: Kevin Maskell-Moody (kevin.maskellmoody_at_[hidden])
Date: 2018-09-04 20:42:57


Hi Robert,

Thanks for the reply. The second command that I listed builds the boost bcp
tool:

b2 tools/bcpCopy

Also, here are the docs on that tool -
https://www.boost.org/doc/libs/1_68_0/tools/bcp/doc/html/index.html

I don't know how it works well enough to dig through why it is including
program_options and missing some of its targets. I'm assuming this is
picked up by an include somewhere. I could dig through the html report, but
I am not too concerned about program_options getting included, as much as I
am with it failing to build.

*So, I guess the real question is why the progarm_option's export libs
appear to be in the copy for the stage target, but not built. Any guidance
would be great.*

This is all that I see in the libs/program_options/build/Jamfile.v2

project boost/program_options
    : source-location ../src
    ;

SOURCES =
    cmdline config_file options_description parsers variables_map
    value_semantic positional_options utf8_codecvt_facet
    convert winmain split
    ;

boost-lib program_options
    : $(SOURCES).cpp
    : # See https://svn.boost.org/trac/boost/ticket/5049
      <target-os>hpux,<toolset>gcc:<define>_INCLUDE_STDC__SOURCE_199901
    ;

It seems fairly simple and straight forward. What am I missing about the
boost-lib rule?

Regards,
Kevin

P.S. The whole purpose of this process is to ensure that we are only
building the subset of boost modules that we require, and to namespace,
rename, etc. the boost libraries. So, I am stuck with making this process
continue to work for us, unless there is a feasible workaround to achieving
those goals.

On Fri, Aug 31, 2018 at 1:12 PM Robert via Boost-build <
boost-build_at_[hidden]> wrote:

> On 8/29/2018 2:43 PM, Kevin Maskell-Moody via Boost-build wrote:
> > Hi,
> >
> > Our Boost build is a subset of all the modules. After upgrading to Boost
> > 1.68.0, our build is now failing on the program_options target. It does
> > appear to produce the program_option dll's, but not the export libs.
> >
> > To be honest, I don't even know what target is including
> > program_options, because we don't explicitly include program_options in
> > the bcpCopy command. I'm assuming filesystem by the looks of the
> > following output.
> >
> > Here is the output from the debug build (the same is seen in release):
> >
> > Creating library
> >
> build\boost\bin.v2\libs\filesystem\build\msvc-14.1\debug\address-model-64\threading-multi\objyboost_filesystem-vc141-mt-gd-x64-1_68.lib
>
> > and object
> >
> build\boost\bin.v2\libs\filesystem\build\msvc-14.1\debug\address-model-64\threading-multi\objyboost_filesystem-vc141-mt-gd-x64-1_68.exp
> > msvc.manifest.dll
> >
> build\boost\bin.v2\libs\filesystem\build\msvc-14.1\debug\address-model-64\threading-multi\objyboost_filesystem-vc141-mt-gd-x64-1_68.dll
> > common.copy stage\lib\objyboost_filesystem-vc141-mt-gd-x64-1_68.dll
> >
> build\boost\bin.v2\libs\filesystem\build\msvc-14.1\debug\address-model-64\threading-multi\objyboost_filesystem-vc141-mt-gd-x64-1_68.dll
> > 1 file(s) copied.
> > common.copy stage\lib\objyboost_filesystem-vc141-mt-gd-x64-1_68.lib
> >
> build\boost\bin.v2\libs\filesystem\build\msvc-14.1\debug\address-model-64\threading-multi\objyboost_filesystem-vc141-mt-gd-x64-1_68.lib
> > 1 file(s) copied.
> > compile-c-c++
> >
> build\boost\bin.v2\libs\program_options\build\msvc-14.1\debug\address-model-64\threading-multi\cmdline.obj
> > cmdline.cpp
> > compile-c-c++
> >
> build\boost\bin.v2\libs\program_options\build\msvc-14.1\debug\address-model-64\threading-multi\config_file.obj
> > config_file.cpp
> > compile-c-c++
> >
> build\boost\bin.v2\libs\program_options\build\msvc-14.1\debug\address-model-64\threading-multi\options_description.obj
> > options_description.cpp
> > compile-c-c++
> >
> build\boost\bin.v2\libs\program_options\build\msvc-14.1\debug\address-model-64\threading-multi\parsers.obj
> > parsers.cpp
> > compile-c-c++
> >
> build\boost\bin.v2\libs\program_options\build\msvc-14.1\debug\address-model-64\threading-multi\variables_map.obj
> > variables_map.cpp
> > compile-c-c++
> >
> build\boost\bin.v2\libs\program_options\build\msvc-14.1\debug\address-model-64\threading-multi\value_semantic.obj
> > value_semantic.cpp
> > compile-c-c++
> >
> build\boost\bin.v2\libs\program_options\build\msvc-14.1\debug\address-model-64\threading-multi\positional_options.obj
> > positional_options.cpp
> > compile-c-c++
> >
> build\boost\bin.v2\libs\program_options\build\msvc-14.1\debug\address-model-64\threading-multi\utf8_codecvt_facet.obj
> > utf8_codecvt_facet.cpp
> > compile-c-c++
> >
> build\boost\bin.v2\libs\program_options\build\msvc-14.1\debug\address-model-64\threading-multi\convert.obj
> > convert.cpp
> > compile-c-c++
> >
> build\boost\bin.v2\libs\program_options\build\msvc-14.1\debug\address-model-64\threading-multi\winmain.obj
> > winmain.cpp
> > compile-c-c++
> >
> build\boost\bin.v2\libs\program_options\build\msvc-14.1\debug\address-model-64\threading-multi\split.obj
> > split.cpp
> > msvc.link.dll
> >
> build\boost\bin.v2\libs\program_options\build\msvc-14.1\debug\address-model-64\threading-multi\objyboost_program_options-vc141-mt-gd-x64-1_68.dll
> > msvc.manifest.dll
> >
> build\boost\bin.v2\libs\program_options\build\msvc-14.1\debug\address-model-64\threading-multi\objyboost_program_options-vc141-mt-gd-x64-1_68.dll
> > common.copy stage\lib\objyboost_program_options-vc141-mt-gd-x64-1_68.dll
> >
> build\boost\bin.v2\libs\program_options\build\msvc-14.1\debug\address-model-64\threading-multi\objyboost_program_options-vc141-mt-gd-x64-1_68.dll
> > 1 file(s) copied.
> > common.copy stage\lib\objyboost_program_options-vc141-mt-gd-x64-1_68.lib
> > The system cannot find the file specified.
> >
> > copy /b
> >
> "build\boost\bin.v2\libs\program_options\build\msvc-14.1\debug\address-model-64\threading-multi\objyboost_program_options-vc141-mt-gd-x64-1_68.lib"
>
> > + this-file-does-not-exist-A698EE7806899E69
> > "stage\lib\objyboost_program_options-vc141-mt-gd-x64-1_68.lib"
> >
> > ...failed common.copy
> > stage\lib\objyboost_program_options-vc141-mt-gd-x64-1_68.lib...
> >
> >
> > To describe the build more completely, we do the following:
> >
> > bootstrap.bat
> > b2 tools/bcpCopy
> > dist\bin\bcp --namespace=xxx smart_ptr filesystem array.hpp container
> > move ptr_container algorithm/string.hpp tokenizer.hpp thread chrono
> > atomic foreach.hpp uuid integer asio crc config context build predef
> > E:\our\boost/xxx
> > (from bcpCopy target dir)
> > src\b2 --without-test --prefix=E:\our\boost --build-dir=build
> > link=shared,static threading=multi runtime-link=shared toolset=msvc-14.1
> > architecture=x86 address-model=64 variant=debug,release stage
> >
> > This same build process worked fine with Boost 1.59.0 on msvc 14, 12,
> > and 11.
> >
>
> I am not sure how much this helps. Here is what I have though. When I
> set the Boost 1.68.0, b2 for complete install, I obtain the respective
> program_options*.lib and .dll files for msvc 14, 14.1, Intel 18.0,
> update 3, address-model=32, and address-model=64. I am not finding a
> bcpCopy* file (e.g. * is a wildcard) anywhere in the 1.68.0, 1.66.0, or
> 1.65.1 source file trees.
>
> --Robert
>
> > Regards,
> > Kevin
> >
> >
> > _______________________________________________
> > Unsubscribe & other changes:
> https://lists.boost.org/mailman/listinfo.cgi/boost-build
> >
>
> _______________________________________________
> Unsubscribe & other changes:
> https://lists.boost.org/mailman/listinfo.cgi/boost-build
>



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