Skip to main content

Problem:

When software is delivered in binary form only, how can the COBOL version used to build the software be identified.

Resolution:

This is possible although identifying the point-release of a product would be very time consuming and only possible by Micro Focus technicians.

Binaries built using Object COBOL can be differentiated from those built under Server Express  by looking at the library dependencies.

Use "ldd $binary_name"

Binaries built under Object COBOL  will have a dependency on libcobol, binaries built under Server Express will have a dependency on  libcobrts.

On AIX 4 use "dump -Hv $binary_name"

'ldd' lists dynamic dependencies of executable files or shared libraries.

So, using ldd on 'demo' when it's been compiled with Server Express returns the following:

Note that the 'grep' command is used to filter the output.  

ldd demo | grep libcob

        /home/products/9h.F5.40.01_DM/cobol/lib/libcobccsupport.sl =>   /home/pl

        /home/products/9h.F5.40.01_DM/cobol/lib/libcobmisc.sl.2 =>      /home/p2

        /home/products/9h.F5.40.01_DM/cobol/lib/libcobcrtn.sl.2 =>      /home/p2

        /home/products/9h.F5.40.01_DM/cobol/lib/libcobrts.sl.2 =>       /home/p2

        ../../.././devcobol/cobdir/lib/libcobscreen.sl.2 =>     /home/products/2

This indicates  that libcobrts.sl.2 is a dependency.   The same file compiled with Object COBOL:

$ ldd demo | grep libcobol

        /home2/products/8e.i3.13.08_5.DM/cobol/coblib/libcobol.1 =>     /home2/1

Old KB# 7242