On Fri, Aug 31, 2001 at 02:52:02PM -0700, Zhan-Yang Zhu wrote:
> 
> I got a problem with DBD/Oracle installation. I have included two log files.
> One is from perl Makefile.PL and the other one is from make.
> The problem is the confusion using n64 objects and n32 objects. Can one tell
> me how to fix this problem. How has it occured? 

You've very helpfully included a log of the build (like the README says... :)
so lets's take a look...

> Attempting to discover Oracle OCI build rules...
>       cc -n32 -mips3 -c -I/raid0/app/oracle/product/8.1.6/rdbms/demo 
>-I/raid0/app/oracle/product/8.1.6/rdbms/public 
>-I/raid0/app/oracle/product/8.1.6/plsql/public 
>-I/raid0/app/oracle/product/8.1.6/network/public 
>-I/raid0/app/oracle/product/8.1.6/rdbms/demo 
>-I/raid0/app/oracle/product/8.1.6/rdbms/demo 
>-I/usr/share/lib/perl5/site_perl/irix-n32/auto/DBI -D_BSD_SIGNALS -D_BSD_TYPES 
>-D_BSD_TIME -woff 1009,1110,1184 -OPT:Olimit=0:space=ON -DLANGUAGE_C -DEMBEDMYMALLOC 
>-O3 -mips3     -DVERSION=\"1.12\"  -DXS_VERSION=\"1.12\"  
>-I/usr/share/lib/perl5/irix-n32/5.00404/CORE  DBD_ORA_OBJ.c
> Oracle oci build prolog:
>       RDBMSLIB changed after being used
>               true echo -Wl,`if [ "" = "-n32" ]; then echo "-n32" ; \
>               elif [ "" = "-64" ]; then echo "-64" ; \
> Oracle oci build command:
>               else echo "-64" ; fi` 
>-Wl,-woff,16,-woff,84,-woff,85,-woff,134,-rdata_shared,-multigot,-mips3 -o build 
>-rpath /raid0/app/oracle/product/8.1.6/lib 
>-L/raid0/app/oracle/product/8.1.6/network/lib/ -L/raid0/app/oracle/product/8.1.6/lib/ 
>-o DBD_ORA_EXE DBD_ORA_OBJ.o -lclntsh 

Notice the "else echo "-64" ; fi`" at the start of that last line.
Running as 'perl Makefile.PL -v' may shed some more light on what's happening.
Looks like a bug in the code that doesn't handle multiline backticks properly.

Try changing

    my @cmds = map { chop; $_ } grep { !m/^\s*$/ } `$make 2>&1`;

into

    my $cmds = `$make 2>&1`;
    $cmds =~ s/`(.*?[^\\])`/expand_shellescape("$1", 1)/esg;
    my @cmds = map { chop; $_ } grep { !m/^\s*$/ } $cmds;

> System: perl5.00404 irix hoshi 6.5 11251326 ip22 
> Compiler:   cc -n32 -mips3 -O3 -mips3 -D_BSD_SIGNALS -D_BSD_TYPES -D_BSD_TIME -woff 
>1009,1110,1184 -OPT:Olimit=0:space=ON -DLANGUAGE_C -DEMBEDMYMALLOC
> Linker:     /usr/bin/ld
> Sysliblist: -lgen -lexc -lm -lpthread 
> Oracle makefiles would have used these definitions but we override them:
>   CC:       cc
> 
>   CFLAGS:   $(GFLAG) $(OPTIMIZE) $(CDEBUG) $(CCFLAGS) $(QACCFLAGS) $(PFLAGS)\
>       $(SHARED_CFLAG) $(USRFLAGS)
> Evaluating `if [ "$(SGI_ABI)" = "-n32" ]; then echo "-n32" ; \
>       elif [ "$(SGI_ABI)" = "-64" ]; then echo "-64" ; \
>       else echo "-64" ; fi`
>   expanded `if [ "" = "-n32" ]; then echo "-n32" ; \
>       elif [ "" = "-64" ]; then echo "-64" ; \
>       else echo "-64" ; fi`
>   returned '-64'

I don't know much about IRIX but since you're working with an n32 perl it
looks to me like you need to set the SGI_ABI env var to '-n32' as well.

> Warning: If you have problems you may need to rebuild perl with -Uusemymalloc.

That's something else to keep in mind.

Tim.

Reply via email to