So i am back here looking at an issue with Makefile.PL
I have the SUNWspro compiler.
 
I run Makefile.PL and I get a Makefile with a line like this:
 
OTHERLDFLAGS =  cc  -Xa  -xstrconst -xF    -xarch=v8 -xchip=ultra
-W2,-AKNR_S -W2,-Rglobal_hoist 
 
Well "cc" is not flag and this causes an error. 
 
 
I traced some of this back to Makefile.PL to this section:
 
...
    if ($::opt_b) {     # The simple approach
        $opts{dynamic_lib} = { OTHERLDFLAGS => "$::opt_g $linkwith" };
        $linkwith_msg = "OTHERLDFLAGS = $linkwith [from '$build_target'
rule]";
    }
...
 
 
OTHERLDFLAGS is assigned to $linkwith, which is a command, not a list of
flags...
 
Is that wrong?  Or is it the place where $linkwith = $build;  which is a
command?
 
n

________________________________

From: Jonathan Leffler [mailto:[EMAIL PROTECTED] 
Sent: Monday, October 29, 2007 11:58 AM
To: Nicholas Veeser
Subject: Re: Issue with perl, DBD::Oracle, Solaris 10


Well spotted - I didn't look for the second 'cc' because I wasn't
expecting it...

So, something is broken in the configuration - whether of Perl or
DBD::Oracle remains to be seen.  Have you added any other modules to
your Perl?  If so, the problem is more likely in DBD::Oracle than Perl.
And, since you presumably have DBI installed, that would have run foul
of this were the problem with Perl ... hence a finger can be pointed at
DBD::Oracle. 


On 10/29/07, Nicholas Veeser <[EMAIL PROTECTED]> wrote: 

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




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