(ld.info.gz) BFD information loss

Info Catalog (ld.info.gz) BFD outline (ld.info.gz) Canonical format
 
 5.1.1 Information Loss
 ----------------------
 
 _Information can be lost during output._ The output formats supported
 by BFD do not provide identical facilities, and information which can
 be described in one form has nowhere to go in another format. One
 example of this is alignment information in `b.out'. There is nowhere
 in an `a.out' format file to store alignment information on the
 contained data, so when a file is linked from `b.out' and an `a.out'
 image is produced, alignment information will not propagate to the
 output file. (The linker will still use the alignment information
 internally, so the link is performed correctly).
 
    Another example is COFF section names. COFF files may contain an
 unlimited number of sections, each one with a textual section name. If
 the target of the link is a format which does not have many sections
 (e.g., `a.out') or has sections without names (e.g., the Oasys format),
 the link cannot be done simply. You can circumvent this problem by
 describing the desired input-to-output section mapping with the linker
 command language.
 
    _Information can be lost during canonicalization._ The BFD internal
 canonical form of the external formats is not exhaustive; there are
 structures in input formats for which there is no direct representation
 internally.  This means that the BFD back ends cannot maintain all
 possible data richness through the transformation between external to
 internal and back to external formats.
 
    This limitation is only a problem when an application reads one
 format and writes another.  Each BFD back end is responsible for
 maintaining as much data as possible, and the internal BFD canonical
 form has structures which are opaque to the BFD core, and exported only
 to the back ends. When a file is read in one format, the canonical form
 is generated for BFD and the application. At the same time, the back
 end saves away any information which may otherwise be lost. If the data
 is then written back in the same format, the back end routine will be
 able to use the canonical form provided by the BFD core as well as the
 information it prepared earlier.  Since there is a great deal of
 commonality between back ends, there is no information lost when
 linking or copying big endian COFF to little endian COFF, or `a.out' to
 `b.out'.  When a mixture of formats is linked, the information is only
 lost from the files whose format differs from the destination.
 
Info Catalog (ld.info.gz) BFD outline (ld.info.gz) Canonical format
automatically generated by info2html