3.7 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.