Problem:

  • Product Name: VisiBroker for C
  • Product Version: 7.0, 8.x
  • Platform: IBM-AIX, HP-UX
How to check if a VisiBroker application is using a Classical or Standard C Library?

Moderation comments:

The information is available in VisiBroker 8.0 release note.  (http://techpubs.borland.com/am/visibroker/v80/en/VBroker_80_ReleaseNotes.html)

Library naming convention

  • The libraries' naming convention in VisiBroker for C of HP-UX Itanium platform has been changed from VisiBroker 7.0. They are now following the VisiBroker 8.0 standardization, which is: standard libraries will be having _p infix, while classical libraries do not have. E.g. liborb64_pr.so.8.0 is the standard library, while liborb64_r.so.8.0 is the classical one.

Resolution:

This is applicable to platforms using the two C libraries, the Classical and Standard, such as IBM-AIX and HP-UX.
There are instances where you need to confirm and verify what type of library a VisiBroker application is using.

The following are the two possible ways to check if an application is using a Classical or Standard library.

1. Checking the linked libraries.
Do `ldd `. It will list all of the linked libraries.
You can determine if it is using classical if it is linked to at least the following libraries:
      liborb(64)_r.[so,a]
      libvdlog(64)_r.[so,a]
      libvport(64)_r.[so,a]

If the application is linked to the following, then you are using standard libraries:
      liborb(64)_pr.[so,a]
      libvdlog(64)_pr.[so,a]
      libvport(64)_pr.[so,a]
You may notice the only difference is "_p". VisiBroker libraries having "_p" infix are built using C standard libraries, while those that have no "_p" infix are built using C classical libraries.

2. Checking the Makefile.
Another way to verify is to check the Makefile. If your link options are using VisiBroker libraries with "_p" infix then it is standard, otherwise it is a classical.

Usage of Classical or Standard Library in VisiBroker

There is no difference, at least, in VisiBroker usage if you are using either the Classical or Standard libraries. The difference falls in the internal implementations inside the C classical libraries and the standard libraries. Please note that C standard libraries conforms to the ISO standard implementation for C system libraries. Classical libraries are the old implementation before the ISO standard.

It will depend on your design and requirement, whether to use the VisiBroker classical libraries or the standard libraries.