The MIPS ABI is actually comprised of a number of documents.
The
What systems support the ABI?
The following vendors are
shipping operating systems which support the MIPS ABI:
To be strictly accurate, there are two different forms of ABI compliance. All the ABI-conforming systems are ABI Execution Platforms, the Reference Platform is the "tie-breaker" for how a program should work. There are also ABI Generation Platforms, which are used to build ABI programs; the Reference Platform is again the "tie-breaker". The ABI generation environment need not necessarily be hosted on top of an ABI execution environment. As of the current version of this document, only the Reference Platform is an approved Generation Platform, although there are plans to certify additional Generation Platforms in the near future.
Given the current situation, it is thus a requirement that a software developer have a Reference Platform on hand, or visit or remotely access a porting center, in order to perform and test an ABI port.
A cornerstone of this strategy is the availability of
test technology to certify ABI compliance of a binary.
At the moment, facilities for such
Which Reference Platform version should I use?
Each edition of the Conformance Guide
has a matching Reference Platform which implements
that level of technology. For version 1.1 of the Conformance Guide,
the Reference Platform
is Silicon Graphics IRIX 5.2 with the
IRIS Development Option (IDO) 3.18.
The IDO is essentially the compilers and libraries.
Any Silicon
Graphics system which can run this software can be a Reference Platform.
(NOTE: prior to the release of IRIX 5.2, IRIX 5.1 with
IDO 3.17 plus a
special ABI Construction Kit (available from the SGI Developer's
Technical Program) was used as the Reference Platform
for the 1.1 Conformance Guide).
The Reference Platform conforming to the 1.0 Conformance Guide edition was MIPS Computer Systems' RISC/os 5.01 with ANSI C 3.11.
The Reference Platform for the (future) 1.2 Conformance Guide will be a future version of IRIX.
The ABI maintains backwards, but not forwards compatibility, so programs developed on the earlier RP will execute on the later ones, but will not be able to take advantage of new features.
In general, the latest RP is the best one to develop on, as it is likely to have the strongest level of support available.
What is the Black Book?
The Black Book is the MIPS Processor ABI Conformance Guide.
It is the defining document for the ABI.
What makes up the spec? Further reading
The ABI is defined by a series of documents.
The basic defining document is SVID 3.
The Generic ABI defines those elements which
must be available on all ABI compliant platforms.
The MIPS Processor Supplement defines how the Generic
ABI is implemented on the MIPS processor family.
The Conformance Guide defines additional interfaces
agreed upon by the MIPS ABI group members,
and provides guidance in implementation.
These are the references for the documents which define the standard:
System V Interface Definition, Third Edition. AT&T UNIX Software Operation, Four Volumes, Select Codes 320-136, 320-137, 320-138, 320-139. A fifth volume contains updates to the interfaces described in the first four volumes.
System V Application Binary Interface, Prentice Hall, ISBN 0-13-877598-2. This is the defining document for the Generic ABI (gABI). Note: A revised (2nd) edition and a 3rd edition are also on the market, but may document interfaces which are not covered by the MIPS ABI, and should not be used verbatim in developing MIPS ABI applications. Single copies of the gABI may be obtained from Prentice-Hall by calling 201-767-5937.
System V Application Binary Interface, MIPS Processor Supplement, Prentice-Hall, ISBN 0-13-880170-3. This is the defining document for the psABI (Processor-Specific ABI) for the MIPS Processor family. A Revised (3rd) Edition will soon be on the market, but may document interfaces which are not covered by the MIPS ABI, and should not be used verbatim in developing MIPS ABI applications. Single copies of the psABI may be obtained from Prentice-Hall by calling 201-767-5937.
MIPS Processor ABI Conformance Guide, Version 1.1, MIPS ABI Group The Conformance Guide is currently being distributed at revision level 1.1.2. The Conformance Guide editions are numbered in the form major.minor; a trailing .rev, if present indicates only minor editing changes, no new functionality. The first approved version was 1.0 (revision 1.0.1 was distributed). See Which Reference Platform version should I use? for a discussion of how the Reference Platform relates to this. Approval of version 1.2 (referred to occasionally in this text) is forthcoming, but formal release will be delayed until a matching Reference Platform is available. The functionality approved for 1.2 is described in the 1.1.2 "Future Directions" section.
Additional documents are referred to within the above standards:
MIPS RISC Architecture, Kane and Heinrich, Prentice Hall, ISBN 0-13-590472-2.
X Window System: the Complete Reference to Xlib, X Protocol, ICCCM, XLFD, Digital Press, ISBN 1-55558-088-2.
OSF/Motif Programmer's Reference, Revision 1.2, Prentice Hall, ISBN 0-13-643115-1.
NOTE: the IEEE has approved (12/93) POSIX 1295, which describes the interfaces of Motif. The specification is closely derived from the preceding reference, but as an approved standard, may replace the above in a future Conformance Guide.
Where to find documents, support, info
The Conformance Guide is available from participating
vendors.
It is also available in PostScript form to registered
developers in the SGI Developer Program, on the
Developer Toolbox CD-ROM, release 4.0 and beyond.
The SGI Developer Toolbox also includes a note in PostScript format on porting to the ABI, and some sample programs illustrating porting techniques.
Which version of the ABI does a system support?
Prior to the 1.2 Conformance Guide,
there is no reliable programmatic interface for
determining which version of the ABI a particular system
conforms to. Contact the system vendor for further information.
Specific features can usually be tested for, but compliance levels cannot be inferred from this, as the particular feature may have been introduced on a given platform before full compliance for the version of the spec in which the feature first appeared.
With the 1.2 Conformance Guide, the ABI version will be obtainable
by examining the file /etc/mipsabiversion
. If
this file is not present, the only assumption that should
be made is "pre-1.2".
What is OCMP?
The Open Computing environment for MIPS Platforms (OCMP)
group is a Japanese version of the MIPS ABI. Several MIPS ABI
group members are also active in OCMP. The OCMP-ABI is aligned
with the 1.0 version of the Conformance Guide, with a number
of extensions for internationalization and localization,
CD-ROM access, X11R5 and OSF/Motif 1.2, to name a few.
The MIPS ABI and OCMP groups work together to keep the
specifications aligned, and in fact X11R5 and OSF/Motif 1.2 became
part of the MIPS ABI specification with the 1.1 Conformance Guide.
v1.6 L/M 6/15/94