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