Hi,
I've had Inline::CPP-0.25 on my (mandrake) linux box for quite some time ...
not exactly sure when I built it, but it would have been built prior to
5.8.8 (which I'm now running).

To my surprise, I find that it's *not* working under perl 5.8.8. Afaik, I've
not updated gcc/g++. Here's what I get when I now try to build
Inline-CPP-0.25:

Running 'perl Makefile.PL':

------------------------------------
This will configure and build Inline::C++.
What default C++ compiler would you like to use? [g++]
What default libraries would you like to include? [-lstdc++]
Checking if your kit is complete...
Looks good
Writing Makefile for Inline::CPP::grammar
Writing Makefile for Inline::CPP
------------------------------------

Running 'make test':

------------------------------------
cp CPP.pm blib/lib/Inline/CPP.pm
cp lib/Inline/CPP.pod blib/lib/Inline/CPP.pod
make[1]: Entering directory `/home/rob/perlmods/Inline-CPP-0.25/grammar'
cp grammar.pm ../blib/lib/Inline/CPP/grammar.pm
make[1]: Leaving directory `/home/rob/perlmods/Inline-CPP-0.25/grammar'
PERL_DL_NONLAZY=1 /usr/local/bin/perl "-MExtUtils::Command::MM" "-e"
"test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/01basic.....make[1]: Entering directory
`/home/rob/perlmods/Inline-CPP-0.25/_Inline/build/_01basic_t_5cd2'
/usr/local/bin/perl /usr/local/lib/perl5/5.8.8/ExtUtils/xsubpp  -typemap
/usr/local/lib/perl5/5.8.8/ExtUtils/typemap -typemap
/home/rob/perlmods/Inline-CPP-0.25/_Inline/build/_01basic_t_5cd2/CPP.map
_01basic_t_5cd2.xs > _01basic_t_5cd2.xsc && mv _01basic_t_5cd2.xsc
_01basic_t_5cd2.c
g++ -c  -I/home/rob/perlmods/Inline-CPP-0.25/t -fno-strict-aliasing -pipe -I
/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2   -DVERSIO
N=\"0.00\" -DXS_VERSION=\"0.00\" -fpic
"-I/usr/local/lib/perl5/5.8.8/i686-linux/CORE"   _01basic_t_5cd2.c
In file included from /usr/include/c++/3.2.2/backward/iostream.h:31,
                 from _01basic_t_5cd2.xs:2:
/usr/include/c++/3.2.2/backward/backward_warning.h:32:2: warning: #warning
This file includes at least one deprecated or antiquated header. Please
consider using one of the 32 headers found in section 17.4.1.2 of the C++
standard. Examples include substituting the <X> header for the <X.h> header
for C++ includes, or <sstream> instead of the deprecated header
<strstream.h>. To disable this warning use -Wno-deprecated.
_01basic_t_5cd2.c:60: parse error before `__attribute__'
_01basic_t_5cd2.c: In function `void XS_main__Soldier_new(...)':
_01basic_t_5cd2.c:61: parse error before `__attribute__'
_01basic_t_5cd2.c: In function `void XS_main__Soldier_new(...)':
_01basic_t_5cd2.c:61: redefinition of `void XS_main__Soldier_new(...)'
_01basic_t_5cd2.c:60: `void XS_main__Soldier_new(...)' previously defined
here
_01basic_t_5cd2.c:61: redefinition of `void XS_main__Soldier_new(...)'
_01basic_t_5cd2.c:60: `void XS_main__Soldier_new(...)' previously defined
here
_01basic_t_5cd2.c:63: `sp' undeclared (first use this function)
_01basic_t_5cd2.c:63: (Each undeclared identifier is reported only once for
each function it appears in.)
_01basic_t_5cd2.c:64: parse error before `if'
_01basic_t_5cd2.c:73: ISO C++ forbids declaration of `RETVAL' with no type
_01basic_t_5cd2.c:73: conflicting types for `int RETVAL'
_01basic_t_5cd2.c:71: previous declaration as `Soldier*RETVAL'
_01basic_t_5cd2.c:73: `name' undeclared (first use this function)
_01basic_t_5cd2.c:74: ISO C++ forbids declaration of `PL_stack_base' with no
type
_01basic_t_5cd2.c:74: variable-size type declared outside of any function
_01basic_t_5cd2.c:74: type mismatch with previous external decl
/usr/local/lib/perl5/5.8.8/i686-linux/CORE/thrdvar.h:42: previous external
decl of `SV**PL_stack_base'
_01basic_t_5cd2.c:74: invalid initializer
_01basic_t_5cd2.c:75: ISO C++ forbids declaration of `Perl_sv_setref_pv'
with no type
_01basic_t_5cd2.c:75: `int Perl_sv_setref_pv' redeclared as different kind
of symbol
/usr/local/lib/perl5/5.8.8/i686-linux/CORE/proto.h:1229: previous
declaration of `SV* Perl_sv_setref_pv(SV*, const char*, void*)'
_01basic_t_5cd2.c:75: initializer list being treated as compound expression
_01basic_t_5cd2.c:75: invalid conversion from `void*' to `int'
_01basic_t_5cd2.c:77: parse error before `}' token
_01basic_t_5cd2.c:78: ISO C++ forbids declaration of `PL_stack_sp' with no
type
_01basic_t_5cd2.c:78: type mismatch with previous external decl
/usr/local/lib/perl5/5.8.8/i686-linux/CORE/thrdvar.h:34: previous external
decl of `SV**PL_stack_sp'
_01basic_t_5cd2.c:78: `tmpXSoff' undeclared (first use this function)
_01basic_t_5cd2.c:78: parse error before `return'
_01basic_t_5cd2.c:82: parse error before `__attribute__'
_01basic_t_5cd2.c: In function `void XS_main__Soldier_get_name(...)':
_01basic_t_5cd2.c:83: parse error before `__attribute__'
_01basic_t_5cd2.c: In function `void XS_main__Soldier_get_name(...)':
_01basic_t_5cd2.c:83: redefinition of `void XS_main__Soldier_get_name(...)'
_01basic_t_5cd2.c:82: `void XS_main__Soldier_get_name(...)' previously
defined here
_01basic_t_5cd2.c:83: redefinition of `void XS_main__Soldier_get_name(...)'
_01basic_t_5cd2.c:82: `void XS_main__Soldier_get_name(...)' previously
defined here
_01basic_t_5cd2.c:85: redefinition of `I32 ax'
_01basic_t_5cd2.c:63: `I32 ax' previously defined here
_01basic_t_5cd2.c:85: redefinition of `SV**mark'
_01basic_t_5cd2.c:63: `SV**mark' previously defined here
_01basic_t_5cd2.c:85: cannot convert `int*' to `SV**' in initialization
_01basic_t_5cd2.c:85: redefinition of `I32 items'
_01basic_t_5cd2.c:63: `I32 items' previously defined here
_01basic_t_5cd2.c:86: parse error before `if'
_01basic_t_5cd2.c:90: type mismatch with previous external decl
_01basic_t_5cd2.c:73: previous external decl of `int RETVAL'
_01basic_t_5cd2.c:93: parse error before `if'
_01basic_t_5cd2.c:98: ISO C++ forbids declaration of `PL_stack_sp' with no
type
_01basic_t_5cd2.c:98: redefinition of `int PL_stack_sp'
_01basic_t_5cd2.c:78: `int PL_stack_sp' previously defined here
_01basic_t_5cd2.c:98: parse error before `return'
_01basic_t_5cd2.c:101: ISO C++ forbids declaration of `RETVAL' with no type
_01basic_t_5cd2.c:101: conflicting types for `int RETVAL'
_01basic_t_5cd2.c:90: previous declaration as `char*RETVAL'
_01basic_t_5cd2.c:101: `THIS' undeclared (first use this function)
_01basic_t_5cd2.c:102: ISO C++ forbids declaration of `Perl_sv_setpv' with
no type
_01basic_t_5cd2.c:102: `int Perl_sv_setpv' redeclared as different kind of
symbol
/usr/local/lib/perl5/5.8.8/i686-linux/CORE/proto.h:1231: previous
declaration of `void Perl_sv_setpv(SV*, const char*)'
_01basic_t_5cd2.c:102: initializer list being treated as compound expression
_01basic_t_5cd2.c:102: parse error before `=' token
_01basic_t_5cd2.c:102: parse error before `++' token
_01basic_t_5cd2.c:104: ISO C++ forbids declaration of `PL_stack_sp' with no
type
_01basic_t_5cd2.c:104: redefinition of `int PL_stack_sp'
_01basic_t_5cd2.c:98: `int PL_stack_sp' previously defined here
_01basic_t_5cd2.c:104: parse error before `return'
_01basic_t_5cd2.c:108: parse error before `__attribute__'
_01basic_t_5cd2.c: In function `void XS_main__Soldier_get_rank(...)':
_01basic_t_5cd2.c:109: parse error before `__attribute__'
_01basic_t_5cd2.c: In function `void XS_main__Soldier_get_rank(...)':
_01basic_t_5cd2.c:109: redefinition of `void XS_main__Soldier_get_rank(...)'
_01basic_t_5cd2.c:108: `void XS_main__Soldier_get_rank(...)' previously
defined here
_01basic_t_5cd2.c:109: redefinition of `void XS_main__Soldier_get_rank(...)'
_01basic_t_5cd2.c:108: `void XS_main__Soldier_get_rank(...)' previously
defined here
_01basic_t_5cd2.c:111: redefinition of `I32 ax'
_01basic_t_5cd2.c:85: `I32 ax' previously defined here
_01basic_t_5cd2.c:111: redefinition of `SV**mark'
_01basic_t_5cd2.c:85: `SV**mark' previously defined here
_01basic_t_5cd2.c:111: cannot convert `int*' to `SV**' in initialization
_01basic_t_5cd2.c:111: redefinition of `I32 items'
_01basic_t_5cd2.c:85: `I32 items' previously defined here
_01basic_t_5cd2.c:112: parse error before `if'
_01basic_t_5cd2.c:116: type mismatch with previous external decl
_01basic_t_5cd2.c:101: previous external decl of `int RETVAL'
_01basic_t_5cd2.c:117: redefinition of `SV* const targ'
_01basic_t_5cd2.c:91: `SV* const targ' previously defined here
_01basic_t_5cd2.c:119: parse error before `if'
_01basic_t_5cd2.c:124: ISO C++ forbids declaration of `PL_stack_sp' with no
type
_01basic_t_5cd2.c:124: redefinition of `int PL_stack_sp'
_01basic_t_5cd2.c:104: `int PL_stack_sp' previously defined here
_01basic_t_5cd2.c:124: parse error before `return'
_01basic_t_5cd2.c:127: ISO C++ forbids declaration of `RETVAL' with no type
_01basic_t_5cd2.c:127: conflicting types for `int RETVAL'
_01basic_t_5cd2.c:116: previous declaration as `char*RETVAL'
_01basic_t_5cd2.c:128: ISO C++ forbids declaration of `Perl_sv_setpv' with
no type
_01basic_t_5cd2.c:128: redefinition of `int Perl_sv_setpv'
_01basic_t_5cd2.c:102: `int Perl_sv_setpv' previously defined here
_01basic_t_5cd2.c:128: initializer list being treated as compound expression
_01basic_t_5cd2.c:128: parse error before `=' token
_01basic_t_5cd2.c:128: parse error before `++' token
_01basic_t_5cd2.c:130: ISO C++ forbids declaration of `PL_stack_sp' with no
type
_01basic_t_5cd2.c:130: redefinition of `int PL_stack_sp'
_01basic_t_5cd2.c:124: `int PL_stack_sp' previously defined here
_01basic_t_5cd2.c:130: parse error before `return'
_01basic_t_5cd2.c:134: parse error before `__attribute__'
_01basic_t_5cd2.c: In function `void XS_main__Soldier_get_serial(...)':
_01basic_t_5cd2.c:135: parse error before `__attribute__'
_01basic_t_5cd2.c: In function `void XS_main__Soldier_get_serial(...)':
_01basic_t_5cd2.c:135: redefinition of `void
XS_main__Soldier_get_serial(...)'
_01basic_t_5cd2.c:134: `void XS_main__Soldier_get_serial(...)' previously
defined here
_01basic_t_5cd2.c:135: redefinition of `void
XS_main__Soldier_get_serial(...)'
_01basic_t_5cd2.c:134: `void XS_main__Soldier_get_serial(...)' previously
defined here
_01basic_t_5cd2.c:137: redefinition of `I32 ax'
_01basic_t_5cd2.c:111: `I32 ax' previously defined here
_01basic_t_5cd2.c:137: redefinition of `SV**mark'
_01basic_t_5cd2.c:111: `SV**mark' previously defined here
_01basic_t_5cd2.c:137: cannot convert `int*' to `SV**' in initialization
_01basic_t_5cd2.c:137: redefinition of `I32 items'
_01basic_t_5cd2.c:111: `I32 items' previously defined here
_01basic_t_5cd2.c:138: parse error before `if'
_01basic_t_5cd2.c:142: redefinition of `int RETVAL'
_01basic_t_5cd2.c:127: `int RETVAL' previously defined here
_01basic_t_5cd2.c:143: redefinition of `SV* const targ'
_01basic_t_5cd2.c:117: `SV* const targ' previously defined here
_01basic_t_5cd2.c:145: parse error before `if'
_01basic_t_5cd2.c:150: ISO C++ forbids declaration of `PL_stack_sp' with no
type
_01basic_t_5cd2.c:150: redefinition of `int PL_stack_sp'
_01basic_t_5cd2.c:130: `int PL_stack_sp' previously defined here
_01basic_t_5cd2.c:150: parse error before `return'
_01basic_t_5cd2.c:153: ISO C++ forbids declaration of `RETVAL' with no type
_01basic_t_5cd2.c:153: redefinition of `int RETVAL'
_01basic_t_5cd2.c:142: `int RETVAL' previously declared here
_01basic_t_5cd2.c:154: parse error before `=' token
_01basic_t_5cd2.c:154: parse error before `++' token
_01basic_t_5cd2.c:156: ISO C++ forbids declaration of `PL_stack_sp' with no
type
_01basic_t_5cd2.c:156: redefinition of `int PL_stack_sp'
_01basic_t_5cd2.c:150: `int PL_stack_sp' previously defined here
_01basic_t_5cd2.c:156: parse error before `return'
_01basic_t_5cd2.c:160: parse error before `__attribute__'
_01basic_t_5cd2.c: In function `void XS_main__Soldier_DESTROY(...)':
_01basic_t_5cd2.c:161: parse error before `__attribute__'
_01basic_t_5cd2.c: In function `void XS_main__Soldier_DESTROY(...)':
_01basic_t_5cd2.c:161: redefinition of `void XS_main__Soldier_DESTROY(...)'
_01basic_t_5cd2.c:160: `void XS_main__Soldier_DESTROY(...)' previously
defined here
_01basic_t_5cd2.c:161: redefinition of `void XS_main__Soldier_DESTROY(...)'
_01basic_t_5cd2.c:160: `void XS_main__Soldier_DESTROY(...)' previously
defined here
_01basic_t_5cd2.c:163: redefinition of `I32 ax'
_01basic_t_5cd2.c:137: `I32 ax' previously defined here
_01basic_t_5cd2.c:163: redefinition of `SV**mark'
_01basic_t_5cd2.c:137: `SV**mark' previously defined here
_01basic_t_5cd2.c:163: cannot convert `int*' to `SV**' in initialization
_01basic_t_5cd2.c:163: redefinition of `I32 items'
_01basic_t_5cd2.c:137: `I32 items' previously defined here
_01basic_t_5cd2.c:164: parse error before `if'
_01basic_t_5cd2.c:174: ISO C++ forbids declaration of `PL_stack_sp' with no
type
_01basic_t_5cd2.c:174: redefinition of `int PL_stack_sp'
_01basic_t_5cd2.c:156: `int PL_stack_sp' previously defined here
_01basic_t_5cd2.c:174: parse error before `return'
_01basic_t_5cd2.c:179: ISO C++ forbids declaration of `PL_stack_sp' with no
type
_01basic_t_5cd2.c:179: redefinition of `int PL_stack_sp'
_01basic_t_5cd2.c:174: `int PL_stack_sp' previously defined here
_01basic_t_5cd2.c:179: parse error before `return'
_01basic_t_5cd2.c:185: parse error before `__attribute__'
_01basic_t_5cd2.c: In function `void boot__01basic_t_5cd2(...)':
_01basic_t_5cd2.c:186: parse error before `__attribute__'
_01basic_t_5cd2.c: In function `void boot__01basic_t_5cd2(...)':
_01basic_t_5cd2.c:186: redefinition of `void boot__01basic_t_5cd2(...)'
_01basic_t_5cd2.c:185: `void boot__01basic_t_5cd2(...)' previously defined
here
_01basic_t_5cd2.c:186: redefinition of `void boot__01basic_t_5cd2(...)'
_01basic_t_5cd2.c:185: `void boot__01basic_t_5cd2(...)' previously defined
here
_01basic_t_5cd2.c:188: redefinition of `I32 ax'
_01basic_t_5cd2.c:163: `I32 ax' previously defined here
_01basic_t_5cd2.c:188: redefinition of `SV**mark'
_01basic_t_5cd2.c:163: `SV**mark' previously defined here
_01basic_t_5cd2.c:188: cannot convert `int*' to `SV**' in initialization
_01basic_t_5cd2.c:188: redefinition of `I32 items'
_01basic_t_5cd2.c:163: `I32 items' previously defined here
_01basic_t_5cd2.c:191: parse error before `do'
_01basic_t_5cd2.c:191: base operand of `->' is not a pointer
_01basic_t_5cd2.c:191: base operand of `->' is not a pointer
_01basic_t_5cd2.c:191: invalid conversion from `int' to `SV*'
_01basic_t_5cd2.c:191: parse error before `if'
_01basic_t_5cd2.c:193: ISO C++ forbids declaration of `Perl_newXS' with no
type
_01basic_t_5cd2.c:193: `int Perl_newXS' redeclared as different kind of
symbol
/usr/local/lib/perl5/5.8.8/i686-linux/CORE/proto.h:829: previous declaration
of `CV* Perl_newXS(char*, void (*)(CV*), char*)'
_01basic_t_5cd2.c:193: initializer list being treated as compound expression
_01basic_t_5cd2.c:193: left-hand operand of comma cannot resolve address of
overloaded function
_01basic_t_5cd2.c:193: invalid conversion from `char*' to `int'
_01basic_t_5cd2.c:194: ISO C++ forbids declaration of `Perl_newXS' with no
type
_01basic_t_5cd2.c:194: redefinition of `int Perl_newXS'
_01basic_t_5cd2.c:193: `int Perl_newXS' previously defined here
_01basic_t_5cd2.c:194: initializer list being treated as compound expression
_01basic_t_5cd2.c:194: left-hand operand of comma cannot resolve address of
overloaded function
_01basic_t_5cd2.c:194: invalid conversion from `char*' to `int'
_01basic_t_5cd2.c:195: ISO C++ forbids declaration of `Perl_newXS' with no
type
_01basic_t_5cd2.c:195: redefinition of `int Perl_newXS'
_01basic_t_5cd2.c:194: `int Perl_newXS' previously defined here
_01basic_t_5cd2.c:195: initializer list being treated as compound expression
_01basic_t_5cd2.c:195: left-hand operand of comma cannot resolve address of
overloaded function
_01basic_t_5cd2.c:195: invalid conversion from `char*' to `int'
_01basic_t_5cd2.c:196: ISO C++ forbids declaration of `Perl_newXS' with no
type
_01basic_t_5cd2.c:196: redefinition of `int Perl_newXS'
_01basic_t_5cd2.c:195: `int Perl_newXS' previously defined here
_01basic_t_5cd2.c:196: initializer list being treated as compound expression
_01basic_t_5cd2.c:196: left-hand operand of comma cannot resolve address of
overloaded function
_01basic_t_5cd2.c:196: invalid conversion from `char*' to `int'
_01basic_t_5cd2.c:197: ISO C++ forbids declaration of `Perl_newXS' with no
type
_01basic_t_5cd2.c:197: redefinition of `int Perl_newXS'
_01basic_t_5cd2.c:196: `int Perl_newXS' previously defined here
_01basic_t_5cd2.c:197: initializer list being treated as compound expression
_01basic_t_5cd2.c:197: left-hand operand of comma cannot resolve address of
overloaded function
_01basic_t_5cd2.c:197: invalid conversion from `char*' to `int'
_01basic_t_5cd2.c:198: parse error before `do'
_01basic_t_5cd2.c:198: ISO C++ forbids declaration of `PL_stack_sp' with no
type
_01basic_t_5cd2.c:198: redefinition of `int PL_stack_sp'
_01basic_t_5cd2.c:179: `int PL_stack_sp' previously defined here
_01basic_t_5cd2.c:198: parse error before `return'
/usr/include/c++/3.2.2/streambuf: In function `void
__static_initialization_and_destruction_0(int, int)':
_01basic_t_5cd2.c:63: register name not specified for `SV**mark'
_01basic_t_5cd2.c: At top level:
_01basic_t_5cd2.c:85: register name not specified for `SV**mark'
_01basic_t_5cd2.c:111: register name not specified for `SV**mark'
_01basic_t_5cd2.c:137: register name not specified for `SV**mark'
_01basic_t_5cd2.c:163: register name not specified for `SV**mark'
_01basic_t_5cd2.c:188: register name not specified for `SV**mark'
{standard input}: Assembler messages:
{standard input}:141: Error: symbol `ax' is already defined
{standard input}:155: Error: symbol `ax' is already defined
{standard input}:163: Error: symbol `Perl_sv_setpv' is already defined
{standard input}:169: Error: symbol `ax' is already defined
{standard input}:177: Error: symbol `ax' is already defined
{standard input}:183: Error: symbol `ax' is already defined
{standard input}:195: Error: symbol `Perl_newXS' is already defined
{standard input}:201: Error: symbol `Perl_newXS' is already defined
{standard input}:207: Error: symbol `Perl_newXS' is already defined
{standard input}:213: Error: symbol `Perl_newXS' is already defined
{standard input}:243: Error: symbol `mark' is already defined
{standard input}:249: Error: symbol `items' is already defined
{standard input}:255: Error: symbol `RETVAL' is already defined
{standard input}:261: Error: symbol `PL_stack_sp' is already defined
{standard input}:267: Error: symbol `PL_stack_sp' is already defined
{standard input}:273: Error: symbol `mark' is already defined
{standard input}:279: Error: symbol `items' is already defined
{standard input}:285: Error: symbol `RETVAL' is already defined
{standard input}:291: Error: symbol `PL_stack_sp' is already defined
{standard input}:297: Error: symbol `PL_stack_sp' is already defined
{standard input}:303: Error: symbol `mark' is already defined
{standard input}:309: Error: symbol `items' is already defined
{standard input}:315: Error: symbol `RETVAL' is already defined
{standard input}:321: Error: symbol `PL_stack_sp' is already defined
{standard input}:327: Error: symbol `RETVAL' is already defined
{standard input}:333: Error: symbol `PL_stack_sp' is already defined
{standard input}:339: Error: symbol `mark' is already defined
{standard input}:345: Error: symbol `items' is already defined
{standard input}:351: Error: symbol `PL_stack_sp' is already defined
{standard input}:357: Error: symbol `PL_stack_sp' is already defined
{standard input}:363: Error: symbol `mark' is already defined
{standard input}:369: Error: symbol `items' is already defined
{standard input}:399: Error: symbol `PL_stack_sp' is already defined
make[1]: *** [_01basic_t_5cd2.o] Error 1
make[1]: Leaving directory
`/home/rob/perlmods/Inline-CPP-0.25/_Inline/build/_01basic_t_5cd2'

A problem was encountered while attempting to compile and install your
Inline
CPP code. The command that failed was:
  make > out.make 2>&1

The build directory was:
/home/rob/perlmods/Inline-CPP-0.25/_Inline/build/_01basic_t_5cd2

To debug the problem, cd to the build directory, and inspect the output
files.

 at t/01basic.t line 30
BEGIN failed--compilation aborted at t/01basic.t line 64.
dubious
 Test returned status 2 (wstat 512, 0x200)
DIED. FAILED tests 1-10
 Failed 10/10 tests, 0.00% okay
t/02prefix....make[1]: Entering directory
`/home/rob/perlmods/Inline-CPP-0.25/_Inline/build/_02prefix_t_4ede'
/usr/local/bin/perl /usr/local/lib/perl5/5.8.8/ExtUtils/xsubpp  -typemap
/usr/local/lib/perl5/5.8.8/ExtUtils/typemap -typemap
/home/rob/perlmods/Inline-CPP-0.25/_Inline/build/_02prefix_t_4ede/CPP.map
_02prefix_t_4ede.xs > _02prefix_t_4ede.xsc && mv _02prefix_t_4ede.xsc
_02prefix_t_4ede.c
g++ -c  -I/home/rob/perlmods/Inline-CPP-0.25/t -fno-strict-aliasing -pipe -I
/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2   -DVERSIO
N=\"0.00\" -DXS_VERSION=\"0.00\" -fpic
"-I/usr/local/lib/perl5/5.8.8/i686-linux/CORE"   _02prefix_t_4ede.c
In file included from /usr/include/c++/3.2.2/backward/iostream.h:31,
                 from _02prefix_t_4ede.xs:2:
/usr/include/c++/3.2.2/backward/backward_warning.h:32:2: warning: #warning
This file includes at least one deprecated or antiquated header. Please
consider using one of the 32 headers found in section 17.4.1.2 of the C++
standard. Examples include substituting the <X> header for the <X.h> header
for C++ includes, or <sstream> instead of the deprecated header
<strstream.h>. To disable this warning use -Wno-deprecated.
_02prefix_t_4ede.c:34: parse error before `__attribute__'
_02prefix_t_4ede.c: In function `void XS_main__Foo_dummy(...)':
_02prefix_t_4ede.c:35: parse error before `__attribute__'
_02prefix_t_4ede.c: In function `void XS_main__Foo_dummy(...)':
_02prefix_t_4ede.c:35: redefinition of `void XS_main__Foo_dummy(...)'
_02prefix_t_4ede.c:34: `void XS_main__Foo_dummy(...)' previously defined
here
_02prefix_t_4ede.c:35: redefinition of `void XS_main__Foo_dummy(...)'
_02prefix_t_4ede.c:34: `void XS_main__Foo_dummy(...)' previously defined
here
_02prefix_t_4ede.c:37: `sp' undeclared (first use this function)
_02prefix_t_4ede.c:37: (Each undeclared identifier is reported only once for
each function it appears in.)
_02prefix_t_4ede.c:38: parse error before `if'
_02prefix_t_4ede.c:45: parse error before `if'
_02prefix_t_4ede.c:50: ISO C++ forbids declaration of `PL_stack_sp' with no
type
_02prefix_t_4ede.c:50: type mismatch with previous external decl
/usr/local/lib/perl5/5.8.8/i686-linux/CORE/thrdvar.h:34: previous external
decl of `SV**PL_stack_sp'
_02prefix_t_4ede.c:50: `tmpXSoff' undeclared (first use this function)
_02prefix_t_4ede.c:50: parse error before `return'
_02prefix_t_4ede.c:53: ISO C++ forbids declaration of `RETVAL' with no type
_02prefix_t_4ede.c:53: redefinition of `int RETVAL'
_02prefix_t_4ede.c:42: `int RETVAL' previously declared here
_02prefix_t_4ede.c:53: `THIS' undeclared (first use this function)
_02prefix_t_4ede.c:54: parse error before `=' token
_02prefix_t_4ede.c:54: parse error before `++' token
_02prefix_t_4ede.c:56: ISO C++ forbids declaration of `PL_stack_sp' with no
type
_02prefix_t_4ede.c:56: redefinition of `int PL_stack_sp'
_02prefix_t_4ede.c:50: `int PL_stack_sp' previously defined here
_02prefix_t_4ede.c:56: parse error before `return'
_02prefix_t_4ede.c:60: parse error before `__attribute__'
_02prefix_t_4ede.c: In function `void XS_main__Foo_new(...)':
_02prefix_t_4ede.c:61: parse error before `__attribute__'
_02prefix_t_4ede.c: In function `void XS_main__Foo_new(...)':
_02prefix_t_4ede.c:61: redefinition of `void XS_main__Foo_new(...)'
_02prefix_t_4ede.c:60: `void XS_main__Foo_new(...)' previously defined here
_02prefix_t_4ede.c:61: redefinition of `void XS_main__Foo_new(...)'
_02prefix_t_4ede.c:60: `void XS_main__Foo_new(...)' previously defined here
_02prefix_t_4ede.c:63: redefinition of `I32 ax'
_02prefix_t_4ede.c:37: `I32 ax' previously defined here
_02prefix_t_4ede.c:63: redefinition of `SV**mark'
_02prefix_t_4ede.c:37: `SV**mark' previously defined here
_02prefix_t_4ede.c:63: redefinition of `I32 items'
_02prefix_t_4ede.c:37: `I32 items' previously defined here
_02prefix_t_4ede.c:64: parse error before `if'
_02prefix_t_4ede.c:68: type mismatch with previous external decl
_02prefix_t_4ede.c:53: previous external decl of `int RETVAL'
_02prefix_t_4ede.c:70: ISO C++ forbids declaration of `RETVAL' with no type
_02prefix_t_4ede.c:70: conflicting types for `int RETVAL'
_02prefix_t_4ede.c:68: previous declaration as `Foo*RETVAL'
_02prefix_t_4ede.c:70: invalid conversion from `Foo*' to `int'
_02prefix_t_4ede.c:71: ISO C++ forbids declaration of `PL_stack_base' with
no type
_02prefix_t_4ede.c:71: variable-size type declared outside of any function
_02prefix_t_4ede.c:71: type mismatch with previous external decl
/usr/local/lib/perl5/5.8.8/i686-linux/CORE/thrdvar.h:42: previous external
decl of `SV**PL_stack_base'
_02prefix_t_4ede.c:71: invalid initializer
_02prefix_t_4ede.c:72: `CLASS' undeclared (first use this function)
_02prefix_t_4ede.c:72: ISO C++ forbids declaration of `Perl_sv_setref_pv'
with no type
_02prefix_t_4ede.c:72: `int Perl_sv_setref_pv' redeclared as different kind
of symbol
/usr/local/lib/perl5/5.8.8/i686-linux/CORE/proto.h:1229: previous
declaration of `SV* Perl_sv_setref_pv(SV*, const char*, void*)'
_02prefix_t_4ede.c:72: initializer list being treated as compound expression
_02prefix_t_4ede.c:74: parse error before `}' token
_02prefix_t_4ede.c:75: ISO C++ forbids declaration of `PL_stack_sp' with no
type
_02prefix_t_4ede.c:75: redefinition of `int PL_stack_sp'
_02prefix_t_4ede.c:56: `int PL_stack_sp' previously defined here
_02prefix_t_4ede.c:75: parse error before `return'
_02prefix_t_4ede.c:79: parse error before `__attribute__'
_02prefix_t_4ede.c: In function `void XS_main__Foo_DESTROY(...)':
_02prefix_t_4ede.c:80: parse error before `__attribute__'
_02prefix_t_4ede.c: In function `void XS_main__Foo_DESTROY(...)':
_02prefix_t_4ede.c:80: redefinition of `void XS_main__Foo_DESTROY(...)'
_02prefix_t_4ede.c:79: `void XS_main__Foo_DESTROY(...)' previously defined
here
_02prefix_t_4ede.c:80: redefinition of `void XS_main__Foo_DESTROY(...)'
_02prefix_t_4ede.c:79: `void XS_main__Foo_DESTROY(...)' previously defined
here
_02prefix_t_4ede.c:82: redefinition of `I32 ax'
_02prefix_t_4ede.c:63: `I32 ax' previously defined here
_02prefix_t_4ede.c:82: redefinition of `SV**mark'
_02prefix_t_4ede.c:63: `SV**mark' previously defined here
_02prefix_t_4ede.c:82: cannot convert `int*' to `SV**' in initialization
_02prefix_t_4ede.c:82: redefinition of `I32 items'
_02prefix_t_4ede.c:63: `I32 items' previously defined here
_02prefix_t_4ede.c:83: parse error before `if'
_02prefix_t_4ede.c:93: ISO C++ forbids declaration of `PL_stack_sp' with no
type
_02prefix_t_4ede.c:93: redefinition of `int PL_stack_sp'
_02prefix_t_4ede.c:75: `int PL_stack_sp' previously defined here
_02prefix_t_4ede.c:93: parse error before `return'
_02prefix_t_4ede.c:98: ISO C++ forbids declaration of `PL_stack_sp' with no
type
_02prefix_t_4ede.c:98: redefinition of `int PL_stack_sp'
_02prefix_t_4ede.c:93: `int PL_stack_sp' previously defined here
_02prefix_t_4ede.c:98: parse error before `return'
_02prefix_t_4ede.c:102: parse error before `__attribute__'
_02prefix_t_4ede.c: In function `void XS_main_identity(...)':
_02prefix_t_4ede.c:103: parse error before `__attribute__'
_02prefix_t_4ede.c: In function `void XS_main_identity(...)':
_02prefix_t_4ede.c:103: redefinition of `void XS_main_identity(...)'
_02prefix_t_4ede.c:102: `void XS_main_identity(...)' previously defined here
_02prefix_t_4ede.c:103: redefinition of `void XS_main_identity(...)'
_02prefix_t_4ede.c:102: `void XS_main_identity(...)' previously defined here
_02prefix_t_4ede.c:105: redefinition of `I32 ax'
_02prefix_t_4ede.c:82: `I32 ax' previously defined here
_02prefix_t_4ede.c:105: redefinition of `SV**mark'
_02prefix_t_4ede.c:82: `SV**mark' previously defined here
_02prefix_t_4ede.c:105: cannot convert `int*' to `SV**' in initialization
_02prefix_t_4ede.c:105: redefinition of `I32 items'
_02prefix_t_4ede.c:82: `I32 items' previously defined here
_02prefix_t_4ede.c:106: parse error before `if'
_02prefix_t_4ede.c:110: type mismatch with previous external decl
_02prefix_t_4ede.c:70: previous external decl of `int RETVAL'
_02prefix_t_4ede.c:111: redefinition of `SV* const targ'
_02prefix_t_4ede.c:43: `SV* const targ' previously defined here
_02prefix_t_4ede.c:113: ISO C++ forbids declaration of `RETVAL' with no type
_02prefix_t_4ede.c:113: conflicting types for `int RETVAL'
_02prefix_t_4ede.c:110: previous declaration as `char*RETVAL'
_02prefix_t_4ede.c:113: `in' undeclared (first use this function)
_02prefix_t_4ede.c:114: ISO C++ forbids declaration of `Perl_sv_setpv' with
no type
_02prefix_t_4ede.c:114: `int Perl_sv_setpv' redeclared as different kind of
symbol
/usr/local/lib/perl5/5.8.8/i686-linux/CORE/proto.h:1231: previous
declaration of `void Perl_sv_setpv(SV*, const char*)'
_02prefix_t_4ede.c:114: initializer list being treated as compound
expression
_02prefix_t_4ede.c:114: parse error before `=' token
_02prefix_t_4ede.c:114: parse error before `++' token
_02prefix_t_4ede.c:116: ISO C++ forbids declaration of `PL_stack_sp' with no
type
_02prefix_t_4ede.c:116: redefinition of `int PL_stack_sp'
_02prefix_t_4ede.c:98: `int PL_stack_sp' previously defined here
_02prefix_t_4ede.c:116: parse error before `return'
_02prefix_t_4ede.c:122: parse error before `__attribute__'
_02prefix_t_4ede.c: In function `void boot__02prefix_t_4ede(...)':
_02prefix_t_4ede.c:123: parse error before `__attribute__'
_02prefix_t_4ede.c: In function `void boot__02prefix_t_4ede(...)':
_02prefix_t_4ede.c:123: redefinition of `void boot__02prefix_t_4ede(...)'
_02prefix_t_4ede.c:122: `void boot__02prefix_t_4ede(...)' previously defined
here
_02prefix_t_4ede.c:123: redefinition of `void boot__02prefix_t_4ede(...)'
_02prefix_t_4ede.c:122: `void boot__02prefix_t_4ede(...)' previously defined
here
_02prefix_t_4ede.c:125: redefinition of `I32 ax'
_02prefix_t_4ede.c:105: `I32 ax' previously defined here
_02prefix_t_4ede.c:125: redefinition of `SV**mark'
_02prefix_t_4ede.c:105: `SV**mark' previously defined here
_02prefix_t_4ede.c:125: cannot convert `int*' to `SV**' in initialization
_02prefix_t_4ede.c:125: redefinition of `I32 items'
_02prefix_t_4ede.c:105: `I32 items' previously defined here
_02prefix_t_4ede.c:128: parse error before `do'
_02prefix_t_4ede.c:128: base operand of `->' is not a pointer
_02prefix_t_4ede.c:128: base operand of `->' is not a pointer
_02prefix_t_4ede.c:128: invalid conversion from `int' to `SV*'
_02prefix_t_4ede.c:128: parse error before `if'
_02prefix_t_4ede.c:130: ISO C++ forbids declaration of `Perl_newXS' with no
type
_02prefix_t_4ede.c:130: `int Perl_newXS' redeclared as different kind of
symbol
/usr/local/lib/perl5/5.8.8/i686-linux/CORE/proto.h:829: previous declaration
of `CV* Perl_newXS(char*, void (*)(CV*), char*)'
_02prefix_t_4ede.c:130: initializer list being treated as compound
expression
_02prefix_t_4ede.c:130: left-hand operand of comma cannot resolve address of
overloaded function
_02prefix_t_4ede.c:130: invalid conversion from `char*' to `int'
_02prefix_t_4ede.c:131: ISO C++ forbids declaration of `Perl_newXS' with no
type
_02prefix_t_4ede.c:131: redefinition of `int Perl_newXS'
_02prefix_t_4ede.c:130: `int Perl_newXS' previously defined here
_02prefix_t_4ede.c:131: initializer list being treated as compound
expression
_02prefix_t_4ede.c:131: left-hand operand of comma cannot resolve address of
overloaded function
_02prefix_t_4ede.c:131: invalid conversion from `char*' to `int'
_02prefix_t_4ede.c:132: ISO C++ forbids declaration of `Perl_newXS' with no
type
_02prefix_t_4ede.c:132: redefinition of `int Perl_newXS'
_02prefix_t_4ede.c:131: `int Perl_newXS' previously defined here
_02prefix_t_4ede.c:132: initializer list being treated as compound
expression
_02prefix_t_4ede.c:132: left-hand operand of comma cannot resolve address of
overloaded function
_02prefix_t_4ede.c:132: invalid conversion from `char*' to `int'
_02prefix_t_4ede.c:133: ISO C++ forbids declaration of `Perl_newXS' with no
type
_02prefix_t_4ede.c:133: redefinition of `int Perl_newXS'
_02prefix_t_4ede.c:132: `int Perl_newXS' previously defined here
_02prefix_t_4ede.c:133: initializer list being treated as compound
expression
_02prefix_t_4ede.c:133: left-hand operand of comma cannot resolve address of
overloaded function
_02prefix_t_4ede.c:133: invalid conversion from `char*' to `int'
_02prefix_t_4ede.c:134: parse error before `do'
_02prefix_t_4ede.c:134: ISO C++ forbids declaration of `PL_stack_sp' with no
type
_02prefix_t_4ede.c:134: redefinition of `int PL_stack_sp'
_02prefix_t_4ede.c:116: `int PL_stack_sp' previously defined here
_02prefix_t_4ede.c:134: parse error before `return'
/usr/include/c++/3.2.2/streambuf: In function `void
__static_initialization_and_destruction_0(int, int)':
_02prefix_t_4ede.c:37: register name not specified for `SV**mark'
_02prefix_t_4ede.c:63: register name not specified for `SV**mark'
_02prefix_t_4ede.c:70: confused by earlier errors, bailing out
{standard input}: Assembler messages:
{standard input}:40: Error: symbol `ax' is already defined
{standard input}:46: Error: symbol `mark' is already defined
{standard input}:58: Error: symbol `ax' is already defined
{standard input}:64: Error: symbol `ax' is already defined
{standard input}:78: Error: symbol `ax' is already defined
{standard input}:90: Error: symbol `Perl_newXS' is already defined
{standard input}:96: Error: symbol `Perl_newXS' is already defined
{standard input}:102: Error: symbol `Perl_newXS' is already defined
make[1]: *** [_02prefix_t_4ede.o] Error 1
make[1]: Leaving directory
`/home/rob/perlmods/Inline-CPP-0.25/_Inline/build/_02prefix_t_4ede'

A problem was encountered while attempting to compile and install your
Inline
CPP code. The command that failed was:
  make > out.make 2>&1

The build directory was:
/home/rob/perlmods/Inline-CPP-0.25/_Inline/build/_02prefix_t_4ede

To debug the problem, cd to the build directory, and inspect the output
files.

 at t/02prefix.t line 0
INIT failed--call queue aborted.
dubious
 Test returned status 2 (wstat 512, 0x200)
DIED. FAILED tests 1-4
 Failed 4/4 tests, 0.00% okay
Failed Test  Stat Wstat Total Fail  Failed  List of Failed
----------------------------------------------------------------------------
---
t/01basic.t     2   512    10   20 200.00%  1-10
t/02prefix.t    2   512     4    8 200.00%  1-4
Failed 2/2 test scripts, 0.00% okay. 14/14 subtests failed, 0.00% okay.
make: *** [test_dynamic] Error 2

------------------------------------

This is quite bizarre, imo. The first error in that long list is:

_01basic_t_5cd2.c:60: parse error before `__attribute__'

and yet _01basic_t_5cd2.c does not even contain the string 'attribute"
anywhere.

Anyone know what's gone wrong here ?

Cheers,
Rob


Reply via email to