Thanks Jan. For Heiko's config, NYTProf is very broken without the #undefs so I'd like to get those in. Assuming your VS2003 hypothesis is correct, is there a macro to detect that compiler? And would using that macro to wrap the #undefs be a reasonable solution?
That leaves the t/50-errno.t failures. I'd be happy enough to skip the failing tests on that system. Is there some way in perl to detect that perl was built with VS2003 and/or the dual libraries? If not then I could just skip the tests on windows systems with old versions of perl, say <= 5.8.9. Tim. On Thu, Mar 11, 2010 at 02:38:52PM -0800, Jan Dubois wrote: > On Thu, 11 Mar 2010, Tim Bunce wrote: > > You said you're using "Windows XP with ActiveState Perl 5.8.4" > > Could you post your perl -V output so we get the full details? > > > > Jan, could you do the same so we can compare? > > I've attached it at the bottom, but AFAIK there was only a single ActivePerl > release for 5.8.4 (build 810), so the output should be identical. > > > I want to find an appropriate #ifdef incantation to wrap it with. > > As everything worked for me, it seems unlikely that there is any #define > that would explain the difference. > > Things that are still different in Heiko's setup are the compiler version > (Visual Studio 2003 I think) and OS (Windows XP). I've been using VC6 and > MingW for > the compilers and Win2000 for the test VM (but probably not MinGW with 5.8.4 > because build 810 doesn't support this without some tweaks). > > > Any suggestions? > > If anything I would suspect that the compiler version might make a difference > (and or the Platform SDK, if installed). But I'm not keen on spending too > much time on testing a 7 year old compiler with a 6 year old version of > ActivePerl unless the problem can also be reproduced with a current version > of Perl. > > Ok, I have one more idea: When you compile a module with VS2003, then that > module > links against MSVCR71.dll instead of MSVCRT.dll, so you end up with 2 CRT > libraries > inside a single process. This normally works fine as long as you don't mix > things > like memory allocation (call MSVCR71.free() on a pointer returned by > MSVCRT.malloc()) > and file I/O (call MSVCR71.fputs() on a FILE* returned by MSVCRT.fopen()) etc. > All the macro redefinitions in the Perl headers are supposed to protect you > from > these mixups, but there may be a bug somewhere. > > I don't have a VM with VS2003, and I don't know if I have a license anywhere > anymore > anyways, so it is not easy for me to test. > > Cheers, > -Jan > > Summary of my perl5 (revision 5 version 8 subversion 4) configuration: > Platform: > osname=MSWin32, osvers=4.0, archname=MSWin32-x86-multi-thread > uname='' > config_args='undef' > hint=recommended, useposix=true, d_sigaction=undef > usethreads=undef use5005threads=undef useithreads=define > usemultiplicity=define > useperlio=define d_sfio=undef uselargefiles=define usesocks=undef > use64bitint=undef use64bitall=undef uselongdouble=undef > usemymalloc=n, bincompat5005=undef > Compiler: > cc='cl', ccflags ='-nologo -Gf -W3 -MD -Zi -DNDEBUG -O1 -DWIN32 > -D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT -NO_HASH_SEED > -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO > -DPERL_MSVCRT_READFIX', > optimize='-MD -Zi -DNDEBUG -O1', > cppflags='-DWIN32' > ccversion='', gccversion='', gccosandvers='' > intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234 > d_longlong=undef, longlongsize=8, d_longdbl=define, longdblsize=10 > ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='__int64', > lseeksize=8 > alignbytes=8, prototype=define > Linker and Libraries: > ld='link', ldflags ='-nologo -nodefaultlib -debug -opt:ref,icf > -libpath:"C: > \Perl810\lib\CORE" -machine:x86' > libpth=C:\PROGRA~1\MICROS~3\VC98\lib > libs= oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib > comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib > netapi32.lib uuid.lib wsock32.lib mpr.lib winmm.lib version.lib odbc32.lib > odbccp32.lib msvcrt.lib > perllibs= oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib > comdlg32.lib advapi32.lib shell32.lib ole32.lib > oleaut32.lib netapi32.lib uuid.lib wsock32.lib mpr.lib winmm.lib > version.lib odbc32.lib odbccp32.lib msvcrt.lib > libc=msvcrt.lib, so=dll, useshrplib=yes, libperl=perl58.lib > gnulibc_version='undef' > Dynamic Linking: > dlsrc=dl_win32.xs, dlext=dll, d_dlsymun=undef, ccdlflags=' ' > cccdlflags=' ', lddlflags='-dll -nologo -nodefaultlib -debug -opt:ref,icf > -libpath:"C:\Perl810\lib\CORE" -machine:x86' > > > Characteristics of this binary (from libperl): > Compile-time options: MULTIPLICITY USE_ITHREADS USE_LARGE_FILES > PERL_IMPLICIT_ > CONTEXT PERL_IMPLICIT_SYS > Locally applied patches: > ActivePerl Build 810 > 22751 Update to Test.pm 1.25 > 21540 Fix backward-compatibility issues in if.pm > Built under MSWin32 > Compiled at Jun 1 2004 11:52:21 > @INC: > c:/Perl810/lib > c:/Perl810/site/lib > . > > > -- > You've received this message because you are subscribed to > the Devel::NYTProf Development User group. > > Group hosted at: http://groups.google.com/group/develnytprof-dev > Project hosted at: http://perl-devel-nytprof.googlecode.com > CPAN distribution: http://search.cpan.org/dist/Devel-NYTProf > > To post, email: [email protected] > To unsubscribe, email: [email protected] > -- You've received this message because you are subscribed to the Devel::NYTProf Development User group. Group hosted at: http://groups.google.com/group/develnytprof-dev Project hosted at: http://perl-devel-nytprof.googlecode.com CPAN distribution: http://search.cpan.org/dist/Devel-NYTProf To post, email: [email protected] To unsubscribe, email: [email protected]
