Problem:

The 32-bit application crashes with Segmentation Fault when using custom marshalling. This application is built using 32-bit libraries from VisiBroker 8.5 64-bit installation on RHEL5.x.

Resolution:

VisiBroker 8.5 64-bit on RHEL5.x includes 32-bit libraries.  This allows building a 32-bit application using the 64-bit installation of VisiBroker.  However some header files in $VBROKERDIR/include are only applicable to 64-bit libraries. In the case of custom marshalling, the header file custom_c.hh has some functions not implemented in the 32-bit library. If the header file for 64-bit library is used during compilation for the 32-bit application, at runtime this can cause a Segmentation Fault.

To resolve this issue, when building a 32-bit application using VisiBroker 8.5 64-bit environment, the header files from VisiBroker 8.5 32-bit should be used.  Since the current VisiBroker 8.5 64-bit does not have the 32-bit header files, as a workaround, these can be copied from VisiBroker 8.5 32-bit installation. Please be cautious not to overwrite the VisiBroker 8.5 64-bit header files. The safe way is to copy the files to other directory e.g. $VBROKERDIR/include_32. Then add $VBROKERDIR/include_32 in the makefile.

An enhancement request in RPI 1080110 has been raised to include the 32-bit header files in future releases/service pack of VisiBroker 8.5 64-bit.

Attached in this document is the tarball containing VisiBroker 8.5 32-bit header files.