Browse Prior Art Database

Common Load Module Interface for Retargettable Linkers

IP.com Disclosure Number: IPCOM000119057D
Original Publication Date: 1997-Nov-01
Included in the Prior Art Database: 2005-Apr-01

Publishing Venue

IBM

Related People

Chasin, AS: AUTHOR

Abstract

This disclosure describes a set of platform independent interfaces for defining a program load module which allows for rapid retargetting of linkage editors.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 12% of the total text.

Common Load Module Interface for Retargettable Linkers

      This disclosure describes a set of platform independent
interfaces for defining a program load module which allows for rapid
retargetting of linkage editors.

      Many common program load module formats are composed of data
structures defining common primitives.  These primitives are the
page, segment, non-loadable data  such as debug tables, loader
relocations used to relocate references not resolvable at link-time,
and the file containing the load module.  Interfaces for creating and
manipulating these primitives in a platform-independent way are
presented below.

      Common Load Module Interfaces

      Interfaces to Initialize The Common Load Module Interface

      ClmiSetSegmentAttributes

                            (Image Omitted)

  ClmiSetSegmentAttributes() is used to set the attributes of a
  segment in the target load module format.
  u4PageSizeShift The value such that (1L << u4PageSizeShift)
             is the size of a page in the platform-specific load
             module format.  The value of (1L << u4PageSizeShift)
             must be <= 64K.
  u4CompressionLevel A value specifying the level of file
             compression which should be attempted.  The defined
             values are as follows:
            CLMI_COMPRESSION_NONE No file compression is done.
                    This implies that each page in the load
                    image occupies (1L << u4PageSizeShift) bytes
                    in the output file.  A platform-specific
                    processor should use this level of compression
                    if output file size is not to be optimized and
                    fast link times are desirable.
            CLMI_COMPRESSION_MINIMAL with minimal file compression,
                    zero-filled pages occupy no file space and pages
                    whose size n is < (1L << u4PageSizeShift)
                    only occupy n bytes of file space.  No page
                    compression is done at this compression level.
                    A platform-specific processor should use this
                    level of compression if a small output file is
                    desired but no page compression is desired.
            CLMI_COMPRESSION_ITERATED A compression level of
                    CLMI_COMPRESSION_ITERATED indicates
                    that all of the compression done for
                    CLMI_COMPRESSION_MINIMAL is to be done
                    as we...