Boost logo

Boost-Build :

Subject: Re: [Boost-build] how to check which assembler is used
From: Oliver Kowalke (oliver.kowalke_at_[hidden])
Date: 2010-11-14 12:13:17


Am 14.11.2010 12:35, schrieb Vladimir Prus:
> On Sunday, November 14, 2010 12:13:33 Oliver Kowalke wrote:
>> Am 14.11.2010 08:49, schrieb Gevorg Voskanyan:
>>> Oliver Kowalke wrote:
>>>> Hi,
>>>> how can I check which assembler is used by boost.build.
>>>> I try to compile some asm on x64 Windows and I get some errors like
>>>> 'undefined symbol : rcx' which seams that the 32bit masm (ml.exe) is
>>>> used instead of 64bit version (ml64.exe).
>>>>
>>>> bjam option '--debug-building' doesn't give me the requested info.
>>>>
>>>> A grep of ml.exe/ml64.exe in the 'tools' subdirectory doesn't give me a
>>>> hit.
>>>>
>>>> thx,
>>>> Oliver
>>>
>>> Hi,
>>>
>>> bjam -n -a
>>> will show what commands would get executed when building, but will not
>>> actually execute them.
>>
>> It seams that bjam calls vcvars32.bat on 64bit Windows?! It should call
>> vcvars64.bat instead. This is triggered by calling vcvarsall.bat from
>> bjam with the incorrect argument (should be amd64 or x86_amd64).
>> Maybe tools/msvc.jam is not correct?
>>
>> bjam toolset=msvc-10.0 architecture=x86 instruction-set=yorksfield -n -a
>
> You probably need address-model=64 here.
>
> - Volodya
>

Yes - this works on Windows but not on Linux!

Linux:
bjam toolset=gcc architecture=x86 address-model=64 -> does not work
(call vcvars32.bat)
bjam toolset=gcc architecture=x86 instruction-set=yorksfield -> does
work (calls vcvars64.bat)

Windows(86)
bjam toolset=msvc-10.0 architecture=86 address-model=64 -> does work
(correct asm)
bjam toolset=msvc-10.0 architecture=86 instruction-set=yorksfield ->
does work (asm not vaild for selected platform)

Why does it behave differently?

thx,
Oliver


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