Boost C++ Libraries: Ticket #11604: Boost.Context Assembler Error A1010 with Intel Compiler 16.0 (win7 64bit) https://svn.boost.org/trac10/ticket/11604 <p> Hi </p> <p> I'm currently trying to compiler the boost library for Intel Compiler 16.0 together with msvc 2015. I compile the 64 bit libraries. </p> <p> Unfortunately I get some Assembler errors when compiling the boost.context module. On the command line the following command is performed: </p> <pre class="wiki">ml64 -nologo -c -Zp4 -Cp -Cx -DBOOST_ALL_NO_LIB=1 -DBOOST_CHRONO_DYN_LINK=1 -DBOOST_CONTEXT_DYN_LINK=1 -DBOOST_CONTEXT_SOURCE -DBOOST_DISABLE_ASSERTS -DBOOST_SYSTEM_DYN_LINK=1 -DBOOST_SYSTEM_NO_DEPRECATED -DBOOST_THREAD_BUILD_DLL=1 -DBOOST_THREAD_USE_DLL=1 -DNDEBUG -DBOOST_ALL_NO_LIB=1 -DBOOST_CHRONO_DYN_LINK=1 -DBOOST_CONTEXT_DYN_LINK=1 -DBOOST_CONTEXT_SOURCE -DBOOST_DISABLE_ASSERTS -DBOOST_SYSTEM_DYN_LINK=1 -DBOOST_SYSTEM_NO_DEPRECATED -DBOOST_THREAD_BUILD_DLL=1 -DBOOST_THREAD_USE_DLL=1 -DNDEBUG /W3 -Fo "build-default\intel64\boost\bin.v2\libs\context\build\intel-vc14-win-16.0\release\address-model-64\threading-multi\asm\jump_x86_64_ms_pe_masm.obj" "libs\context\src\asm\jump_x86_64_ms_pe_masm.asm" </pre><p> I get the following error message (it seems that some parts of the error message are mixed, but this is the original tool output): </p> <pre class="wiki"> Assembling: libs\context\src\asm\jump_x86_64_ms_pe_masm.asm libs\context\src\asm\jump_x86_64_ms_pe_masm.asm(80)ge for specified size libs\context\src\asm\jump_x86_64_ms_pe_masm.asm(80) : error A2libs\context\src\asm\jump_x86_64_ms_pe_masm.asm(81)ge for specified size libs\context\src\asm\jump_x86_64_ms_pe_masm.asm(81) : warning A4020:directive ignolibs\context\src\asm\jump_x86_64_ms_pe_masm.asm(215)rge for specified size libs\context\src\asm\jump_x86_64_ms_pe_masm.asm(215) : fatal error A1010:unmatche_x8? </pre><p> When I compile only with msvc 2015 toolset, everything is fine. Thus I printed out the corresponding command for msvc 2015 only and I see one difference: For the Visual C++ compiler the bjam is giving the definition BOOST_CONTEXT_EXPORT=EXPORT to the assembler. When I add this definition also to the intel compiler command, it compiles without errors: </p> <pre class="wiki">ml64 -nologo -c -Zp4 -Cp -Cx -DBOOST_CONTEXT_EXPORT=EXPORT -DBOOST_ALL_NO_LIB=1 -DBOOST_CHRONO_DYN_LINK=1 -DBOOST_CONTEXT_DYN_LINK=1 -DBOOST_CONTEXT_SOURCE -DBOOST_DISABLE_ASSERTS -DBOOST_SYSTEM_DYN_LINK=1 -DBOOST_SYSTEM_NO_DEPRECATED -DBOOST_THREAD_BUILD_DLL=1 -DBOOST_THREAD_USE_DLL=1 -DNDEBUG -DBOOST_ALL_NO_LIB=1 -DBOOST_CHRONO_DYN_LINK=1 -DBOOST_CONTEXT_DYN_LINK=1 -DBOOST_CONTEXT_SOURCE -DBOOST_DISABLE_ASSERTS -DBOOST_SYSTEM_DYN_LINK=1 -DBOOST_SYSTEM_NO_DEPRECATED -DBOOST_THREAD_BUILD_DLL=1 -DBOOST_THREAD_USE_DLL=1 -DNDEBUG /W3 -Fo "build-default\intel 64\boost\bin.v2\libs\context\build\intel-vc14-win-16.0\release\address-model-64\threading-multi\asm\jump_x86_64_ms_pe_masm.obj" "libs\context\src\asm\jump_x86_64_ms_pe_masm.asm" Assembling: libs\context\src\asm\jump_x86_64_ms_pe_masm.asm </pre><p> However I cannot find any description what the definition BOOST_CONTEXT_EXPORT=EXPORT means. Anyway I was able to fix the issue by adding the lines </p> <pre class="wiki"> &lt;toolset&gt;intel,&lt;link&gt;shared:&lt;define&gt;BOOST_CONTEXT_EXPORT=EXPORT &lt;toolset&gt;intel,&lt;link&gt;static:&lt;define&gt;BOOST_CONTEXT_EXPORT= </pre><p> to the file boost\libs\context\build\Jamfile.v2 (after line 32 for msvc) </p> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/11604 Trac 1.4.3 olli Mon, 31 Aug 2015 19:22:13 GMT status changed; resolution set https://svn.boost.org/trac10/ticket/11604#comment:1 https://svn.boost.org/trac10/ticket/11604#comment:1 <ul> <li><strong>status</strong> <span class="trac-field-old">new</span> → <span class="trac-field-new">closed</span> </li> <li><strong>resolution</strong> → <span class="trac-field-new">fixed</span> </li> </ul> <p> thx, fixed in branch develop + master </p> Ticket