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.