cancel
Showing results for 
Search instead for 
Did you mean: 

Oracle 8.1.7 on HPUX 11.0

sesh_1
Occasional Visitor

Oracle 8.1.7 on HPUX 11.0

I am trying to compile a proc file on HPUX 11.0 with aCC compiler. I am getting an error message, Unsatisfied symbols, sqlcxt (first referenced in sample.o) code.

Can anyone please help.

Thanks
sesh
2 REPLIES
Indira Aramandla
Honored Contributor

Re: Oracle 8.1.7 on HPUX 11.0

Hi,

I have found the following from Oracle Metalink. I hope this helps you.

The error ???Unsatisfied symbols: sqlcxt (code)??? is caused during the linking of the pro*c program.

You can use the symfind utility which ships with the database to search your ORACLE_HOME to see if the symbol is actually defined in some library. Then double check to make sure that library is actually being included on your link line.

This an existing BUG in Oracle 8.1.7 Precompilers (Pro*C) on HP 9000 Series HP-UX. Possible symptoms will be :-

symptom: Unsatisfied symbols:
symptom: sqlglm(code)
symptom: sqlcxt (code)

Cause : The makefile does not contain the statements to build additional object files

It has been fixed in Pro*C 9.2. But for the current versions there is a workaround.

Workaround: -

1. Somewhere around line 24 add a new line which reads:
CPLUSPLUS=/opt/aCC/bin/aCC

The path should point to the CC compiler on the system.

2. After adding that line, run the make file as normal for the sample.
make -f demo_proc.mk cppdemo2

3. This will start building, bug will fail - that's ok, its part of the workaround. It creates the empclass.o file before it fails, which is needed.

4. Now rerun the make process for creating an application:
make -f demo_proc.mk cppbuild EXE=cppdemo2 OBJS="cppdemo2.o empclass.o&
quot;

5. This will now produce the cppdemo2 executable.





Never give up, Keep Trying
Yogeeraj_1
Honored Contributor

Re: Oracle 8.1.7 on HPUX 11.0

hi,

To add to Indira's reply above:

i prefer to use the following makefile template:

=========================================================
$(TARGET): $(SOURCE) $(SOURCE:.pc=.c) $(SOURCE:.pc=.o)
$(CC) $(LDFLAGS) -t -o $(TARGET) $(SOURCE:.pc=.o) -L$(ORACLE_HOME)/lib $(PROLDLIBS)

include $(ORACLE_PROC_MAKEFILE)

PROCFLAGS= ireclen=255 lines=yes $(PROC_ENV_FLAGS) include=$(ORACLE_HOME)/proc/lib
PROFLAGS=$(PROCFLAGS)

CFLAGS=-I. -g $(CC_ENV_FLAGS)
=========================================================

where:
TARGET = name of program I want to create
SOURCE = list of .pc files I need to precompile/compile
PROC_ENV_FLAGS = any settings I want to override at make time for ProC
CC_ENV_FLAGS = any setting I want to override at make time for CC

and depending on the version of Oracle i am using, i set the following envrionment variables:

o70: setenv ORACLE_PROC_MAKEFILE $ORACLE_HOME/proc/demo/proc.mk
o71: setenv ORACLE_PROC_MAKEFILE $ORACLE_HOME/proc/demo/proc.mk
o72: setenv ORACLE_PROC_MAKEFILE $ORACLE_HOME/proc/demo/proc.mk
o73: setenv ORACLE_PROC_MAKEFILE $ORACLE_HOME/precomp/demo/proc/proc.mk
o8 : setenv ORACLE_PROC_MAKEFILE $ORACLE_HOME/precomp/demo/proc/demo_proc.mk


hope this helps!

best regards
Yogeeraj
No person was ever honoured for what he received. Honour has been the reward for what he gave (clavin coolidge)