|Title||MPS lacks separate w3i3m9 platform for building with VC9 (Microsoft Visual C++ 9.0)|
|Assigned user||Richard Kistruck|
|Description||MPS lacks separate platform for building with VC9 (Microsoft Visual C++ 9.0)|
A separate platform allows:
- experimenting with different compiler and linker options;
- makes it easier and safer to build both VC6 and VC9 versiosn and compare.
job001945 "MPS buildsys CONFIG_PF_* does not select a platform, is not checked by mpstd.h"
(provides automatic checking of compiler version)
Making a new separate w3i3m9 platform in the MPS buildsys has many
- keeps build products separate;
- allows verification of _MSC_VER, to check that the intended
compiler really is being used;
- records in mps.lib which compiler it was built with;
- is not betting on the VC6/VC9 split going away any time soon.
(The alternative is manually moving and renaming directories and
build products in-sync with manually selecting between VC6 and VC9
compilers. This is error-prone.)
MPS buildsys is simple: for example there is no notion of
closely-related 'builders'. Several source files ifdef on
"MPS_BUILD_MV"; these ifdefs must be selected for both VC6 and VC9;
it would be onerous to change them.
Therefore the new w3i3m9 is NOT a full new platform: it is a
'clone-platform' that is a clone of w3i3mv. The both define
"MPS_BUILD_MV", and so to most MPS source code they appear identical.
Therefore the only differences between w3i3mv and w3i3m9 are:
- in the buildsystem;
- in mpstd.h;
- in the value of the "MPS_PF_STRING" preprocessor symbol.
If, in the long-term, both platforms are still required, this design
decision might need re-evaluation. Splitting MPS_BUILD_MV into
_MV and _M9, and the consequent source code changes, would make
w3i3m9 a full platform.
(More likely is that they will merge back into w3i3mv, with compiler
options that work for both).
|Created by||Richard Kistruck|
|Created on||2008-10-22 17:35:05|
|Last modified by||Richard Kistruck|
|Last modified on||2008-10-23 15:47:25|
|History||2008-10-22 RHSK Created.|
|166537||closed||2008-10-23 15:46:50||Richard Kistruck||MPS master: manual/build-notes: w3i3m9 (Windows Visual C++ 9.0) platform|
|166505||closed||2008-10-20 17:31:57||Richard Kistruck||MPS br/vc9: new w3i3m9 clone-platform:
- w3i3m9.nmk: use commpre9.nmk (not commpre.nmk), for VC9 compiler
and linker options;
- w3i3m[v9].nmk: declare CONFIG_PF_...
- mpstd.h: if CONFIG_PF_... is declared, check that the correct
compiler really is in use.
|166504||open||2008-10-20 16:51:50||Richard Kistruck||MPS br/vc9: new w3i3m9 clone-platform:
Regular changes w3i3mv ->w3i3m9
|166500||open||2008-10-20 16:24:20||Richard Kistruck||MPS br/vc9: new w3i3m9 clone-platform (not a full platform)
Clone w3i3mv.nmk -> w3i3m9
Clone w3build.bat -> w3vc9.bat