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]

Reply via email to