program_options fails to copy lib in msvc-141 after bcpCopy

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

program_options fails to copy lib in msvc-141 after bcpCopy

Boost - Build mailing list
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.

Regards,
Kevin

_______________________________________________
Unsubscribe & other changes: https://lists.boost.org/mailman/listinfo.cgi/boost-build
Reply | Threaded
Open this post in threaded view
|

Re: program_options fails to copy lib in msvc-141 after bcpCopy

Boost - Build mailing list
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
Reply | Threaded
Open this post in threaded view
|

Re: program_options fails to copy lib in msvc-141 after bcpCopy

Boost - Build mailing list
Hi Robert,

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

b2 tools/bcpCopy


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
      <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 <[hidden email]> 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

_______________________________________________
Unsubscribe & other changes: https://lists.boost.org/mailman/listinfo.cgi/boost-build
Reply | Threaded
Open this post in threaded view
|

Re: program_options fails to copy lib in msvc-141 after bcpCopy

Boost - Build mailing list
In reply to this post by Boost - Build mailing list
AMDG

On 08/29/2018 01:43 PM, Kevin Maskell-Moody via Boost-build wrote:
> 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.
>

That usually indicates that no symbols are exported.
You might check that BOOST_PROGRAM_OPTIONS_DYN_LINK
is defined when compiling.  (Look in the .rsp file)

> 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 suspect that the dependency is from an example in
one one of the libraries you're using.

> I'm assuming filesystem by the looks of the following output.
>

The order is irrelevant, because Boost.Build
doesn't necessarily see the dependencies in the
same way that bcp does.

In Christ,
Steven Watanabe
_______________________________________________
Unsubscribe & other changes: https://lists.boost.org/mailman/listinfo.cgi/boost-build
Reply | Threaded
Open this post in threaded view
|

Re: program_options fails to copy lib in msvc-141 after bcpCopy

Boost - Build mailing list
Hi Steven,

Thank you very much. I didn't see that define in the response.rsp. I worked around the problem by adding the define to the b2 arguments. 

Should I file an issue for this, or is this expected behavior, going forward? It seems to me that 1 of 2 issues may be occurring:

1. bcp failed to copy the build, correctly, in this instance.
2. There is an issue with the boost-lib target assuming that staging should include export libs.

I can live with the workaround.

Regards,
Kevin


On Tue, Sep 4, 2018 at 1:57 PM Steven Watanabe via Boost-build <[hidden email]> wrote:
AMDG

On 08/29/2018 01:43 PM, Kevin Maskell-Moody via Boost-build wrote:
> 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.
>

That usually indicates that no symbols are exported.
You might check that BOOST_PROGRAM_OPTIONS_DYN_LINK
is defined when compiling.  (Look in the .rsp file)

> 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 suspect that the dependency is from an example in
one one of the libraries you're using.

> I'm assuming filesystem by the looks of the following output.
>

The order is irrelevant, because Boost.Build
doesn't necessarily see the dependencies in the
same way that bcp does.

In Christ,
Steven Watanabe
_______________________________________________
Unsubscribe & other changes: https://lists.boost.org/mailman/listinfo.cgi/boost-build

_______________________________________________
Unsubscribe & other changes: https://lists.boost.org/mailman/listinfo.cgi/boost-build