Wednesday 9 February 2011

Problems using CPAN / Perl Modules with OpenSolaris (& OpenIndiana)

Perl version: 5.8.4
Operating System: OpenIndiana oi_148 (I imagine that OpenSolaris also sees these problems)
Error Message(s) seen:  
cc: unrecognized option `-KPIC'
cc: language ildoff not recognized
cc: SHA.c: linker input file unused because linking not done
[...]
cc: SHA.o: No such file or directory
cc: no input files
Make had returned bad status, install seems impossible


The key errors here are the 'unrecognised option' and 'language not recognised' messages, which are coming from cc.  cc on OpenIndiana is a link from /usr/gnu/bin/cc to /usr/sfw/bin/gcc - and gcc is not recognising some of the flags that are passed to it.

 These are specified in this file:

/usr/perl5/5.8.4/lib/i86pc-solaris-64int/Config.pm

by the lines:

cccdlflags='-KPIC'

and,

optimize='-xO3 -xspace -xildoff'

To solve the problem, we need to remove (all) the offending entries, so that these two lines read:

cccdlflags=''

and,

optimize=''

2 comments:

Gonzalo said...

so, I've openindiana (uname -a: SunOS anexobck 5.11 oi_151a7 i86pc i386 i86pc Solaris) with perl v5.10.0 built for i86pc-solaris-64int

And I can't find a workaround for this problem.
In /usr/perl5/5.10.0/lib/i86pc-solaris-64int/Config.pm I don't have such lines "cccdflags=.." nor "optimize=..." .
I've added in the Config section (at the end of the file, after:
archlibexp => '/usr/perl5/5.10.0/lib/i86pc-solaris-64int',
archname => 'i86pc-solaris-64int',
cc => 'cc',...

But i've broken cpan after that. I've also greped:
grep -R kPIC /usr/perl5
to search someplace where this option could be, but i can't find it?

Gonzalo said...

it's me again, I have a solution http://openindiana.org/pipermail/openindiana-discuss/2012-May/008171.html