Inline::CPP v0.34 as of this moment has 96 smoke tests in, 79 passes,
and 17 fails. None of the failures exhibit the Parse::RecDescent bug.
Fixed!
Of the 17 failures, 15 are on Solaris 2.11, with the failure point,
"/bin/sh: CC: command not found"
We're trying to detect the correct compiler to use through some logic
in Makefile.PL:
#============================================================================
# Make an intelligent guess about what compiler to use
#============================================================================
my $cc_guess;
my $libs_guess;
if ($Config{gccversion} and $Config{cc} =~ m#\bgcc\b[^/]*$# ) {
($cc_guess = $Config{cc}) =~ s[\bgcc\b([^/]*)$(?:)][g\+\+$1];
$libs_guess = '-lstdc++';
}
elsif ($Config{osname} =~ /^MSWin/) {
$cc_guess = 'cl -TP -EHsc';
$libs_guess = 'MSVCIRT.LIB';
}
elsif ($Config{osname} eq 'linux') {
$cc_guess = 'g++';
$libs_guess = '-lstdc++';
}
elsif ($Config{osname} eq 'cygwin') {
$cc_guess = 'g++';
$libs_guess = '-lstdc++';
}
elsif ($Config{osname} eq 'darwin'){
my $stdlib_query =
'find /usr/lib/gcc -name "libstdc++*" | grep $( uname -p )';
my $stdcpp =
`$stdlib_query`; + $stdcpp =~ s/^(.*)\/[^\/]+$/$1/;
$cc_guess =
'g++';
$libs_guess =
"-L$stdcpp -lstdc++";
}
elsif ($Config{osname} eq 'solaris' or $Config{osname} eq 'SunOS') {
if ($Config{cc} eq 'gcc') {
$cc_guess = 'g++';
$libs_guess = '-lstdc++';
}
else {
$cc_guess = 'CC';
$libs_guess ='-lCrun';
}
}
# Sane defaults for other (probably unix-like) operating systems
else {
$cc_guess = 'g++';
$libs_guess = '-lstdc++';
}
Any Solaris gurus out there who might know why we're not correctly
detecting the compiler for Solaris 2.11?
It looks to me like the 'if( $config{cc} eq 'gcc' ) .... " code is
falling through to the else clause that sets $cc_guess to 'CC', and in
this case probably shouldn't be.
Dave
--
David Oswald
[email protected]