Re: Failed build attempt for Oracle-OCI-0.04
[email protected] (Tim Bunce) Mon, 6 Aug 2001 00:15:02 +0100
| Newsgroups | perl.dbi.oracle-oci |
|---|---|
| Message-ID | <[email protected]> |
On Fri, Jul 27, 2001 at 11:47:20AM +1000, Fox, Michael wrote: > Platform: Compaq Alpha Tru64 Unix V 5.1 > Perl: v5.6.0 > Oracle: 8.1.7 > DBI: 1.19 > DBD-Oracle: 1.07 > > We are just upgrading from Unix 4 to 5.1, and Oracle 8.0.4 to 8.1.7; built a > new perl, DBI and DBD-Oracle without any problems; then tried Oracle-OCI for > the first time. To get the build to go, I: > > 1. added $orahome/rdbms/public to @ora_dirs in boot, as some of the header > files are there (Oracle 8.1.7 thing?): > nzerror.h nzt.h ociextp.h tnsapi.h > > 2. added to extra_typemap as described in readme.build > OCIType * T_PTROBJ > OCITrans * T_PTROBJ Thanks. > Can't load 'blib/arch/auto/Oracle/OCI/OCI.so' for module Oracle::OCI: > dlopen: blib/arch/auto/Oracle/OCI/OCI.so: > symbol "upioep" unresolved at > /usr/users/foxm/lib/perl5/5.6.0/alpha-dec_osf/DynaLoader.pm line 200 > cc: Warning: OCI.xs, line 158: The function "constant_OCI_OR" returns a value, but no value is given in this return statement. (noreturnval) > return OCI_ORACLE; > ------------^ > cc: Warning: OCI.xs, line 6791: The function "constant_OCI_F" returns a value, but no value is given in this return statement. (noreturnval) > return OCI_FLAGS; > ------------^ Umm. Those are empty #define's used to prevent header files being included more than once. I guess I'll just explicitly exclude them. > cc: Warning: OCI.c, line 8782: In the initializer for ocbfp, the referenced type of the pointer value "ora_getptr_generic(...)" is "void", which is not compatible with "function (pointer to void, pointer to struct OCIDefine, unsigned int, pointer to pointer to void, pointer to pointer to unsigned int, pointer to unsigned char, pointer to pointer to void, pointer to pointer to unsigned short) returning int". (ptrmismatch) > OCICallbackDefine ocbfp = ora_getptr_OCICallbackDefine(ST(3), "ocbfp", "OCICallbackDefine", "OCIDefineDynamic"); Umm, back in the bad old days void* pointer hacks never caused warnings. > cc: Warning: utility.c, line 132: In this statement, the referenced type of the pointer value "(void ...)((imp_sth_t ...)imp_xxh)->get_oci_handle" is "void", which is not compatible with "function (pointer to struct imp_xxh_st, int, int) returning pointer to void". (ptrmismatch) > hook = (void*)((imp_sth_t*)imp_xxh)->get_oci_handle; > --------^ Groan. Even an explicit (void*) doesn't silence it. Oh well, I guess I'll have to do it properly :) > t/01base............Can't load 'blib/arch/auto/Oracle/OCI/OCI.so' for module Oracle::OCI: dlopen: blib/arch/auto/Oracle/OCI/OCI.so: symbol "upioep" unresolved at /usr/users/foxm/lib/perl5/5.6.0/alpha-dec_osf/DynaLoader.pm line 200. I'd be grateful if you could follow the procedure in the DBD::Oracle README file for undefined symbol errors (basically run DBD::Oracle's Makefile.PL -s "upioep"). And then try to work out why whichever library it refers to wasn't included in the build of DBD::Oracle. Thanks! Tim.