Boost logo

Boost-Build :

Subject: Re: [Boost-build] 1.53.00 - masm ml options not honored??
From: Jeff Flinn (jeffrey.flinn_at_[hidden])
Date: 2013-10-03 10:01:42


On 10/3/2013 2:37 AM, Vladimir Prus wrote:
> On 02.10.2013 00:36, Jeff Flinn wrote:
>> Any idea what could be the cause of the following issue:
>>
>> > Ok I'm able to build my app linking with static context libs.
>> >
>> > I had to manually assemble the following into obj's by:
>> >
>> > ml /safeseh /c make_i386_ms_pe_masm.asm
>> > ml /safeseh /c jump_i386_ms_pe_masm.asm
>> >
>> > and then replace
>> >
>> > make_i386_ms_pe_masm.obj
>> > jump_i386_ms_pe_masm.obj
>> >
>> > in the boost build generated libs with the above.
>> >
>> > Any idea why modifying
>> ...\boost_1_53_0\libs\context\**build\Jamfile.v2:
>> >
>> >
>> > actions masm
>> > {
>> > ml /safeseh /c /Fo"$(<)" "$(>)"
>> > }
>> >
>> > is not being honored?
>> >
>>
>> I remember that boost.build has a bug which causes this behaviour - I
>> don't
>> know when it will be fixed (if ever) or we have to wait for cmake.
>
> I am missing context here. If you have 'safeseh' in 'masm' action in
> context's Jamfile,
> then that action will use safeseh option. There's nothing that will
> magically strip
> 'safeseh' from any command lines. So, could you check that:
>
> - You are using Boost.Build you have modified (use --debug-configuration
> option)
> - Build process actually invokes this action (i.e. it prints NNN.nasm as
> the action
> being executed, where NNN includes context's Jamfile path.

At the bottowm of this posting is the command line and resulting output.
I've verified that the boost context jamfile.v2 has /safeseh specified
as shown above. I've added:

MyHandler proc
.safeseh MyHandler
MyHandler endp

to context's make_i386_ms_pe_masm.asm file which results in the ml warning:

warning A4024:directive ignored without /safeseh switch

Which leads me to believe that the masm definition is not being used as
specified. Is there a way to echo the actual ml command being used by b2?

Thanks, Jeff

C:\boost\boost_1_53_0>.\b2 --debug-configuration --stagedir=stage.x86
--with-context define=_SCL_SECURE_NO_WARNINGS defi
ne=_CRT_SECURE_NO_WARNINGS define=_ITERATOR_DEBUG_LEVEL=0 link=static
runtime-link=static release
notice: found boost-build.jam at C:/boost/boost_1_53_0/boost-build.jam
notice: loading Boost.Build from C:/boost/boost_1_53_0/tools/build/v2
notice: Searching C:\windows C:\Users\Jeffrey Flinn C:\Users\Jeffrey
Flinn C:\Users\Jeffrey Flinn C:\boost\boost_1_53_0\
tools/build/v2 C:/boost/boost_1_53_0/tools/build/v2/kernel
C:/boost/boost_1_53_0/tools/build/v2/util C:/boost/boost_1_53
_0/tools/build/v2/build C:/boost/boost_1_53_0/tools/build/v2/tools
C:/boost/boost_1_53_0/tools/build/v2/contrib C:/boost
/boost_1_53_0/tools/build/v2/. for site-config configuration file
site-config.jam .
notice: Loading site-config configuration file site-config.jam from
C:/boost/boost_1_53_0/tools/build/v2/site-config.jam
  .
notice: Searching C:\Users\Jeffrey Flinn C:\Users\Jeffrey Flinn
C:\Users\Jeffrey Flinn C:\boost\boost_1_53_0\tools/build
/v2 C:/boost/boost_1_53_0/tools/build/v2/kernel
C:/boost/boost_1_53_0/tools/build/v2/util C:/boost/boost_1_53_0/tools/bu
ild/v2/build C:/boost/boost_1_53_0/tools/build/v2/tools
C:/boost/boost_1_53_0/tools/build/v2/contrib C:/boost/boost_1_53
_0/tools/build/v2/. for user-config configuration file user-config.jam .
notice: Loading user-config configuration file user-config.jam from
C:/boost/boost_1_53_0/tools/build/v2/user-config.jam
  .
notice: Searching for project-config configuration file
project-config.jam .
notice: Loading project-config configuration file project-config.jam
from project-config.jam .
notice: [msvc-cfg] msvc-10.0 detected, command: 'C:\Program Files
(x86)\Microsoft Visual Studio 10.0\VC\bin\cl.exe'
notice: will use 'C:\Program Files (x86)\Microsoft Visual Studio
10.0\VC\bin\cl.exe' for msvc, condition <toolset>msvc-1
0.0
notice: [msvc-cfg] condition:
'<toolset>msvc-10.0/<architecture>/<address-model>', setup: 'call
"C:\Program Files (x86)\
Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86 >nul
'
notice: [msvc-cfg] condition:
'<toolset>msvc-10.0/<architecture>/<address-model>32', setup: 'call
"C:\Program Files (x86
)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86 >nul
'
notice: [msvc-cfg] condition:
'<toolset>msvc-10.0/<architecture>x86/<address-model>', setup: 'call
"C:\Program Files (x8
6)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86 >nul
'
notice: [msvc-cfg] condition:
'<toolset>msvc-10.0/<architecture>x86/<address-model>32', setup: 'call
"C:\Program Files (
x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86 >nul
'
notice: [msvc-cfg] condition:
'<toolset>msvc-10.0/<architecture>/<address-model>64', setup: 'call
"C:\Program Files (x86
)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" amd64 >nul
'
notice: [msvc-cfg] condition:
'<toolset>msvc-10.0/<architecture>x86/<address-model>64', setup: 'call
"C:\Program Files (
x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" amd64 >nul
'
notice: [msvc-cfg] condition:
'<toolset>msvc-10.0/<architecture>ia64/<address-model>', setup: 'call
"C:\Program Files (x
86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86_ia64 >nul
'
notice: [msvc-cfg] condition:
'<toolset>msvc-10.0/<architecture>ia64/<address-model>64', setup: 'call
"C:\Program Files
(x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86_ia64 >nul
'
notice: iostreams: not using zlib compression
notice: iostreams: not using zlib compression
notice: iostreams: not using bzip2 compression
notice: iostreams: not using bzip2 compression
notice: [python-cfg] Configuring python...
notice: [python-cfg] Checking interpreter command "python"...
notice: [python-cfg] running command '"python" -c "from sys import *;
print('version=%d.%d\nplatform=%s\nprefix=%s\nexec
_prefix=%s\nexecutable=%s' %
(version_info[0],version_info[1],platform,prefix,exec_prefix,executable))"
2>&1'
notice: [python-cfg] ...does not invoke a working interpreter
notice: [python-cfg] No working Python interpreter found.
notice: [python-cfg] falling back to "python"
notice: [python-cfg] Details of this Python configuration:
notice: [python-cfg] interpreter command: "python"
notice: [python-cfg] include path: "Include"
notice: [python-cfg] library path: "\libs"
notice: [python-cfg] DLL search path: "<empty>"

Building the Boost C++ Libraries.

Performing configuration checks

     - 32-bit : yes
     - x86 : yes

Component configuration:

     - atomic : not building
     - chrono : not building
     - context : building
     - date_time : not building
     - exception : not building
     - filesystem : not building
     - graph : not building
     - graph_parallel : not building
     - iostreams : not building
     - locale : not building
     - math : not building
     - mpi : not building
     - program_options : not building
     - python : not building
     - random : not building
     - regex : not building
     - serialization : not building
     - signals : not building
     - system : not building
     - test : not building
     - thread : not building
     - timer : not building
     - wave : not building

...found 19 targets...
...updating 12 targets...
common.mkdir bin.v2\libs\context\build
common.mkdir bin.v2\libs\context\build\msvc-10.0
common.mkdir bin.v2\libs\context\build\msvc-10.0\release
common.mkdir bin.v2\libs\context\build\msvc-10.0\release\link-static
common.mkdir
bin.v2\libs\context\build\msvc-10.0\release\link-static\runtime-link-static
common.mkdir
bin.v2\libs\context\build\msvc-10.0\release\link-static\runtime-link-static\threading-multi
common.mkdir
bin.v2\libs\context\build\msvc-10.0\release\link-static\runtime-link-static\threading-multi\asm
msvc.compile.asm
bin.v2\libs\context\build\msvc-10.0\release\link-static\runtime-link-static\threading-multi\asm\make_i3
86_ms_pe_masm.obj
  Assembling: libs\context\src\asm\make_i386_ms_pe_masm.asm
libs\context\src\asm\make_i386_ms_pe_masm.asm(45) : warning
A4024:directive ignored without /safeseh switch
msvc.compile.asm
bin.v2\libs\context\build\msvc-10.0\release\link-static\runtime-link-static\threading-multi\asm\jump_i3
86_ms_pe_masm.obj
  Assembling: libs\context\src\asm\jump_i386_ms_pe_masm.asm
compile-c-c++
bin.v2\libs\context\build\msvc-10.0\release\link-static\runtime-link-static\threading-multi\dummy.obj
dummy.cpp
msvc.archive
bin.v2\libs\context\build\msvc-10.0\release\link-static\runtime-link-static\threading-multi\libboost_contex
t-vc100-mt-s-1_53.lib
common.copy stage.x86\lib\libboost_context-vc100-mt-s-1_53.lib
bin.v2\libs\context\build\msvc-10.0\release\link-static\runtime-link-static\threading-multi\libboost_context-vc100-mt-s-
1_53.lib
         1 file(s) copied.
...updated 12 targets...

The Boost C++ Libraries were successfully built!

The following directory should be added to compiler include paths:

     C:/boost/boost_1_53_0

The following directory should be added to linker library paths:

     C:\boost\boost_1_53_0\stage.x86\lib

C:\boost\boost_1_53_0>


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