MPS issue job001944

TitleMPS lacks separate w3i3m9 platform for building with VC9 (Microsoft Visual C++ 9.0)
Assigned userRichard Kistruck
DescriptionMPS 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.

Related jobs:
job001945 "MPS buildsys CONFIG_PF_* does not select a platform, is not checked by mpstd.h"
(provides automatic checking of compiler version)
AnalysisRHSK 2008-10-22
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).
How foundunknown
Observed in1.108.2
Introduced in1.108.2
Created byRichard Kistruck
Created on2008-10-22 17:35:05
Last modified byRichard Kistruck
Last modified on2008-10-23 15:47:25
History2008-10-22 RHSK Created.


Change Effect Date User Description
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