Inline-CPR-0.12
This is perl, v5.8.5 built for sun4-solaris
SunOS tdevs118 5.8 Generic_108528-13 sun4u sparc SUNW,Sun-Fire-880
% which cc
/opt/SUNWspro/bin/cc
% perl Makefile.PL PREFIX=~/perl5
Writing Makefile for cpr
Writing Makefile for Inline::CPR
% make
cp CPR.pod blib/lib/Inline/CPR.pod
cp CPR.pm blib/lib/Inline/CPR.pm
make[1]: Entering directory `/home/dpitt/CPAN/Inline-CPR-0.12/c'
/opt/lift/perl5/bin/perl -I/opt/lift/perl5/lib/5.8.5/sun4-solaris -I/opt/lift/perl5/lib/5.8.5 cpr.plc /opt/lift/perl5/bin > tmp.c && mv tmp.c cpr.c
/opt/SUNWspro/bin/cc -c -KPIC -I/opt/lift/perl5/lib/5.8.5/sun4-solaris/CORE cpr.c
"cpr.c", line 12: newline in string literal
"cpr.c", line 13: syntax error before or at: The
"cpr.c", line 13: warning: character constant too long
"cpr.c", line 14: newline in string literal
cc: acomp failed for cpr.c
make[1]: *** [cpr.o] Error 2
make[1]: Leaving directory `/home/dpitt/CPAN/Inline-CPR-0.12/c'
make: *** [subdirs] Error 2
% cat c/cpr.c
#include <unistd.h>
#include <errno.h>
extern int errno;
int main(int argc, char* argv[]) {
execl("/opt/lift/perl5/bin/perl",
"/opt/lift/perl5/bin/perl",
"/opt/lift/perl5/bin/cpr.pl",
argv[argc - 1],
NULL);
printf("The CPR interpreter failed to exec /opt/lift/perl5/bin/perl
The system call 'execl' failed with error code %d
", errno);
return errno;
}
Sun C compiler doesn't like embedded newlines in string literals. Seems there's a quoting problems in c/cpr.plc, '\n' should be preserved. It's not. Suggest:
diff c/cpr.plc.orig c/cpr.plc
19c19
< printf("The CPR interpreter failed to exec $bin/perl\nThe system call 'execl' failed with error code %d\n", errno);
---
Show quoted text
> printf("The CPR interpreter failed to exec $bin/perl\\nThe system call 'execl' failed with error code %d\\n", errno);