Boost logo

Boost :

Subject: [boost] [context] [windows] Intel C++ and GCC Support?
From: Joshua Boyce (raptorfactor_at_[hidden])
Date: 2012-04-20 15:49:54


I notice that Boost.Context only seems to support MSVC under Windows, and
attempts to compile it under GCC or Intel C++ will fail because it's not
correctly assembling fcontext_i386_ms_pe_masm/fcontext_x86_64_ms_pe_masm.

e.g. Under Intel I get:

intel-win.compile.asm
> C:\Users\Josh\Documents\code\boost-trunk\bin.v2\libs\context\build\intel-win\debug\address-model-64\architecture-x86\link-static\runtime-link-static\threading-multi\asm\fcontext_x86_64_ms_pe_masm.obj

'-c' is not recognized as an internal or external command,

operable program or batch file.

> -c -Zp4 -Cp -Cx -DBOOST_ALL_NO_LIB=1 -DWINVER=_WIN32_WINNT_VISTA
> -D_WIN32_WINNT=_WIN32_WINNT_VISTA -DBOOST_ALL_NO_LIB=1
> -DWINVER=_WIN32_WINNT_VISTA -D_WIN32_WINNT=_WIN32_WINNT_VISTA /Zi /Zd /W3
> -Fo
> "C:\Users\Josh\Documents\code\boost-trunk\bin.v2\libs\context\build\intel-win\debug\address-model-64\architecture-x86\link-static\runtime-link-static\threading-multi\asm\fcontext_x86_64_ms_pe_masm.obj"
> "C:\Users\Josh\Documents\code\boost-trunk\libs\context\src\asm\fcontext_x86_64_ms_pe_masm.asm"

> ...failed intel-win.compile.asm
> C:\Users\Josh\Documents\code\boost-trunk\bin.v2\libs\context\build\intel-win\debug\address-model-64\architecture-x86\link-static\runtime-link-static\threading-multi\asm\fcontext_x86_64_ms_pe_masm.obj...

Whilst under GCC (via MinGW-w64) I get:

Jamfile</C:/Users/Josh/Documents/code/boost-trunk/libs/context/build>.masm64
C:\Users\Josh\Documents\code\boost-trunk\bin.v2\libs\context\build\gcc-mingw-4.7.0\release\address-model-64\architecture-x86\debug-symbols-on\link-static\runtime-link-static\threading-multi\asm\fcontext_x86_64_ms_pe_masm.o
'ml64' is not recognized as an internal or external command,
operable program or batch file.

ml64 /c
/Fo"C:\Users\Josh\Documents\code\boost-trunk\bin.v2\libs\context\build\gcc-mingw-4.7.0\release\address-model-64\architecture-x86\debug-symbols-on\link-static\runtime-link-static\threading-multi\asm\fcontext_x86_64_ms_pe_masm.o"
"C:\Users\Josh\Documents\code\boost-trunk\libs\context\src\asm\fcontext_x86_64_ms_pe_masm.asm"

...failed
Jamfile</C:/Users/Josh/Documents/code/boost-trunk/libs/context/build>.masm64
C:\Users\Josh\Documents\code\boost-trunk\bin.v2\libs\context\build\gcc-mingw-4.7.0\release\address-model-64\architecture-x86\debug-symbols-on\link-static\runtime-link-static\threading-multi\asm\fcontext_x86_64_ms_pe_masm.o...

This occurs for both 64-bit and 32-bit compilation.

Is this a known issue with a planned fix? Or is MSVC the only compiler
supported under Windows? (I know it's a pain because GCC afaik uses a
different assembly syntax... Not sure about Intel.)

As an aside, Boost.Context does not yet seem to have an entry in Trac.

Thanks.


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