Technology Questions

  • x11 version - Which version of X11 is supported?
  • x11 complete - How much of X11 is supported by the ABI?
  • motif version - Which version of OSF/Motif is supported?
  • motif complete - How much of OSF/Motif is supported by the ABI?
  • multiprocessor - Does the ABI work on multiprocessor machines?
  • secure UNIX - Does the ABI apply to secure UNIX?
  • graphics - What graphics extensions are supported?
  • asynchronous I/O - Is asynchronous I/O supported?
  • expanded GOT - What if the Global Offset Table is too small?
  • performance - How can I take advantage of newer processor instruction sets?
  • languages - Is there an ABI C++? FORTRAN? Other Languages
  • Which version of X11 is supported?

    Version 1.0 of the Conformance Guide specified X11R4. Version 1.1 of the Conformance Guide specifies X11R5. libX11.so is supplied as a DSO. The correct version matching X11R5 is libX11.so.2. The correct version matching X11R4 is libX11.so.1.

    The X Toolkit, libXt, is supplied as a static archive. Existing test technology is not available to insure that each vendor's implementation of libXt as a DSO is functionally equivalent, thus linking is to be done with the libXt static archive on the Reference Platform.

    How much of X11 is supported by the ABI?

    The X Consortium standard represented by libX11 is fully supported. The X Toolkit (libXt) is also supported. Other "standard" X11 libraries, such as libXaw, libXmu, and libXext, may be present on the Reference Platform as static archives, but are not officially supported. Portions of the X11R5 sample implementation which represent X Consortium "works in progress" may work but are not guaranteed to be supported. PEX is not covered by the ABI.

    Which version of OSF/Motif is supported?

    Version 1.0 of the Conformance Guide calls for support for Motif 1.1. Version 1.1 of the Conformance Guide updates this to Motif 1.2. The question of staying compatible across official patches to these major releases, and still addressing critical bugs, has proven to be a thorny issue. At this time, Conformance Guide 1.1 compliant platforms are expected to run Motif 1.2.3 plus some known fixes. 1.0 compliant platforms run Motif 1.1.3.

    How much of OSF/Motif is supported by the ABI? The entire Motif 1.2 library (libXm) is supported. Other Motif libraries may be present on the Reference Platform as static archives, but are not guaranteed to be supported. The Resource Manager (libMrm) and User Interface compiler (uil and libuil are not supplied on the Reference Platform as part of the ABI Development Environment.

    Does the ABI work on multiprocessor machines?

    A number of the ABI platforms are multiprocessor, and will run ABI applications. Some information about the configuration of the machine (number of processors, for example) is available through the sysinfo facility, but multi-threading and synchronization primitives for an MP environment are not covered by the ABI, and thus cannot be utilized by compliant programs. This is a subject for ongoing work by the MIPS ABI group.

    Does the ABI apply to secure UNIX?

    Normal (non-trusted) apps will run without changes. If an application knows that the system is secure and acts on it, it will not be considered ABI compliant. However, this does not mean that the same application running at different levels of security is necessarily non-ABI compliant.

    What graphics extensions are supported?

    The MIPS ABI group is considering specifying OpenGL as an optional component of the ABI in a future version of the Conformance Guide. Where present, implementations will be binary compatible. OpenGL provides a portable, device independent 3D graphics implementation.

    Additional X11 libraries will be considered for standardization. The ABI will continue to track X11 releases from the X Consortium as appropriate; a statement on X11R6 will be forthcoming.

    Is asynchronous I/O supported?

    Asynchronous I/O will be introduced as a required interface with version 1.2 of the Conformance Guide. The interface follows the async I/O sections from POSIX 1003.1b.

    What if the Global Offest Table is too small?

    The Global Offset Table (GOT) is limited to 16,384 external references. In some circumstances, this has proven to be too small. The MIPS ABI Group has agreed to a specification for an expanded GOT for the 1.2 Conformance Guide. An ABI conforming application can not use expanded GOT facilities, even if available on the Reference Platform, and still be compliant with the 1.1 revision of the Conformance Guide.

    Alternative solutions are to modify the application to use fewer global symbols, or if the application uses its' own static archives, to turn some of those into DSOs, since each DSO has its' own GOT. The elfdump program on the Reference Platform can provide insight into the current size of GOTs.

    How can I take advantage of newer processor instruction sets?

    Machines supporting the MIPS ABI range in size from laptop computers to large datacenter machines, come in multiprocessor configurations, offer fault tolerance, real-time capabilities, etc. The MIPS processor family includes members from the R2000 up through forthcoming high-end processors with a wide performance range. In order to support this range, the current ABI is pegged to a common denominator, the MIPS I instruction set architecture. The MIPS ABI group is considering extensions to take advantage of newer processor architectures as a future direction. For most applications, use of the MIPS I instruction set does not provide a significant performance penalty.

    Is there an ABI C++? FORTRAN? Other languages

    The MIPS ABI group recognizes that there are significant bodies of applications code which are not written in C, but which still could benefit from binary compatibility. The group's intention is to continue work to define standard binary compatible interfaces for FORTRAN, C++, and other languages as demand warrants. Some efforts along these line are in progress in future versions of gABI. At the present time, only the C interfaces defined by the ABI are supported on all platforms.

    v1.5 L/M 6/15/94