I did notice that cc (SunCC) is being used as the linker, but that is not what is causing the error... One of the flags being passed to /opt/SUNWspro/bin/cc, is cc which is not a valid flag for cc. It seems that OTHERLDFLAGS in the generated Makefile looks like this: "cc -Xa -xstrconst -xF -xarch=v8 -xchip=ultra -W2,-AKNR_S -W2,-Rglobal_hoist ..." That does not look like a list of flags, that is a command...hmm... So when I edit the Makefile and remove the "extra" cc from the command line (you will notice there are two below), everything compiles fine. So I am getting to the point where I think there is a bug in the Makefile.PL. Is that more apropos here, or the dev list? n
________________________________ From: Jonathan Leffler [mailto:[EMAIL PROTECTED] Sent: Monday, October 29, 2007 5:45 AM To: Nicholas Veeser Cc: DBI Users Mailing List Subject: Re: Issue with perl, DBD::Oracle, Solaris 10 On 10/28/07, Nicholas Veeser <[EMAIL PROTECTED]> wrote: First, is this the right place to ask questions about compiling DBD::Oracle? Strictly no -- it should be in [EMAIL PROTECTED] I am having trouble building with DBD-Oracle 1.19 Against the stock perl in Solaris 10, I get an error that looks like this: -------------- LD_RUN_PATH="/oracle/product/9.2.0.7/lib32:/oracle/product/9.2.0.7/rdbms /lib32" cc -G Oracle.o dbdimp.o oci8.o cc -Xa -xstrconst -xF -xarch=v8 -xchip=ultra -W2,-AKNR_S -W2,-Rglobal_hoist -Wc,-Qdelay-speculate -Wc,-Qdepgraph-safe_spec_load=3 -W2,-Rloop -errtags=yes -v -K PIC -L/opt/SUNWcluster/lib -R/opt/SUNWcluster/lib -L/oracle/product/9.2.0.7/rdbms/lib32/ -L/oracle/product/9.2.0.7/lib32/ -lclntsh `cat /oracle/product/9.2.0.7/lib32/ldflags` `cat /oracle/product/9.2.0.7/lib32/sysliblist` -R/oracle/product/9.2.0.7/lib32 -laio -lposix4 -lkstat -lm -lthread -o blib/arch/auto/DBD/Oracle/Oracle.so ld: fatal: file cc: open failed: No such file or directory ld: fatal: File processing errors. No output written to blib/arch/auto/DBD/Oracle/Oracle.so *** Error code 1 make: Fatal error: Command failed for target `blib/arch/auto/DBD/Oracle/Oracle.so' --------------- So it seems that the perl Makefile.PL is putting "cc" on the ld commandline and ld is trying to open cc. That seems odd. Did you build this Perl? Do you have a Sun C compiler on the machine? Building shared objects with the C compiler is common practice many places and standard practice on Solaris. The most usual problems people have is that they do not have a Sun C compiler on the machine at all, or they only have /usr/ucb/cc (which is found but doesn't compile anything). The fix is to get the Sun C compiler -- or rebuild Perl with GCC (and have GCC on the machine), or obtain a Perl build with GCC. It shows up in OTHERLDFLAGS. So when I edit the Makefile that is created to just remove cc, everything works fine. See: http://groups.google.com/group/perl.dbi.users/browse_frm/thread/d1eb4267 a3721668/70f75626c884f609?lnk=st&q=ld%3A+fatal%3A+file+cc%3A+open+failed %3A+No+such+file+or+directory#70f75626c884f609 Anyone know the Makefile.PL well enough to say why cc ends up in the OTHERLDFLAGS, since its not a flag? Is there something I should add to the commandline of Makefile.PL when I run it? -- Jonathan Leffler <[EMAIL PROTECTED]> #include <disclaimer.h> Guardian of DBD::Informix - v2007.0914 - http://dbi.perl.org "Blessed are we who can laugh at ourselves, for we shall never cease to be amused."
