PowerAda abinchk

From OC Systems Wiki!
Jump to: navigation, search


abinchk - Check that a PowerAda executable is consistent with a PowerAda program library, or get information stored in a PowerAda executable.


abinchk [-cehlmq] [-L library] [executable]


abinchk provides access to information stored in a PowerAda executable by the PowerAda compiler, and compares this information to that in the current program library.

The information stored in the executable includes:

  • the full pathnames of the sublibrary files needed to bind the executable;
  • the PowerAda project in which the sublibraries resided, if any;
  • the name, timestamp, and CM_INFO for all Ada compilation units included in the executable; and
  • the command-line options used to bind the program.

By default, abinchk:

  • extracts the information contained in the executable;
  • opens the library defined by the saved list of sublibraries;
  • compares each compilation unit and timestamp from the executable with those in the library; and
  • reports any missing compilation units and any timestamps which are not identical.

If the sublibraries have been moved since the executable was built, the -L option may be used to provide a library against which to perform the check.

This check is useful because the correct operation of the source-level debugger depends on the executable being consistent with the library. For this reason, this checking is built into adbg.

abinchk also allows the saved information to be extracted for other uses. Particularly useful are abinchk -c, which prints the ada command-line used to bind the program, an d abinchk -l, which writes the sublibrary list to standard output. Those sublibraries which were not required to build the program (because no units from that sublibrary were included in the program) are commented out.


Writes to standard output the ada command-line used to bind the executable.
Gives version and brief command line help.
-L library
Specifies that library is to be checked against the units in the executable. By default, the library is that composed of the sublibrary files whose pathnames are saved in the executable. May not be specified with -l or -m.
Writes to standard output the sublibraries used to build the executable. No check is performed.
Writes to standard output the first inconsistent unit.
Returns zero status to standard output if and only if the executable contains information.
Writes to standard output the main unit name from the executable. No check is performed.


The PowerAda executable (a.out) file to be checked.


$POWERADA/bin/abinchk - the abinchk program


POWERADA This must be defined and indicate the powerada/ada95 directory in the PowerAda installation.


abinchk diners
Inconsistent Unit--Exe Time Stamp ------------ Library Time Stamp --------
sec/windows        1995-Jan-02 05:53:03.52447 1995-Jan-06 07:20:01.39355

Indicates that the unit sec/windows has been recompiled since the program diners was bound.

(echo adalib ; abinchk -l big_program) > alib.list ; alibinit

Creates a library consisting of a local working sublibrary on top of the library from which big_program was bound, into which local changes to big_program may be compiled.


aprojbuild, aprojls, adbg, powerada.