Boost logo

Boost-Build :

From: Reece Dunn (msclrhd_at_[hidden])
Date: 2005-10-20 18:23:00

Vladimir Prus wrote:
> On Tuesday 18 October 2005 19:40, Reece Dunn wrote:
>>Vladimir Prus <ghost <at>> writes:
>>>On Monday 17 October 2005 12:28, Reece Dunn wrote:
>>>>The IDE for msvc sets the /machine linker flag to the target machine
>>>>(X86, SH3, etc.) and also adds a define for the architecture being
>>>>compiled such as _AMD64_. This patch adds that support for BBv2.
>>>This looks fine. Am I right in assuming that the -machine option is only
>>>passed with VC 8.0?
>>As far as I am aware, the -machine option is available for all VC versions
>>and will be passed to all of the versions. This is especially true for
>>eVC++ 4 (embedded VC6) and the VC7/7.1 ia64/amd64 cross-compilers in some
>>PlatformSDK distributions.
> Ok.
> 1. What happens if you don't pass those options?


These allow the windows headers to correctly detect the architecture
being targetted and use the correct function variants of some of the
windows API.

WIN32 (for i386), WIN64 (for amd64 and ia64) or WINCE (for arm, mips, sh
and cex86) should also be defined to tell the windows headers which
version of windows is being used.

If BBv2 doesn't pass these defines, your exe/lib should pass these. I am
not sure what would happen if you leave these out. My best guess is that
you would get compiler, linker or runtime errors if using
architecture-dependant code (for example the CONTEXT structure used for
getting CPU register contexts).


The linker uses the default value for this option depending on the
linker being used (e.g. the amd64 linkers will use -machine:amd64) and
may issue a warning about a missing -machine option.

> 2. Do you have amd64 or ia64 box where you've tested this patch.

I don't have a 64-bit machine to test these. I have, however, built them
with msvc-8.0 (beta2).

> I'm just trying to fully understand what this all is about.

No problem.

- Reece


Boost-Build list run by bdawes at, david.abrahams at, gregod at, cpdaniel at, john at