RP/TUX 8.1 / HP-UX11- link errors when using macro UDEFERSIGS() (Doc ID 773859.1)

Last updated on NOVEMBER 04, 2016

Applies to:

Oracle Tuxedo
Information in this document applies to any platform.
Information in this document applies to any platform
***Checked for relevance on 18-08-2010***

Goal

Customer environment:
Product: Tuxedo 8.1 
Platform: HPUX 11i 
All the prerequisites for Tuxedo 8.1 are satisfied. 
Compiler - ACC HP Ansi C++ B3910B A.03.37

Problem description:
When compiling  the program using macro UDEFERSIGS()  customer is getting the following error:
 
/usr/ccs/bin/ld: Unsatisfied symbols:
_e_sigpending_addr() (code)
_e_sigdefer_addr() (code) 

The problem seems to be with  macro definition for some functions in the "$TUXDIR/include/Usignal.h" header
that don't have necessary instructions to be compiled with a C++ compiler. 
The only way to succesfully compile this code was to modify the "Usignal.h" header file in order to declare
those two functions as ' extern "C" ' if the precompilation  flag "cplusplus" is active.

Solution

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms