| 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 |
Generated at 2013-05-18 14:13:51 by $Id: //info.ravenbrook.com/infosys/cgi/issue.cgi#476 $
Copyright © Ravenbrook Limited. This document is provided "as is", without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this document. You may not duplicate or reproduce this document in any form without the express permission of the copyright holder.