Title | MPS lacks separate w3i3m9 platform for building with VC9 (Microsoft Visual C++ 9.0) |
Status | closed |
Priority | essential |
Assigned user | Richard Kistruck |
Organization | Ravenbrook |
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. Related jobs: job001945 "MPS buildsys CONFIG_PF_* does not select a platform, is not checked by mpstd.h" (provides automatic checking of compiler version) |
Analysis | RHSK 2008-10-22 Making a new separate w3i3m9 platform in the MPS buildsys has many advantages: - 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 found | unknown |
Evidence | None |
Observed in | 1.108.2 |
Introduced in | 1.108.2 |
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. |
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 |