|
Home > Archive > Oracle OCI > June 2005 > Oracle-OCI-0.06 does not boot on Sun Solaris 8 with Perl 8
You are viewing an archived Text-only version of the thread.
To view this thread in it's original format and/or if you want to reply to
this thread please [click here]
| Author |
Oracle-OCI-0.06 does not boot on Sun Solaris 8 with Perl 8
|
|
| Peter Dyballa 2005-06-04, 3:24 am |
| Hello!
On a Sun server E450 with Solaris 8/SunOS 5.8 I am trying to install=20
Oracle-OCI-0.06. Oracle is of version 8.1.7.0. Since the system's Perl=20
is only 5.005 I installed the Perl 5.8 packege from Sun Freeware.
First boot exacution was:
v-string in use/require non-portable at ./boot line 3.
Regex for h2xs ignores:
^OCI(? !AQ|AttrGet|Bind|Cac
he|Callback|Complex|
Context|Date|DirPath
|En=
vCallback|Extract|Fi
le|Format|Interval|I
ter|Memory|Message|M
ultiByte|Obje=
ct|Pickler|Raw|Ref|S
ecurity|SharedLibIni
t|StmtBindByName|Stm
tBindByPos|St=
mtGetBindInfo|String
|Subscription|Table|
Thread|Type|TypeArra
yByName|TypeA=
rrayByRef|WideChar|_
FLAGS|_FNCODE_|_NLS_
|_ORACLE)|^SQL
Complete h2xs arguments: ./h2xs -d -O -n Oracle::OCI -F
-I/opt/oracle/rdbms/demo -I/opt/oracle/rdbms/public
-I/opt/oracle/network/public -I/opt/oracle/plsql/public
-I/opt/oracle/rdbms/demo,/opt/oracle/rdbms/public,/opt/oracle/network=
/public,/opt/oracle/plsql/public
-E get_oci_error,get_oc
i_handle,oci_buf_len
,OCIAttrGet -M
'^OCI(? !AQ|AttrGet|Bind|Cac
he|Callback|Complex|
Context|Date|DirPath
|E=
nvCallback|Extract|F
ile|Format|Interval|
Iter|Memory|Message|
MultiByte|Obj=
ect|Pickler|Raw|Ref|
Security|SharedLibIn
it|StmtBindByName|St
mtBindByPos|S=
tmtGetBindInfo|Strin
g|Subscription|Table
|Thread|Type|TypeArr
ayByName|Type=
ArrayByRef|WideChar|
_FLAGS|_FNCODE_|_NLS
_|_ORACLE)|^SQL'
-k -x /opt/oracle/rdbms/demo/oci.h
Running h2xs...
Scanning typemaps...
Scanning /usr/local/lib/perl5/5.8.0/ExtUtils/typemap
Scanning /opt/oracle/rdbms/demo/oci.h for functions...
sh: -I/opt/oracle/rdbms/demo: not found
sh: -I/opt/oracle/rdbms/demo: not found
Scanning /opt/oracle/rdbms/demo/oci.h for typedefs...
Writing Oracle/OCI/OCI.pm
Writing Oracle/OCI/OCI.xs
Writing Oracle/OCI/Makefile.PL
Writing Oracle/OCI/test.pl
Writing Oracle/OCI/Changes
Writing Oracle/OCI/MANIFEST
Editing OCI.xs...
Editing Makefile.PL...
Building...
Using DBI 1.37 installed in
/usr/local/lib/perl5/site_perl/5.8.0/sun4-solaris/auto/DBI
Checking if your kit is complete...
Looks good
Typemap h2xs.typemap not found.
Writing Makefile for Oracle::OCI
cp OCI.pm blib/lib/Oracle/OCI.pm
AutoSplitting blib/lib/Oracle/OCI.pm (blib/lib/auto/Oracle/OCI)
/usr/local/bin/perl /usr/local/lib/perl5/5.8.0/ExtUtils/xsubpp=20
-typemap /usr/local/lib/perl5/5.8.0/ExtUtils/typemap -typemap
typemap OCI.xs > OCI.xsc && mv OCI.xsc OCI.c
Error: 'OCIError *' not in typemap in extra.xsh, line 11
Error: 'ub4' not in typemap in extra.xsh, line 68
Error: 'ub4' not in typemap in extra.xsh, line 71
Error: 'OCIError *' not in typemap in extra.xsh, line 72
Please specify prototyping behavior for OCI.xs (see perlxs manual)
*** Error code 1
make: Fatal error: Command failed for target `OCI.c'
So I tried to add a description for OCIError and the data type ub4. When =
I finally had fixed all missing functions and data types a ./boot=20
proceeded like that:
Regex for h2xs ignores:
^OCI(? !AQ|AttrGet|Bind|Cac
he|Callback|Complex|
Context|Date|DirPath
|En=
vCallback|Extract|Fi
le|Format|Interval|I
ter|Memory|Message|M
ultiByte|Obje=
ct|Pickler|Raw|Ref|S
ecurity|SharedLibIni
t|StmtBindByName|Stm
tBindByPos|St=
mtGetBindInfo|String
|Subscription|Table|
Thread|Type|TypeArra
yByName|TypeA=
rrayByRef|WideChar|_
FLAGS|_FNCODE_|_NLS_
|_ORACLE)|^SQL
Complete h2xs arguments: ./h2xs -d -O -n Oracle::OCI -F
-I/opt/oracle/rdbms/demo -I/opt/oracle/rdbms/public
-I/opt/oracle/network/public -I/opt/oracle/plsql/public
-I/opt/oracle/precomp/public -I/opt/oracle/xdk/c/parser/include
-I/opt/oracle/rdbms/demo,/opt/oracle/rdbms/public,/opt/oracle/network=
/public,/opt/oracle/plsql/public,/opt/oracle/precomp/public,/opt/oracle/x=
dk/c/parser/include
-E get_oci_error,get_oc
i_handle,oci_buf_len
,OCIAttrGet -M
'^OCI(? !AQ|AttrGet|Bind|Cac
he|Callback|Complex|
Context|Date|DirPath
|E=
nvCallback|Extract|F
ile|Format|Interval|
Iter|Memory|Message|
MultiByte|Obj=
ect|Pickler|Raw|Ref|
Security|SharedLibIn
it|StmtBindByName|St
mtBindByPos|S=
tmtGetBindInfo|Strin
g|Subscription|Table
|Thread|Type|TypeArr
ayByName|Type=
ArrayByRef|WideChar|
_FLAGS|_FNCODE_|_NLS
_|_ORACLE)|^SQL'
-k -x /opt/oracle/rdbms/demo/oci.h
Running h2xs...
Scanning typemaps...
Scanning /usr/local/lib/perl5/5.8.0/ExtUtils/typemap
Scanning /opt/oracle/rdbms/demo/oci.h for functions...
sh: -I/opt/oracle/rdbms/demo: not found
sh: -I/opt/oracle/rdbms/demo: not found
Scanning /opt/oracle/rdbms/demo/oci.h for typedefs...
Writing Oracle/OCI/OCI.pm
Writing Oracle/OCI/OCI.xs
Writing Oracle/OCI/Makefile.PL
Writing Oracle/OCI/test.pl
Writing Oracle/OCI/Changes
Writing Oracle/OCI/MANIFEST
Editing OCI.xs...
Editing Makefile.PL...
Building...
Using DBI 1.37 installed in
/usr/local/lib/perl5/site_perl/5.8.0/sun4-solaris/auto/DBI
Checking if your kit is complete...
Looks good
Typemap h2xs.typemap not found.
Writing Makefile for Oracle::OCI
cp OCI.pm blib/lib/Oracle/OCI.pm
AutoSplitting blib/lib/Oracle/OCI.pm (blib/lib/auto/Oracle/OCI)
/usr/local/bin/perl /usr/local/lib/perl5/5.8.0/ExtUtils/xsubpp=20
-typemap /usr/local/lib/perl5/5.8.0/ExtUtils/typemap -typemap
typemap OCI.xs > OCI.xsc && mv OCI.xsc OCI.c
Please specify prototyping behavior for OCI.xs (see perlxs manual)
cc -c -I/opt/oracle/rdbms/demo -I/opt/oracle/rdbms/public
-I/opt/oracle/network/public -I/opt/oracle/plsql/public
-I/opt/oracle/precomp/public -I/opt/oracle/xdk/c/parser/include
-I/usr/local/lib/perl5/site_perl/5.8.0/sun4-solaris/auto/DBD/Oracle
-I/usr/local/lib/perl5/site_perl/5.8.0/sun4-solaris/auto/DBI -Xt
-mc -xc99 -xcsi -xprefetch=3Dauto -xcrossfile -xvector=3Dyes -mt
-xautopar -xreduction -D_LARGEFILE_SOURCE - D_FILE_OFFSET_BITS=3
D64
-g -DVERSION=3D\"0.01\" -DXS_VERSION=3D\"0.01\" -KPIC
"-I/usr/local/lib/perl5/5.8.0/sun4-solaris/CORE"=20
-I/opt/oracle/rdbms/demo OCI.c
"OCI.c", line 9632: warning: implicit function declaration:
ora_getptr_OCIEnvPtr
Ptr
"OCI.c", line 9632: warning: improper pointer/integer combination:
op "=3D"
"extra.xsh", line 7: warning: implicit function declaration:
oci_util_init
cc -c -I/opt/oracle/rdbms/demo -I/opt/oracle/rdbms/public
-I/opt/oracle/network/public -I/opt/oracle/plsql/public
-I/opt/oracle/precomp/public -I/opt/oracle/xdk/c/parser/include
-I/usr/local/lib/perl5/site_perl/5.8.0/sun4-solaris/auto/DBD/Oracle
-I/usr/local/lib/perl5/site_perl/5.8.0/sun4-solaris/auto/DBI -Xt
-mc -xc99 -xcsi -xprefetch=3Dauto -xcrossfile -xvector=3Dyes -mt
-xautopar -xreduction -D_LARGEFILE_SOURCE - D_FILE_OFFSET_BITS=3
D64
-g -DVERSION=3D\"0.01\" -DXS_VERSION=3D\"0.01\" -KPIC
"-I/usr/local/lib/perl5/5.8.0/sun4-solaris/CORE"=20
-I/opt/oracle/rdbms/demo utility.c
Running Mkbootstrap for Oracle::OCI ()
chmod 644 OCI.bs
rm -f blib/arch/auto/Oracle/OCI/OCI.so
LD_RUN_PATH=3D"" cc -G -L/usr/local/lib OCI.o utility.o
-L/opt/oracle/lib/ -L/opt/oracle/rdbms/lib/ -lclntsh
/opt/oracle/rdbms/lib/kpuadef.o -lnbeq8 -lnhost8 -lnus8 -lnldap8
-lldapclnt8 -lnsslb8 -ln8 -lncrypt8 -lnoname8 -lntcp8 -lntcps8
-lnent8 -lntns8 -lnsgr8 -lnzjs8 -ln8 -lnl8 -lnro8 -lnbeq8 -lnhost8
-lnus8 -lnldap8 -lldapclnt8 -lnsslb8 -ln8 -lncrypt8 -lnoname8
-lntcp8 -lntcps8 -lnent8 -lntns8 -lnsgr8 -lnzjs8 -ln8 -lnl8
-lclient8 -lvsn8 -lwtc8 -lcommon8 -lgeneric8 -lwtc8 -lmm -lnls8
-lcore8 -lnls8 -lcore8 -lnls8 -lnbeq8 -lnhost8 -lnus8 -lnldap8
-lldapclnt8 -lnsslb8 -ln8 -lncrypt8 -lnoname8 -lntcp8 -lntcps8
-lnent8 -lntns8 -lnsgr8 -lnzjs8 -ln8 -lnl8 -lnro8 -lnbeq8 -lnhost8
-lnus8 -lnldap8 -lldapclnt8 -lnsslb8 -ln8 -lncrypt8 -lnoname8
-lntcp8 -lntcps8 -lnent8 -lntns8 -lnsgr8 -lnzjs8 -ln8 -lnl8
-lclient8 -lvsn8 -lwtc8 -lcommon8 -lgeneric8 -ltrace8 -lnls8 -lcore8
-lnls8 -lcore8 -lnls8 -lclient8 -lvsn8 -lwtc8 -lcommon8 -lgeneric8
-lnls8 -lcore8 -lnls8 -lcore8 -lnls8 -lnsl -lsocket -lgen -ldl
-lsched -lsched -R/opt/oracle/lib -laio -lposix4 -lkstat -lm
-lthread -o blib/arch/auto/Oracle/OCI/OCI.so =20
chmod 755 blib/arch/auto/Oracle/OCI/OCI.so
cp OCI.bs blib/arch/auto/Oracle/OCI/OCI.bs
chmod 644 blib/arch/auto/Oracle/OCI/OCI.bs
Manifying blib/man3/Oracle::OCI.3
PERL_DL_NONLAZY=3D1 /usr/local/bin/perl "- MExtUtils::Command::
MM" "-e=
"
"test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/01base....Can't load
'/home/dyballpe/Perl/Oracle-OCI-0.06/Oracle/OCI/blib/arch/auto/Oracle=
/OCI/OCI.so'
for module Oracle::OCI: ld.so.1: /usr/local/bin/perl: fatal:
relocation error: file
/home/dyballpe/Perl/Oracle-OCI-0.06/Oracle/OCI/blib/arch/auto/Oracle/=
OCI/OCI.so:
symbol ora_getptr_OCIEnvPtr
Ptr: referenced symbol not found at
/usr/local/lib/perl5/5.8.0/sun4-solaris/DynaLoader.pm line 229.
at t/01base.t line 9
Compilation failed in require at t/01base.t line 9.
BEGIN failed--compilation aborted at t/01base.t line 9.
t/01base....dubious
Test returned status 255 (wstat 65280, 0xff00)
t/05dbi.....Can't load
'/home/dyballpe/Perl/Oracle-OCI-0.06/Oracle/OCI/blib/arch/auto/Oracle=
/OCI/OCI.so'
for module Oracle::OCI: ld.so.1: /usr/local/bin/perl: fatal:
relocation error: file
/home/dyballpe/Perl/Oracle-OCI-0.06/Oracle/OCI/blib/arch/auto/Oracle/=
OCI/OCI.so:
symbol ora_getptr_OCIEnvPtr
Ptr: referenced symbol not found at
/usr/local/lib/perl5/5.8.0/sun4-solaris/DynaLoader.pm line 229.
at t/05dbi.t line 8
Compilation failed in require at t/05dbi.t line 8.
BEGIN failed--compilation aborted at t/05dbi.t line 8.
t/05dbi.....dubious
Test returned status 255 (wstat 65280, 0xff00)
FAILED--2 test scripts could be run, alas--no output ever seen
*** Error code 255
make: Fatal error: Command failed for target `test_dynamic'
Particularly this ora_getptr_OCIEnvPtr
Ptr symbol looks a bit starnge ...
What can I do to improve booting?
--=20
Greetings
Pete Nols GES AG
Gervinusstra=C3=9Fe 18-22=
(Peter Dyballa) 069-92024=C2=B7795 60322 Frankfurt am M=
ain
| |
| Tim Bunce 2005-06-04, 3:24 am |
| On Mon, Aug 11, 2003 at 04:39:03PM +0200, Peter Dyballa wrote:
> t/05dbi.....Can't load
> '/home/dyballpe/Perl/Oracle-OCI-0.06/Oracle/OCI/blib/arch/auto/Oracle/OCI/OCI.so'
> for module Oracle::OCI: ld.so.1: /usr/local/bin/perl: fatal:
> relocation error: file
> /home/dyballpe/Perl/Oracle-OCI-0.06/Oracle/OCI/blib/arch/auto/Oracle/OCI/OCI.so:
> symbol ora_getptr_OCIEnvPtr
Ptr: referenced symbol not found at
> /usr/local/lib/perl5/5.8.0/sun4-solaris/DynaLoader.pm line 229.
> at t/05dbi.t line 8
>
> Particularly this ora_getptr_OCIEnvPtr
Ptr symbol looks a bit starnge ...
>
> What can I do to improve booting?
Add an entry to getptrdef.h
Tim.
| |
| Tim Bunce 2005-06-04, 3:24 am |
| Great. Please let me know how you get on with it.
Tim.
On Tue, Aug 12, 2003 at 02:10:52PM +0200, Peter Dyballa wrote:
> Hello once more!
>
> I finally managed to make this package available on our server. One
> cause for the problems was that I had installed the package
> perl_s-5.8.0-sol8-sparc-local. This one contains the perl lib as an DSO,
> and due to that fact and that it's one year younger than the 'static'
> version perl-5.8.0-sol8-sparc-local it has some more packages already
> contained. Somewhere here around is the reason to find that h2xs failed
> with some C header files in ${ORACLE_HOME}/rdbms/demo. This was the
> reason that I had to add some data types and function descriptions by
> hand. (I had to change the paths to the perl executable in boot and h2xs.)
>
> With a bit of Emacs Lisp (some variants, some interactive invocations,
> depending on the number of lines in the #if or the #else branches)
>
> (replace-regexp "^#if.*
> \\(.*^J
> .*^J
> .*\\)^J
> #else^J
> .*^J
> .*^J
> .*^J
> #endif" "\\1" nil nil nil)
>
>
> I had re-written oci8dp.h that statements like
>
> sword
> #if defined(__STDC__) || defined(__cplusplus)
> OCIDirPathLoadStream
(OCIDirPathCtx *dpctx, OCIDirPathStream *dpstr,
> OCIError *errhp);
> #else
> OCIDirPathLoadStream
(/*_ OCIDirPathCtx *dpctx, OCIDirPathStream *dpstr,
> OCIError *errhp _*/);
> #endif
>
>
> became useful as
>
> sword
> OCIDirPathLoadStream
(OCIDirPathCtx *dpctx, OCIDirPathStream *dpstr,
> OCIError *errhp);
>
>
> -- and I had the *static* Perl 5.8 package installed. So h2xs became
> able to parse the whole C header file completely. No data had to be
> added to any file.
>
>
> In case you were curious I attached h2xs.log and a log of 'boot -all' to
> my eMail.
>
>
> Thank you for your help and the interface!
>
> --
> Greetings
>
> Pete Nols GES AG
> Gervinusstraße 18-22
> (Peter Dyballa) 069-92024·795 60322 Frankfurt am Main
|
|
|
|
|