d7d
Information Loss
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.,
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