2.8 The Ada Library Information Files
Each compilation actually generates two output files. The first of these
is the normal object file that has a .o extension. The second is a
text file containing full dependency information. It has the same
name as the source file, but an .ali extension.
This file is known as the Ada Library Information (ALI) file.
The following information is contained in the ALI file.
- Version information (indicates which version of GNAT was used to compile
the unit(s) in question)
- Main program information (including priority and time slice settings,
as well as the wide character encoding used during compilation).
- List of arguments used in the gcc command for the compilation
- Attributes of the unit, including configuration pragmas used, an indication
of whether the compilation was successful, exception model used etc.
- A list of relevant restrictions applying to the unit (used for consistency)
checking.
- Categorization information (e.g. use of pragma
Pure
).
- Information on all
with
'ed units, including presence of
Elaborate
or Elaborate_All
pragmas.
- Information from any
Linker_Options
pragmas used in the unit
- Information on the use of
Body_Version
or Version
attributes in the unit.
- Dependency information. This is a list of files, together with
time stamp and checksum information. These are files on which
the unit depends in the sense that recompilation is required
if any of these units are modified.
- Cross-reference data. Contains information on all entities referenced
in the unit. Used by tools like
gnatxref
and gnatfind
to
provide cross-reference information.
For a full detailed description of the format of the ALI file,
see the source of the body of unit Lib.Writ
, contained in file
lib-writ.adb in the GNAT compiler sources.