Re: make test failed for perl module DBD-Oracle-1.70

"Martin J. Evans" <[email protected]>
Newsgroups gmane.comp.lang.perl.modules.dbi.general
Organization at home
Message-ID <[email protected]>
On 19/03/2014 18:31, Jillapelli, Ramakrishna wrote:
> Hi,
>
> struck with “DBD-Oracle-1.70”

You are likely to get more/better help if you tell us more. Platform? 
Perl version and where it came from? compiler? Oracle you are compiling 
against - full Oracle or Instant Client and version?

Anyway, I can guess some from the following:

> Make test returned the following error:
>
> cp lib/DBD/Oracle/Troubleshooting/Win32.pod
> blib/lib/DBD/Oracle/Troubleshooting/Win32.pod
>
> cp mk.pm blib/arch/auto/DBD/Oracle/mk.pm
>
>          /usr/bin/perl -e 'use ExtUtils::Mksymlists;  Mksymlists("NAME"
> => "DBD::Oracle", "DL_FUNCS" => {  }, "FUNCLIST" => [], "DL_VARS" => []);'
>
>          /usr/bin/perl -p -e "s/~DRIVER~/Oracle/g"
> /usr/opt/perl5/lib/site_perl/5.10.1/aix-thread-multi/auto/DBI/Driver.xst
>  > Oracle.xsi

You are possibly using perl 5.10.1 - pretty old now but should still be 
ok. /usr/opt is an unusual place to see Perl so I'm guessing this is a 
Perl installed via your operating system vendor.

>          /usr/bin/perl /usr/opt/perl5/lib/5.10.1/ExtUtils/xsubpp
> -typemap /usr/opt/perl5/lib/5.10.1/ExtUtils/typemap -typemap typemap
> Oracle.xs > Oracle.xsc && mv Oracle.xsc Oracle.c
>
>          xlc_r -q32 -c  -I/oracle/product/v102/fullclnt/rdbms/public

xlc_r. That looks like the IBM AIX compiler?

You need to compile and link DBD::Oracle using the same tools (compiler 
and linker) as IBM (or whoever) built your Perl. If this is an IBM 
compiled Perl for AIX they probably used their compiler (xlc) - a perl 
-V should verify this.

> -I/oracle/product/v102/fullclnt/rdbms/demo
> -I/oracle/product/v102/fullclnt/rdbms/public
> -I/oracle/product/v102/fullclnt/plsql/public
> -I/oracle/product/v102/fullclnt/network/public
> -I/usr/opt/perl5/lib/site_perl/5.10.1/aix-thread-multi/auto/DBI
> -D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -qmaxmem=-1 -qnoansialias
> -DUSE_NATIVE_DLOPEN -DNEED_PTHREAD_INIT -qlanglvl=extended
> -I/usr/local/include -q32 -D_LARGE_FILES -qlonglong -O
> -DVERSION=\"1.70\" -DXS_VERSION=\"1.70\"
> "-I/usr/opt/perl5/lib/5.10.1/aix-thread-multi/CORE"  -DUTF8_SUPPORT
> -DORA_OCI_VERSION=\"10.2.0.1\" -DORA_OCI_102 Oracle.c

Guessing you are using Oracle OCI 10.2.0.1 and this is a full install of 
Oracle and not instant client.

>          xlc_r -q32 -c  -I/oracle/product/v102/fullclnt/rdbms/public
> -I/oracle/product/v102/fullclnt/rdbms/demo
> -I/oracle/product/v102/fullclnt/rdbms/public
> -I/oracle/product/v102/fullclnt/plsql/public
> -I/oracle/product/v102/fullclnt/network/public
> -I/usr/opt/perl5/lib/site_perl/5.10.1/aix-thread-multi/auto/DBI
> -D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -qmaxmem=-1 -qnoansialias
> -DUSE_NATIVE_DLOPEN -DNEED_PTHREAD_INIT -qlanglvl=extended
> -I/usr/local/include -q32 -D_LARGE_FILES -qlonglong -O
> -DVERSION=\"1.70\" -DXS_VERSION=\"1.70\"
> "-I/usr/opt/perl5/lib/5.10.1/aix-thread-multi/CORE"  -DUTF8_SUPPORT
> -DORA_OCI_VERSION=\"10.2.0.1\" -DORA_OCI_102 dbdimp.c
>
>          xlc_r -q32 -c  -I/oracle/product/v102/fullclnt/rdbms/public
> -I/oracle/product/v102/fullclnt/rdbms/demo
> -I/oracle/product/v102/fullclnt/rdbms/public
> -I/oracle/product/v102/fullclnt/plsql/public
> -I/oracle/product/v102/fullclnt/network/public
> -I/usr/opt/perl5/lib/site_perl/5.10.1/aix-thread-multi/auto/DBI
> -D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -qmaxmem=-1 -qnoansialias
> -DUSE_NATIVE_DLOPEN -DNEED_PTHREAD_INIT -qlanglvl=extended
> -I/usr/local/include -q32 -D_LARGE_FILES -qlonglong -O
>   -DVERSION=\"1.70\" -DXS_VERSION=\"1.70\"
> "-I/usr/opt/perl5/lib/5.10.1/aix-thread-multi/CORE"  -DUTF8_SUPPORT
> -DORA_OCI_VERSION=\"10.2.0.1\" -DORA_OCI_102 oci8.c
>
> Running Mkbootstrap for DBD::Oracle ()
>
>          chmod 644 Oracle.bs
>
>          rm -f blib/arch/auto/DBD/Oracle/Oracle.so
>
>
> LD_RUN_PATH="/oracle/product/v102/fullclnt/lib32:/oracle/product/v102/fullclnt/rdbms/lib32"
> ld  -bhalt:4 -G
> -bI:/usr/opt/perl5/lib/5.10.1/aix-thread-multi/CORE/perl.exp
> -bE:Oracle.exp -bnoentry -lpthreads -lc -lm -L/usr/local/lib Oracle.o
> dbdimp.o  oci8.o -q32 -L/oracle/product/v102/fullclnt/lib32/
> -L/oracle/product/v102/fullclnt/rdbms//lib32/   -lclntsh  -lld -lm `cat
> /oracle/product/v102/fullclnt/lib32/sysliblist`  -lm  -lpthreads -o
> blib/arch/auto/DBD/Oracle/Oracle.so
>
> ld: 0706-012 The -q flag is not recognized.
>
> ld: 0706-012 The -3 flag is not recognized.
>
> ld: 0706-012 The -2 flag is not recognized.

That is a bit strange as it is passing -q32 to ld which is the linker.

What does a perl -V output?

You could try searching the Makefile for -q32 and removing it from 
anything that looks like a linker (ld) command argument e.g., LDFLAGS. 
That is a bit of a hack but it should get you further. If you are 
struggling with this mail the Makefile to me (only) and I'll take a look.


> make: The error code from the last command is 255.
>
> Stop.
>
> [root@ews-pgh1-esmd2] /home/rj46/DBD-Oracle-1.70
>
> q32 option is mandatory?

no idea what your question is there.

>
> Can you please guide how to proceed on this?
>
> Thanks & Regards,


Martin
-- 
Martin J. Evans
Wetherby, UK
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.