Abdul,
On Tue, 5 Dec 2006 at 18:22 -0800, Abdul Qadir wrote:
I have attached my oralce include file.
You should not send big attachments to the list.
I unpacked your archive to /usr/local/oracle9, and changed DEFS definition inside modules/oracle/Makefile to
DEFS += -I/usr/local/oracle9/demo -I/usr/local/oracle9/public
After that I was able to build the module without errors with "make modules=modules/oracle modules" command.
Please, double-check your path to the includes, and verify it is properly passed to the compiler. Sample output for dbase.c compilation is as follows (note the include paths at the end):
gcc -fPIC -DPIC -g -O9 -funroll-loops -Wcast-align -Wall -minline-all-stringops -malign-double -falign-loops -ftree-vectorize -mtune=athlon64 -DNAME='"ser"' -DVERSION='"0.9.7-pre7"' -DARCH='"i386"' -DOS='"linux"' -DCOMPILER='"gcc 4.1.2"' -D__CPU_i386 -D__OS_linux -DCFG_DIR='"/usr/local/etc/ser/"' -DPKG_MALLOC -DSHM_MEM -DSHM_MMAP -DDNS_IP_HACK -DUSE_IPV6 -DUSE_MCAST -DUSE_TCP -DDISABLE_NAGLE -DF_MALLOC -DFAST_LOCK -DADAPTIVE_WAIT -DADAPTIVE_WAIT_LOOPS=1024 -DHAVE_GETHOSTBYNAME2 -DHAVE_UNION_SEMUN -DHAVE_SCHED_YIELD -DHAVE_MSG_NOSIGNAL -DHAVE_MSGHDR_MSG_CONTROL -DHAVE_ALLOCA_H -DLINUX -D_GNU_SOURCE -D_REENTRANT -I/usr/local/oracle9/demo -I/usr/local/oracle9/public -c dbase.c -o dbase.o
Dmitry Semyonov dsemyonov@dins.ru wrote: Abdul,
On Mon, 4 Dec 2006 at 23:44 -0800, Abdul Qadir wrote:
Thats why I did modified the make file to reflect my path. But still getting the same error. Do u think I still need to install Instant Client, although I have full client installed.
I don't think so.
Hi Dmitry,
I have verfied that the correct path is sent to the compiler. I even tried with wrong path and output was totally different. With wrong path sent to compiler it was not even able to include oci.h and stops immediately.
Please find the output when I put the correct path in make file.
gcc -fPIC -DPIC -g -O9 -funroll-loops -Wcast-align -Wall -m486 -malign-loops=4 -DNAME='"ser"' -DVERSION='"0.9.6"' -DARCH='"i386"' -DOS='"linux"' -DCOMPILER='"gcc 2.96"' -D__CPU_i386 -D__OS_linux -DCFG_DIR='"/usr/local/etc/ser/"' -DPKG_MALLOC -DSHM_MEM -DSHM_MMAP -DDNS_IP_HACK -DUSE_IPV6 -DUSE_MCAST -DUSE_TCP -DDISABLE_NAGLE -DLINUX -D_GNU_SOURCE -D_REENTRANT -DF_MALLOC -DFAST_LOCK -DADAPTIVE_WAIT -DADAPTIVE_WAIT_LOOPS=1024 -DHAVE_GETHOSTBYNAME2 -DHAVE_UNION_SEMUN -DHAVE_SCHED_YIELD -DHAVE_MSG_NOSIGNAL -DHAVE_MSGHDR_MSG_CONTROL -DHAVE_ALLOCA_H -I/u01/app/oracle/product/9.2.0.4.0/rdbms/demo -I/u01/app/oracle/product/9.2.0.4.0/rdbms/public -c dbase.c -o dbase.o In file included from dbase.c:41: common.h:55:2: warning: #warning "This module is experimental and may crash SER or create unexpected results. You use the module at your own risk. Please submit bugs at http://bugs.sip-router.org/" dbase.c: In function `db_free_result': dbase.c:377: warning: passing arg 2 of `fm_free' discards qualifiers from pointer target type dbase.c: In function `oci_prepare': dbase.c:1133: parse error before `rc' dbase.c:1136: `rc' undeclared (first use in this function) dbase.c:1136: (Each undeclared identifier is reported only once dbase.c:1136: for each function it appears in.) dbase.c: In function `oci_execute': dbase.c:1170: parse error before `rc' dbase.c:1173: `rc' undeclared (first use in this function) dbase.c: In function `oci_cleanup': dbase.c:1186: parse error before `rc' dbase.c:1187: `rc' undeclared (first use in this function) make[1]: *** [dbase.o] Error 1
Best Regards, Abdul Qadir
Dmitry Semyonov dsemyonov@dins.ru wrote: Abdul,
On Tue, 5 Dec 2006 at 18:22 -0800, Abdul Qadir wrote:
I have attached my oralce include file.
You should not send big attachments to the list.
I unpacked your archive to /usr/local/oracle9, and changed DEFS definition inside modules/oracle/Makefile to
DEFS += -I/usr/local/oracle9/demo -I/usr/local/oracle9/public
After that I was able to build the module without errors with "make modules=modules/oracle modules" command.
Please, double-check your path to the includes, and verify it is properly passed to the compiler. Sample output for dbase.c compilation is as follows (note the include paths at the end):
gcc -fPIC -DPIC -g -O9 -funroll-loops -Wcast-align -Wall -minline-all-stringops -malign-double -falign-loops -ftree-vectorize -mtune=athlon64 -DNAME='"ser"' -DVERSION='"0.9.7-pre7"' -DARCH='"i386"' -DOS='"linux"' -DCOMPILER='"gcc 4.1.2"' -D__CPU_i386 -D__OS_linux -DCFG_DIR='"/usr/local/etc/ser/"' -DPKG_MALLOC -DSHM_MEM -DSHM_MMAP -DDNS_IP_HACK -DUSE_IPV6 -DUSE_MCAST -DUSE_TCP -DDISABLE_NAGLE -DF_MALLOC -DFAST_LOCK -DADAPTIVE_WAIT -DADAPTIVE_WAIT_LOOPS=1024 -DHAVE_GETHOSTBYNAME2 -DHAVE_UNION_SEMUN -DHAVE_SCHED_YIELD -DHAVE_MSG_NOSIGNAL -DHAVE_MSGHDR_MSG_CONTROL -DHAVE_ALLOCA_H -DLINUX -D_GNU_SOURCE -D_REENTRANT -I/usr/local/oracle9/demo -I/usr/local/oracle9/public -c dbase.c -o dbase.o
Dmitry Semyonov wrote: Abdul,
On Mon, 4 Dec 2006 at 23:44 -0800, Abdul Qadir wrote:
Thats why I did modified the make file to reflect my path. But still getting the same error. Do u think I still need to install Instant Client, although I have full client installed.
I don't think so.
Abdul,
On Wed, 6 Dec 2006 at 18:26 -0800, Abdul Qadir wrote:
Please find the output when I put the correct path in make file.
gcc -fPIC -DPIC -g -O9 -funroll-loops -Wcast-align -Wall -m486 -malign-loops=4 -DNAME='"ser"' -DVERSION='"0.9.6"' -DARCH='"i386"' -DOS='"linux"' -DCOMPILER='"gcc 2.96"' -D__CPU_i386 -D__OS_linux
^^^^^^^^^^^^^^^^^^^^^^^ That's your problem.
Install more recent compiler version by running 'yum install gcc'. Make sure CC variable is not set to something like gcc-2.96 before running make.
[...]
dbase.c: In function `oci_prepare': dbase.c:1133: parse error before `rc'
I reproduced the same error with gcc-2.95 Debian package. I'll try to fix it, but if it's not obvious I will not spend much time with the issue as even quite outdated distributions like Red Hat 9 or Fedora Core 2 use gcc-3.* as their default compiler.
Dmitry Thanks for your help. After an update of compiler I was able to comiple the module
Dmitry Semyonov dsemyonov@dins.ru wrote: Abdul,
On Wed, 6 Dec 2006 at 18:26 -0800, Abdul Qadir wrote:
Please find the output when I put the correct path in make file.
gcc -fPIC -DPIC -g -O9 -funroll-loops -Wcast-align -Wall -m486 -malign-loops=4 -DNAME='"ser"' -DVERSION='"0.9.6"' -DARCH='"i386"' -DOS='"linux"' -DCOMPILER='"gcc 2.96"' -D__CPU_i386 -D__OS_linux
^^^^^^^^^^^^^^^^^^^^^^^ That's your problem.
Install more recent compiler version by running 'yum install gcc'. Make sure CC variable is not set to something like gcc-2.96 before running make.
[...]
dbase.c: In function `oci_prepare': dbase.c:1133: parse error before `rc'
I reproduced the same error with gcc-2.95 Debian package. I'll try to fix it, but if it's not obvious I will not spend much time with the issue as even quite outdated distributions like Red Hat 9 or Fedora Core 2 use gcc-3.* as their default compiler.