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." 

Reply via email to