Hi Anon, this looks exactly like what I'm looking for. But it's way over my pay-grade.
update
When it says "Setting STD_IOSTREAM to a true value helps, and all tests pass nicely.", what is STD_IOSTREAM? Is it an environment variable (I'm doing this on windows, so is it system or user)? And what does 'true' value mean? It could be "1" or does it mean a path to iostream.h which exists?
I tried setting the system environment variable STD_IOSTREAM to '1' and running with compiler g++, but the results are the same. So I feel I must have misunderstood the patch process.
OK, well I finally understood what the patch was saying. I edited the CPP.pm files and Makefile.PL manually (is there an automatic way of doing it?) the 'Makefile.PL' runs smoothly as does 'nmake'. But 'nmake test' gives:
C:\Perl\cpan\build\Inline-CPP-0.25-U_GYPW>nmake test
Microsoft (R) Program Maintenance Utility Version 1.50
Copyright (c) Microsoft Corp 1988-94. All rights reserved.
nmake -f Makefile all -nologo
cd ..
C:\Perl\bin\perl.exe "-MExtUtils::Command::MM" "-e" "test_harn
+ess(0, 'bl
ib\lib', 'blib\arch')" t/*.t
t/01basic.....
Microsoft (R) Program Maintenance Utility Version 1.50
Copyright (c) Microsoft Corp 1988-94. All rights reserved.
C:\Perl\bin\perl.exe C:\Perl\lib\ExtUtils\xsubpp -typemap C:\
+Perl\lib\E
xtUtils\typemap -typemap C:\Perl\cpan\build\Inline-CPP-0.25-U_GYPW\_In
+line\build
\_01basic_t_5cd2\CPP.map _01basic_t_5cd2.xs > _01basic_t_5cd2.xsc &&
+C:\Perl\bi
n\perl.exe -MExtUtils::Command -e mv _01basic_t_5cd2.xsc _01basic_t_5c
+d2.c
g++ -c -IC:/Perl/cpan/build/Inline-CPP-0.25-U_GYPW/t -DNDEBU
+G -DWIN32
-D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT -DNO_HASH_SEED -DUSE_SITECUST
+OMIZE -DPR
IVLIB_LAST_IN_INC -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PE
+RLIO -DPER
L_MSVCRT_READFIX -DHASATTRIBUTE -fno-strict-aliasing -O2 -DVERSION=
+\"0.00\"
-DXS_VERSION=\"0.00\" "-IC:\Perl\lib\CORE" _01basic_t_5cd2.c
Running Mkbootstrap for _01basic_t_5cd2 ()
C:\Perl\bin\perl.exe -MExtUtils::Command -e chmod 644 _01basic
+_t_5cd2.bs
C:\Perl\bin\perl.exe -MExtUtils::Mksymlists -e "Mksymlists('N
+AME'=>\"_0
1basic_t_5cd2\", 'DLBASE' => '_01basic_t_5cd2', 'DL_FUNCS' => { }, 'F
+UNCLIST' =
> [], 'IMPORTS' => { }, 'DL_VARS' => []);"
Set up gcc environment - 3.4.5 (mingw special)
dlltool --def _01basic_t_5cd2.def --output-exp dll.exp
g++ -o blib\arch\auto\_01basic_t_5cd2\_01basic_t_5cd2.dll -Wl,
+--base-fil
e -Wl,dll.base -mdll -L"C:\Perl\lib\CORE" _01basic_t_5cd2.o -Wl,--imag
+e-base,0x3
e430000 C:\Perl\lib\CORE\perl58.lib C:\msys\mingw\lib\libstdc++.a C:\
+msys\mingw
\lib\libkernel32.a C:\msys\mingw\lib\libuser32.a C:\msys\mingw\lib\lib
+gdi32.a C:
\msys\mingw\lib\libwinspool.a C:\msys\mingw\lib\libcomdlg32.a C:\msys\
+mingw\lib\
libadvapi32.a C:\msys\mingw\lib\libshell32.a C:\msys\mingw\lib\libole3
+2.a C:\msy
s\mingw\lib\liboleaut32.a C:\msys\mingw\lib\libnetapi32.a C:\msys\ming
+w\lib\libu
uid.a C:\msys\mingw\lib\libws2_32.a C:\msys\mingw\lib\libmpr.a C:\msys
+\mingw\lib
\libwinmm.a C:\msys\mingw\lib\libversion.a C:\msys\mingw\lib\libodbc32
+.a C:\msys
\mingw\lib\libodbccp32.a C:\msys\mingw\lib\libmsvcrt.a dll.exp
C:\msys\mingw\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\mingw32\bin\ld.
+exe: BFD (
GNU Binutils) 2.18.50.20080109 assertion fail ../../binutils-2.18.50/b
+fd/cofflin
k.c:2270
C:\msys\mingw\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\mingw32\bin\ld.
+exe: C:\ms
ys\mingw\lib\libmsvcrt.a(dsjhs00137.o): bad reloc address 0x154 in sec
+tion `.tex
t'
collect2: ld returned 1 exit status
NMAKE : fatal error U1077: 'C:\WINDOWS\system32\cmd.exe' : return code
+ '0x1'
Stop.
A problem was encountered while attempting to compile and install your
+ Inline
CPP code. The command that failed was:
nmake > out.make 2>&1
The build directory was:
C:\Perl\cpan\build\Inline-CPP-0.25-U_GYPW\_Inline\build\_01basic_t_5cd
+2
To debug the problem, cd to the build directory, and inspect the outpu
+t files.
at t/01basic.t line 30
BEGIN failed--compilation aborted at t/01basic.t line 64.
t/01basic.....dubious
Test returned status 2 (wstat 512, 0x200)
DIED. FAILED tests 1-10
Failed 10/10 tests, 0.00% okay
t/02prefix....
Microsoft (R) Program Maintenance Utility Version 1.50
Copyright (c) Microsoft Corp 1988-94. All rights reserved.
C:\Perl\bin\perl.exe C:\Perl\lib\ExtUtils\xsubpp -typemap C:\
+Perl\lib\E
xtUtils\typemap -typemap C:\Perl\cpan\build\Inline-CPP-0.25-U_GYPW\_In
+line\build
\_02prefix_t_4ede\CPP.map _02prefix_t_4ede.xs > _02prefix_t_4ede.xsc
+&& C:\Perl
\bin\perl.exe -MExtUtils::Command -e mv _02prefix_t_4ede.xsc _02prefix
+_t_4ede.c
g++ -c -IC:/Perl/cpan/build/Inline-CPP-0.25-U_GYPW/t -DNDEBU
+G -DWIN32
-D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT -DNO_HASH_SEED -DUSE_SITECUST
+OMIZE -DPR
IVLIB_LAST_IN_INC -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PE
+RLIO -DPER
L_MSVCRT_READFIX -DHASATTRIBUTE -fno-strict-aliasing -O2 -DVERSION=
+\"0.00\"
-DXS_VERSION=\"0.00\" "-IC:\Perl\lib\CORE" _02prefix_t_4ede.c
Running Mkbootstrap for _02prefix_t_4ede ()
C:\Perl\bin\perl.exe -MExtUtils::Command -e chmod 644 _02prefi
+x_t_4ede.b
s
C:\Perl\bin\perl.exe -MExtUtils::Mksymlists -e "Mksymlists('N
+AME'=>\"_0
2prefix_t_4ede\", 'DLBASE' => '_02prefix_t_4ede', 'DL_FUNCS' => { },
+'FUNCLIST'
=> [], 'IMPORTS' => { }, 'DL_VARS' => []);"
Set up gcc environment - 3.4.5 (mingw special)
dlltool --def _02prefix_t_4ede.def --output-exp dll.exp
g++ -o blib\arch\auto\_02prefix_t_4ede\_02prefix_t_4ede.dll -W
+l,--base-f
ile -Wl,dll.base -mdll -L"C:\Perl\lib\CORE" _02prefix_t_4ede.o -Wl,--i
+mage-base,
0x2d550000 C:\Perl\lib\CORE\perl58.lib C:\msys\mingw\lib\libstdc++.a
+C:\msys\mi
ngw\lib\libkernel32.a C:\msys\mingw\lib\libuser32.a C:\msys\mingw\lib\
+libgdi32.a
C:\msys\mingw\lib\libwinspool.a C:\msys\mingw\lib\libcomdlg32.a C:\ms
+ys\mingw\l
ib\libadvapi32.a C:\msys\mingw\lib\libshell32.a C:\msys\mingw\lib\libo
+le32.a C:\
msys\mingw\lib\liboleaut32.a C:\msys\mingw\lib\libnetapi32.a C:\msys\m
+ingw\lib\l
ibuuid.a C:\msys\mingw\lib\libws2_32.a C:\msys\mingw\lib\libmpr.a C:\m
+sys\mingw\
lib\libwinmm.a C:\msys\mingw\lib\libversion.a C:\msys\mingw\lib\libodb
+c32.a C:\m
sys\mingw\lib\libodbccp32.a C:\msys\mingw\lib\libmsvcrt.a dll.exp
C:\msys\mingw\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\mingw32\bin\ld.
+exe: BFD (
GNU Binutils) 2.18.50.20080109 assertion fail ../../binutils-2.18.50/b
+fd/cofflin
k.c:2270
C:\msys\mingw\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\mingw32\bin\ld.
+exe: C:\ms
ys\mingw\lib\libmsvcrt.a(dsjhs00137.o): bad reloc address 0x154 in sec
+tion `.tex
t'
collect2: ld returned 1 exit status
NMAKE : fatal error U1077: 'C:\WINDOWS\system32\cmd.exe' : return code
+ '0x1'
Stop.
A problem was encountered while attempting to compile and install your
+ Inline
CPP code. The command that failed was:
nmake > out.make 2>&1
The build directory was:
C:\Perl\cpan\build\Inline-CPP-0.25-U_GYPW\_Inline\build\_02prefix_t_4e
+de
To debug the problem, cd to the build directory, and inspect the outpu
+t files.
at t/02prefix.t line 0
INIT failed--call queue aborted.
t/02prefix....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 List of Failed
----------------------------------------------------------------------
+---------
t/01basic.t 2 512 10 20 1-10
t/02prefix.t 2 512 4 8 1-4
Failed 2/2 test scripts. 14/14 subtests failed.
Files=2, Tests=14, 153 wallclock secs ( 0.00 cusr + 0.00 csys = 0.00
+ CPU)
Failed 2/2 test programs. 14/14 subtests failed.
NMAKE : fatal error U1077: 'C:\WINDOWS\system32\cmd.exe' : return code
+ '0x2'
Stop.
Thanks for all your efforts.
Regards
Steve