Boost logo

Boost Users :

Subject: Re: [Boost-users] Build Boost.Context with Visual Studio
From: Thomas Ziegenhagen (thomas_at_[hidden])
Date: 2016-02-26 09:57:54


Hi Oliver,

> you need to build boost or a subset of boost with b2/bjam
> MASM, the assembler tool, ist part of MS Windows Driver Kit as you can
> read
> in the docu
> http://www.boost.org/doc/libs/1_60_0/libs/context/doc/html/context/requirements.html

Thanks for your response, but please read again the command line I stated
in my first mail:

ml64 /Fo path/to/obj/file.obj /c path/to/source/jump_x86_64_ms_pe_masm.asm

Please note that this already *is* the 64bit MASM executable as stated in
the documentation. And using MASM64 leads to the aforementioned errors.
The error messages were as follows:

------
1>------ Erstellen gestartet: Projekt: boost, Konfiguration: Debug x64
------
1> Microsoft (R) Macro Assembler (x64) Version 14.00.23506.0
1> Copyright (C) Microsoft Corporation. All rights reserved.
1>
1> Assembling:
C:\Projekte\DeadPlanet\SourceExt\boost\context\asm\jump_x86_64_ms_pe_masm.asm
1>
C:\Projekte\DeadPlanet\SourceExt\boost\context\asm\jump_x86_64_ms_pe_masm.asm(80)ied
size
1>: error A2008 : syntax error : FRAME
1>
C:\Projekte\DeadPlanet\SourceExt\boost\context\asm\jump_x86_64_ms_pe_masm.asm(81)ied
size
1>CUSTOMBUILD : warning A4020: directive ignored outside a procedure
1>
C:\Projekte\DeadPlanet\SourceExt\boost\context\asm\jump_x86_64_ms_pe_masm.asm(215
1>CUSTOMBUILD : fatal error A1010: unmatched block nesting : jump_fcontext
------

So again the questions:

a) Is this the correct asm file for Visual Studio, x64 architecture?
b) If yes, where do those error messages come from? It's the same source
file, the same build tool, the correct invocation parameters, and no
includes or configuration referenced from that ASM file - should result in
the same object file, shouldn't it?

For reference: the 32bit version builds and links fine. Command line for
32bit is:

ml /Fo path/to/obj/file.obj /c path/to/source/jump_i386_ms_pe_masm.asm

All:
I will not use bjam, as stated before: it does not allow the necessary
fine control over the compiler settings, e.g. the compiler choice v140 vs.
v140_xp. Ignoring this will build just fine but leads to rare crashes
which unfortunately do NOT happen on systems with debugging capabilities
but only on some client systems with *days* of response time. This is not
fun. So please, do not discuss the environment. Discuss the actual issue
at hand instead.

Thanks again.

Bye, Thomas


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net