Problem:
After copying executables from a server which was running Object Cobol Developers Suite to a new server with Server Express the application got this library error
0509-150 Dependent module libcobol.2.0.a(shr.o) could not be loaded.
0509-022 Cannot load module libcobol.2.0.a(shr.o).
0509-026 System error: A file or directory in the path name does not exist.
Resolution:
There are a number of libraries which were used under OCDS which are missing completely from the Server Express product. Some of the missing libraries are:
$(COBDIR)/coblib/libcobol.a
$(COBDIR)/coblib/libscreen.a
$(COBDIR)/coblib/libosx.a
$(COBDIR)/coblib/libasmcrtn.a
$(COBDIR)/coblib/libsupp.a
$(COBDIR)/coblib/libcobstat.a
One of the differences between OCDS and Server Express is that Server Express has a completely different product shape. The names of the libraries shipped with the product have changed. Additionally a large number of functions which reside within libraries under OCDS are now packaged as 'callable shared objects' . Callable shared objects are dynamically loaded at run time on an as needed basis. The end result of this is that there are fewer libraries shipped as a part of the Server Express product.
These differences in 'packaging' should be transparent users, the 'cob' command will link in all of the required Micro Focus libraries when building UNIX executables. Users who have hard coded scripts and makefiles that refer to specific Object COBOL libraries are required to modify these scripts, removing references to libraries and objects which do exist in the Server Express product.